UN encoder rotante è un sensore che converte il movimento di rotazione in segnali digitali, consentendo un controllo preciso su posizione, velocità e direzione. È comunemente usato in Controlli di volume, robotica, macchine a CNC e navigazione del menu. Questa guida ti mostrerà come impostare e utilizzare un encoder rotante con un Raspberry Pi usando Python.
Cosa avrai bisogno
- Raspberry Pi (Qualsiasi modello con supporto GPIO, ad esempio PI 3, PI 4)
- Encoder rotante (ad es. KY-040)
- Breadboard e fili jumper
- Python installato Sul Raspberry Pi
Passaggio 1: capire come funziona un encoder rotante
UN encoder rotante Ha due output principali:
- CLK (A) - Segnale di impulsi di clock
- Dt (b) - segnale di direzione
- SW (opzionale) - pulsante (utilizzato per la selezione delle opzioni)
Quando ruotato, il I pin CLK e DT generano impulsi. L'ordine di questi impulsi determina il direzione di rotazione.
Passaggio 2: cablaggio dell'encoder rotante su Raspberry Pi
PIN encoder rotante | Pin di lampone | Funzione |
---|---|---|
VCC | 3.3V (pin 1) | Alimentazione elettrica |
GND | Terra (pin 6) | Terra |
CLK (A) | GPIO17 (PIN 11) | Pulse dell'orologio |
Dt (b) | GPIO27 (PIN 13) | Segnale di direzione |
SW (pulsante) | GPIO22 (PIN 15) | Pulsante Premere |
Passaggio 3: installa le librerie richieste
Aggiorna il tuo Raspberry Pi e installa il RPI.GPIO Libreria per la gestione degli interrupt GPIO.
Passaggio 4: codice Python per leggere l'input dell'encoder rotante
Codice Python di base per leggere la rotazione
Aggiunta del rilevamento del pulsante Aggiunta
Passaggio 5: applicazioni di un encoder rotante con Raspberry Pi
- Navigazione del menu - Scorri attraverso menu LCD o OLED.
- Controllo del volume - Regola il volume nelle applicazioni multimediali.
- Macchine a CNC - Controllo preciso del movimento nelle applicazioni motorie a passo d'appalto.
- Robotica - Rilevare la rotazione delle ruote per il monitoraggio della velocità e della posizione.
- Automazione della casa intelligente - Utilizzare come selettore per diverse funzioni domestiche.
Risoluzione dei problemi
-
Encoder rotante non risponde
- Controlla il Assegnazioni di cablaggio e pin GPIO.
- Garantire I resistori pull-up sono abilitati (
PUD_UP
).
-
Saltare i passi o un movimento irregolare
- Aggiungere Delay di deboa (
time.sleep(0.01)
). - Utilizzo GPIO interrompe invece di polling (
GPIO.add_event_detect
).
- Aggiungere Delay di deboa (
-
Pulsante Premere non rilevato
- Garantire Il pin del pulsante è correttamente collegato a GND.
- Aggiungi a Tempo di rimonta di 300 ms In
GPIO.add_event_detect
.
Conclusione
UN encoder rotante è un dispositivo di input versatile per Navigazione del menu, controllo del motore e monitoraggio della posizione. Seguendo questa guida, è possibile integrare facilmente un encoder rotante con il tuo Raspberry Pi per progetti interattivi. 🚀