Sommario:
- Passaggio 1: flusso di impulsi dell'encoder rotativo
- Passaggio 2: pinout dell'encoder rotativo
- Passaggio 3: schematico
- Passaggio 4: codice
- Passaggio 5: spiegazione
- Passaggio 6: uscita
Video: Tutorial dell'encoder rotativo con Arduino: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
L'encoder rotativo è un componente elettronico in grado di monitorare il movimento e la posizione durante la rotazione. L'encoder rotativo utilizza sensori ottici in grado di generare impulsi quando l'encoder rotativo ruota. L'applicazione dell'encoder rotativo solitamente come monitor di movimento meccanico o robotico può essere utilizzata anche per la selezione del menu sul display. Il codificatore rotante ha due uscite in modo che possa distinguere tra rotazione negativa (CW) e positiva (CCW) e ha anche un solo pulsante.
Passaggio 1: flusso di impulsi dell'encoder rotativo
Il flusso di impulsi generato dal seguente encoder rotativo è come nell'immagine sopra.
Passaggio 2: pinout dell'encoder rotativo
Spiegazione:
- GND GND
- + +5V
- Pulsante SW del codificatore rotante quando premuto
- Dati DT
- Dati CLK 2
Uno dei pin DT o CLK deve essere collegato al piedino di interruzione di Arduino Uno, oppure entrambi DT e CLK sono collegati al pin di interruzione.
Passaggio 3: schematico
- GND à GND Arduino Uno
- + a +5V Arduino Uno
- SW à PIN 4 Arduino Uno
- DT à PIN 3 Arduino Uno
- CLK à PIN2 Arduino Uno
Passaggio 4: codice
Nel seguente tutorial, che verrà utilizzato come interrupt è il PIN 2 di Arduino Uno, mentre il PIN 3 viene utilizzato solo come input normale.
#define encoder0PinA 2#define encoder0PinB 3 #define encoder0Btn 4 int encoder0Pos = 0; void setup() { Serial.begin(9600); pinMode(encoder0PinA, INPUT_PULLUP); pinMode(encoder0PinB, INPUT_PULLUP); pinMode(encoder0Btn, INPUT_PULLUP); attachInterrupt(0, doEncoder, CHANGE); } int valRotary, lastValRotary; void loop() { int btn = digitalRead(encoder0Btn); Serial.print(btn); Serial.print(" "); Serial.print(valRotary); if(valRotary>lastValRotary) { Serial.print(" CW"); } if(valRotary {
Serial.print(" CCW");
} lastValRotary = valRotary; Serial.println(" "); ritardo(250); } void doEncoder() { if (digitalRead(encoder0PinA) == digitalRead(encoder0PinB)) { encoder0Pos++; } else { encoder0Pos--; } valRotary = encoder0Pos/2.5; }
Nella riga 10 dello schizzo sopra viene utilizzato per abilitare l'interruzione del pin 2 Arduino Uno. Nella funzione "doEncoder" viene calcolato dall'encoder rotativo. Se il valore di DT e CLK (pin interrupt di Arduino Uno) è lo stesso, allora verrà incrementata/aggiunta la variabile "encoder0Pos", oltre a tale condizione, viene decrementata la variabile "encoder0Pos".
Passaggio 5: spiegazione
Il valore ValRotary è il valore del numero di passaggi che sono stati eseguiti. Il valore ValRotary è ottenuto dal valore di lettura dell'encoder del sensore rotativo diviso per 2,5. Dal test si ottiene un valore di 2,5, poiché un passo dell'encoder rotativo può superare 1, quindi dividere per 2,5 per il suo valore in base al perpasso e anche all'aggiunta del ritardo di lettura.
Mentre sulla riga 19 - 25 c'è un programma per determinare se l'encoder rotativo rotativo CW o CCW. La spiegazione delle righe 19-25 è quando la lettura del codificatore rotante corrente è maggiore dei dati rotativi precedenti quindi espressi come CW. Considerando che se la lettura corrente è inferiore alla lettura precedente, viene indicata come CCW.
Passaggio 6: uscita
1 = il valore del pulsante di avvio della manopola quando non è stato premuto
Consigliato:
Sostituzione dell'encoder rotativo ISDT Q6: 4 passaggi
Sostituzione dell'encoder rotativo ISDT Q6: questo tutorial è per aiutare le persone i cui encoder Q6 sono andati a rotoli nel tempo e ora sono inutilizzabili. Il mio ha iniziato a scorrere in direzioni casuali e irregolari, e anche dopo aver fatto scorrere nuovamente i giunti di saldatura e aver pulito l'encoder con l'alcol era ancora disfunzionale
Come utilizzare il motore passo-passo come encoder rotativo e display OLED per passaggi: 6 passaggi
Come utilizzare il motore passo-passo come encoder rotativo e display OLED per i passaggi: In questo tutorial impareremo come tenere traccia dei passaggi del motore passo-passo sul display OLED. Guarda un video dimostrativo. Il merito del tutorial originale va all'utente di YouTube "sky4fly"
Encoder rotativo con Arduino Nano: 4 passaggi
Encoder rotativo utilizzando Arduino Nano: Ciao a tutti, in questo articolo farò un tutorial su come utilizzare un encoder rotativo utilizzando Arduino Nano. Per utilizzare questo codificatore rotativo non è necessaria una libreria esterna. Quindi possiamo creare direttamente programmi senza prima aggiungere librerie. ok iniziamo con
Encoder rotativo: come funziona e come utilizzarlo con Arduino: 7 passaggi
Encoder rotativo: come funziona e come utilizzarlo con Arduino: puoi leggere questo e altri fantastici tutorial sul sito Web ufficiale di ElectroPeakPanoramicaIn questo tutorial imparerai come utilizzare l'encoder rotativo. Innanzitutto, vedrai alcune informazioni sull'encoder rotazionale, quindi imparerai come
Tutorial kit encoder rotativo: 5 passaggi
Tutorial kit encoder rotativo: Descrizione: questo kit encoder rotativo può essere utilizzato per rilevare la posizione e la velocità del motore. È un kit molto semplice composto da un sensore del raggio ottico (interruttore ottico, fototransistor) e un pezzo di disco scanalato. Può essere collegato a qualsiasi microcontrollore