In questo tutorial vi mostrerò come utilizzare un Rotary Encoder in quadratura con Arduino.

Cos’è un Rotary Encoder?

Molti di voi hanno un’autoradio in macchina, alcune autoradio (soprattutto modelli di marche famose e di fascia medio/alta) hanno, per la regolazione del volume e dei toni, una manopola che ruota. I più attenti già sanno che quella manopola non è assolutamente il classico potenziometro (altrimenti come mai gira di continuo, senza blocchi? Ok qualcuno potrebbe pure obiettare che esistono i potenziometri a rotazione continua ma dal momento che costano tanto non si tratta assolutamente di questo caso). Quella manopola è un congegno davvero semplice ma geniale per alcuni aspetti: si tratta di un encoder rotativo (Rotary Encoder). Una “manopola” del genere la troviamo comunque un po’ dappertutto: ce l’hanno anche alcuni forni a microonde, anche se il suo utilizzo più “in voga” è attualmente quello della regolazione del volume audio negli impianti hi-fi.

Sappiamo bene che un encoder, in senso generale, è un dispositivo che serve per codificare un tipo di segnale in un’altra “forma”. Un encoder rotativo è appunto un dispositivo che permette di codificare la rotazione di un albero in un segnale elettrico.

Gli encoder rotativi vengono utilizzati, soprattutto in ambito industriale, per il computo delle velocità degli alberi di rotazione. Erano usati nei vecchi mouse con la “pallina” per far muovere il puntatore, sono utilizzatissimi anche in robotica per determinare le velocità delle ruote dei robottini e quindi correggerne la traiettoria, e come abbiamo appena detto vi è anche questo utilizzo più “ludico” per il controllo del volume su un impianto audio o per impostare la temperatura del forno a microonde.

Un encoder rotativo altro non è che una serie di “contatti” (azionati in vari modi: meccanicamente, tramite infrarossi o sfruttando l’effetto hall) che chiudono ciclicamente un contatto quando l’albero ad essi collegato effettua una rotazione. A seconda del numero di contatti e del modo in cui questi vengono chiusi, abbiamo vari tipi di encoder. In questo articolo ci occuperemo unicamente dei cosiddetti encoder in quadratura.

Tratto da settorezero.com

Per capirne meglio il funzionamento vi rimando all’articolo di settorezero.com .

Ora vediamo come utilizzare un Rotary Encoder con Arduino. Innanzitutto bisogna procurarsi un Encoder simile a questo:

Rotary_Encodero  a questo:

EVE-GA1F2012B, EVE-GA1F2024B

Come noterete dalla prima immagine, il modulo con Encoder è composta da cinque pin denominati (CLK, DT, SW, VCC, GND), collegate questi pin su Arduino come illustrato nella tabella successiva:

EncoderArduino
CLK ->2
DT ->3
SW
VCC ->+5V
GND ->GND

I pin CLK e DT corrispondono ai due contatti che forniscono due segnali sfalsati di 90°. Il pin SW corrisponde al pulsante interno (Se premete sulla manopola lo noterete). Mentre VCC e GND sono i due pin di alimentazione.

Se invece non avete a disposizione un modulo con Encoder ma solo l’Encoder (Seconda immagine) si dovranno fare questi collegamenti:

Rotary_Encoder_Arduino

Per utilizzare al meglio l’Encoder in quadratura utilizzeremo i pin interrupts 0 e 1 di Arduino corrispondenti ai pin digitali 2 e 3.

Dopo aver completato i collegamenti passiamo allo sketch da caricare su arduino.

Sketch (Monitor Serial)

Aprendo il Monitor Seriale e ruotando l’encoder noterete un incremento o un decrementro della variabile encoderValue in base al verso di rotazione.

Sketch (Display)

In questo esempio utilizzeremo un display lcd invece del monitor seriale per visualizzare il valore della variabile encoderValue. Per coloro che non sanno come collegare un display lcd ad Arduino invito a leggere il mio tutorial QUI.

Video

Eccovi un video che illustra il funzionamento degli sketch.

Download archivio con tutto il progetto.

Ciao, se ti è piaciuto il mio blog e se qualche articolo ti è stato d’aiuto, se te la senti e se vuoi, incentiva il mio lavoro offrendomi un caffè o qualunque altra cosa preferisci farmi ricevere. Cercherò di dare il meglio di me e di inserire articoli sempre più interessanti e utili 🙂 . Clicca QUI per la donazione!