Eräs kiertokooderi on anturi, joka muuntaa kiertoliikkeen digitaalisiksi signaaleiksi, mikä mahdollistaa tarkan ohjauksen sijainnin, nopeuden ja suunnan suhteen. Sitä käytetään yleisesti äänenvoimakkuuden hallinta, robotiikka, CNC -koneet ja valikon navigointi. Tämä opas näyttää kuinka asentaa ja käyttää pyörivää kooderia Raspberry Pi: llä Pythonin avulla.
Mitä tarvitset
- Raspberry Pi (Mikä tahansa malli, jolla on GPIO -tuki, esim. Pi 3, pi 4)
- Kiertokooderi (esim. KY-040)
- Leipälevy- ja hyppyjohdot
- Python asennettu Raspberry Pi
Vaihe 1: Ymmärtäminen kuinka pyörivä kooderi toimii
Eräs kiertokooderi on kaksi päälähtöä:
- Clk (a) - Kellopulssisignaali
- Dt (b) - Suuntasignaali
- Sw (valinnainen) - Paina painiketta (käytetään vaihtoehtojen valitsemiseen)
Kierrettynä, CLK- ja DT -nastat tuottavat pulsseja. Näiden palkokasvien järjestys määrittää pyörimissuunta.
Vaihe 2: Kiertokooderin johdotus Raspberry Pi: hen
Kiertokooderi | Raspberry Pi -tappi | Funktio |
---|---|---|
VCC | 3,3 V (nasta 1) | Virtalähde |
Hölynpöly | Maa (nasta 6) | Pohja |
Clk (a) | GPIO17 (nasta 11) | Kellopulssi |
Dt (b) | GPIO27 (nasta 13) | Suuntaviiva |
SW (painike) | GPIO22 (nasta 15) | Painike Paina |
Vaihe 3: Asenna vaadittavat kirjastot
Päivitä Raspberry Pi ja asenna RPI.GPIO Kirjasto GPIO -keskeytykseen.
sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio
Vaihe 4: Python -koodi luettaisiin kiertokooderin syöttö
Python -peruskoodi kiertoa varten
import RPi.GPIO as GPIO
import time
# Define GPIO pins
CLK = 17
DT = 27
counter = 0
last_state = None
# Setup GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(CLK, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(DT, GPIO.IN, pull_up_down=GPIO.PUD_UP)
# Read initial state
last_state = GPIO.input(CLK)
try:
while True:
current_state = GPIO.input(CLK)
if current_state != last_state:
if GPIO.input(DT) != current_state:
counter += 1
direction = "Clockwise"
else:
counter -= 1
direction = "Counterclockwise"
print(f"Position: {counter}, Direction: {direction}")
last_state = current_state
time.sleep(0.01) # Debounce delay
except KeyboardInterrupt:
print("Exiting...")
finally:
GPIO.cleanup()
Lisää painike Paina havaitseminen
# Define button pin
SW = 22
GPIO.setup(SW, GPIO.IN, pull_up_down=GPIO.PUD_UP)
def button_pressed(channel):
print("Button Pressed!")
# Add event detection for button press
GPIO.add_event_detect(SW, GPIO.FALLING, callback=button_pressed, bouncetime=300)
Vaihe 5: Rotary -kooderin sovellukset Raspberry Pi: llä
- Valikon navigointi - Selaa LCD- tai OLED -valikot.
- Äänenvoimakkuuden hallinta - Säädä äänenvoimakkuutta mediasovelluksissa.
- CNC -koneet - Tarkka liikkeenohjaus askelmoottorisovelluksissa.
- Robotti - Tunnista pyörien kierto nopeuden ja asennon seurannan saavuttamiseksi.
- Älykäs kodin automaatio - Käytä valitsimena eri kotitoiminnoissa.
Vianetsintä
-
Kiertokooderi ei vastaa
- Tarkistaa johdotus ja GPIO -nastatehtävät.
- Varmistaa Pull-up-vastukset ovat käytössä (
PUD_UP
).
-
Ohittavat vaiheet tai virheellinen liike
- Lisätä delount -viive (
time.sleep(0.01)
). - Käyttää GPIO keskeyttää Kyselyn sijasta (
GPIO.add_event_detect
).
- Lisätä delount -viive (
-
Painike Paina ei havaittu
- Varmistaa Painiketappi on kytketty oikein Gnd.
- Lisää a Detoutumisaika 300 ms sisä-
GPIO.add_event_detect
.
Johtopäätös
Eräs kiertokooderi on monipuolinen syöttölaite Valikon navigointi, moottorin ohjaus ja asennon seuranta. Seuraamalla tätä opasta, voit helposti integroida pyörivän kooderin Raspberry Pi vuorovaikutteisiin projekteihin. 🚀