Come funziona il codificatore a rotazione con Arduino!

Un codificatore rotante è un ottimo dispositivo di input per qualsiasi progetto come il menu di una stampante 3D. Quindi, in questo tutorial, impareremo come funziona un codificatore rotante e come usarlo con Arduino.

Quindi iniziamo!

Passaggio 1: guarda il video!

Se non vuoi leggere tutte le cose che puoi guardare il mio video, sarà molto più facile da capire.

Passaggio 2: panoramica

Un encoder rotativo, chiamato anche encoder dell'albero, è un dispositivo elettromeccanico che converte la posizione angolare o il movimento di un albero o di un asse in segnali di uscita analogici o digitali.

Esistono due tipi principali di encoder rotativo

1) Assoluto - L'uscita di un encoder assoluto indica la posizione attuale dell'albero, rendendolo un trasduttore angolare.

2) Incrementale - L'uscita di un encoder incrementale fornisce informazioni sul movimento dell'albero, che in genere viene elaborato altrove in informazioni quali posizione, velocità e distanza.

Nota: uno che usiamo nel nostro progetto è il tipo incrementale, quindi ci concentreremo su quello.

Passaggio 3: Cos'è l'encoder rotativo incrementale?

Un encoder incrementale segnalerà immediatamente i cambiamenti di posizione (orario e antiorario), che è una funzionalità essenziale in alcune applicazioni. Tuttavia, non riporta né tiene traccia della posizione assoluta. Di conseguenza, potrebbe essere necessario spostare il sistema meccanico monitorato da un encoder incrementale in un punto di riferimento fisso per inizializzare la misurazione della posizione.

Step 4: Costruzione e lavoro

Uno che ho arriva in questa scheda di breakout che ha già le resistenze pull-up necessarie su di esso.

Ha cinque pin: Clock, Data, Switch, Vcc, GND

Costruzione:

La manopola che ruotiamo è collegata internamente al disco (Fig - 2). Se ruotiamo in senso orario o antiorario, si sposterà di conseguenza. La parte grigia è GND e i punti di contatto dorati sono collegati a Vcc. Esistono due punti di contatto posti a una distanza specifica che non sono altro che la nostra linea CLOCK e DATA.

Lavorando:

Quando ruotiamo il nostro encoder, le due uscite cambieranno in base alla posizione dell'encoder. Che genererà due treni di impulsi.

Se osservi attentamente questi due segnali saranno 90 gradi fuori fase. Se l'encoder ruota in senso orario, l'OROLOGIO porterà e se l'encoder ruota in senso antiorario, allora DATA porterà.

E dare un'occhiata al cambio di stato per due segnali in senso orario avrà valori opposti e per gli stessi valori in senso antiorario.

E ora se programmiamo il nostro Arduino di conseguenza, possiamo farlo funzionare con il nostro progetto.

Passaggio 5: programmazione

Esempio 1: (Counter.ino)

Ora in questo esempio, CLK è collegato al pin 3, DT a 4 e SW a 5, quindi abbiamo alcune variabili per memorizzare i dati. Nella sezione di impostazione vuota CLK, DT e SW sono impostati come input e quindi avviato il comando seriale e qui memorizzato la posizione corrente nell'ultimo stato

Nella sezione void loop leggiamo prima lo stato corrente dell'orologio e usandolo altrimenti lo controlliamo se è cambiato.

Se lo stato! = Ultimo stato significa che ha cambiato la posizione. E se i dati! = Dichiarano allora CW altrimenti CCW che aumenterà o diminuirà di conseguenza il contatore.

Quindi utilizzando la stampa seriale è stata stampata la variabile contatore. E se l'interruttore viene premuto il contatore si reimposterà su 0 e lo stamperà, alla fine, metterà lo stato nell'ultimo stato

Esempio 2: (LEDBrightness.ino)

In questo esempio, ho messo il valore del contatore nella funzione di scrittura analogica e ho usato la funzione di vincolo per limitare la rabbia tra 0-255 affinché funzioni

Nota: è meglio se apri il codice nell'IDE di Arduino e lo leggi una volta

allegati

  • Scarica Counter.ino
  • Scarica LEDBrightness.ino

Passaggio 6: grazie!

Dai un'occhiata a JLCPCB
Prototipo PCB $ 2 (10 pezzi, 10 * 10 cm): //jlcpcb.com

Questo è tutto se ti piace il mio lavoro

Sentiti libero di dare un'occhiata al mio canale YouTube per altre cose fantastiche: //www.youtube.com/c/Nematics_lab

Puoi anche seguirmi su Facebook, Twitter ecc. Per i prossimi progetti

//www.facebook.com/NematicsLab/

//www.instagram.com/nematic_yt/

//twitter.com/Nematic_YT

Articoli Correlati