In questo progetto interfacciamo un ENCODER ROTATIVO con ARDUINO. ARDUINO UNO è una scheda di sviluppo basata su controller ATMEGA progettata per ingegneri elettronici e hobbisti. In ARDUINO abbiamo 20 pin I / O, quindi possiamo programmare 20 pin di UNO da utilizzare come input o output.
Un ENCODER ROTATIVO viene utilizzato per conoscere la posizione del movimento e il movimento angolare di un motore o di un asse. Di solito è un dispositivo a tre terminali, con alimentazione e pin di terra ci sono un totale di 5 terminali. Di seguito è mostrato un modulo ROTARY ENCODER.
I pin di un encoder rotativo sono:
- Terra
- Positivo collegato a + 5V
- Segnale di uscita A pin
- Segnale di uscita B pin
- Pin dell'orologio o pin comune
L'ENCODER fornisce impulsi che rappresentano il cambiamento nella posizione dell'albero per i sistemi da capire. Considerare che un ENCODER ROTATIVO è acceso e l'albero viene spostato.
Come mostrato nella tabella sopra, considerare che l'albero si muove in senso orario. Con questo ci sarà Falling Edge al terminale A e poi al terminale B.
Considera che l'albero è spostato in senso antiorario. Con questo ci sarà Falling Edge al terminale B e poi al terminale A.
Questo fronte si verificherà una volta per 360/20 = 18 gradi (Questo è per un Encoder con 20 posizioni, cambia da tipo a tipo, maggiore è il conteggio maggiore è la precisione).
Con entrambe le condizioni di cui sopra, possiamo ottenere la direzione e il grado di rotazione. Quindi otteniamo i parametri richiesti per ottenere la posizione di un albero.
Componenti richiesti
Hardware: scheda Arduino uno, pin di collegamento, resistenza da 220Ω, LED (otto pezzi), resistenza da 1KΩ, resistenza da 220Ω (2 pezzi), condensatore 100nF (2 pezzi), breadboard.
Software: Arduino notturno
Schema del circuito e spiegazione del funzionamento
I condensatori qui servono per neutralizzare l'effetto di rimbalzo del contatto nell'ENCODER. Senza questi condensatori ci saranno alcuni seri problemi nella lettura della posizione.
Quando l'albero viene spostato, ci sarà una differenza di tempo tra l'uscita di due pin di uscita. Arduino UNO riconoscerà questa differenza di orario per la rotazione in senso orario o in senso antiorario.
Se la rotazione è in senso orario, il conteggio binario viene incrementato di uno e questo conteggio viene visualizzato nella porta LED come mostrato in figura.
Se la rotazione è in senso antiorario, il conteggio binario viene decrementato di uno e il conteggio binario viene visualizzato sul byte del LED.
Il funzionamento di Arduino con l'encoder rotativo è spiegato passo dopo passo nel codice C riportato di seguito.