categorie: Circuiti a microcontrollore
Numero di visite: 16.299
Commenti sull'articolo: 0

Come collegare l'encoder incrementale ad Arduino

 

Spesso nei dispositivi su microcontrollori è necessario organizzare la gestione delle voci di menu o implementare alcune regolazioni. Esistono molti modi: utilizzare pulsanti, resistori variabili o encoder. L'encoder incrementale ti consente di controllare qualcosa tramite la rotazione infinita della maniglia. In questo articolo, vedremo come far funzionare l'encoder incrementale e Arduino.

Come collegare l'encoder incrementale ad Arduino

Funzioni encoder incrementali

L'encoder incrementale, come qualsiasi altro tipo di encoder, è un dispositivo con una maniglia rotante. A distanza, ricorda un potenziometro. La differenza principale rispetto al potenziometro è che la maniglia dell'encoder ruota di 360 gradi. Non ha disposizioni estreme.

Gli encoder sono disponibili in molti tipi. Incrementale differisce dal fatto che con il suo aiuto è impossibile conoscere la posizione della maniglia, ma solo il fatto di ruotare in una direzione - a sinistra oa destra. In base al numero di impulsi del segnale, è già possibile calcolare l'angolazione ruotata.

Encoder e Arduino

In questo modo puoi passare microcontrollore comando, gestire il menu, il livello del volume, ad esempio, e così via. Nella vita di tutti i giorni, potresti vederli nelle autoradio e in altre attrezzature. Viene utilizzato come organo di regolazione del livello multifunzionale, equalizzatore e navigazione nei menu.

Manopola del livello sonoro

Principio di funzionamento

All'interno dell'encoder incrementale è presente un disco con etichette e cursori che vengono a contatto con essi. La sua struttura è simile a un potenziometro.

Encoder smontato

Nella figura sopra si vede un disco con segni, sono necessari per interrompere la connessione elettrica con il contatto mobile, di conseguenza si ottengono dati sulla direzione di rotazione. Il design del prodotto non è così importante, capiamo il principio di funzionamento.

Design dell'encoder

L'encoder ha tre uscite di informazione, una comune, le altre due sono generalmente chiamate "A" e "B", nella figura sopra si vede il pin dell'encoder con un pulsante: è possibile ricevere un segnale quando si fa clic sul suo albero.

Quale segnale riceveremo? A seconda della direzione di rotazione, l'unità logica apparirà per prima sul pin A o B, quindi otteniamo un segnale sfasato e questo spostamento ci consente di determinare quale direzione. Il segnale viene ottenuto sotto forma di una forma rettangolare e il microcontrollore viene controllato dopo aver elaborato i dati della direzione di rotazione e il numero di impulsi.

Principio di funzionamento

La figura mostra il simbolo del disco con i contatti, al centro c'è un grafico dei segnali di uscita e sulla destra c'è la tabella di stato. Questo dispositivo viene spesso disegnato come due chiavi, il che è logico, perché in effetti riceviamo un segnale "avanti" o "indietro", "su" o "giù" e il numero di azioni.

Circuito encoder

Ecco un esempio di un vero pinout dell'encoder:

Esempio di un vero pinout dell'encoder

meraviglia I:

Un encoder difettoso può essere sostituito con due pulsanti senza blocco e viceversa: controllo fatto in casa in cui è possibile finalizzare due di questi pulsanti impostando l'encoder.

Nel video qui sotto, vedi l'alternanza del segnale ai terminali - durante una rotazione regolare, i LED si accendono nella sequenza riflessa nel grafico precedente.

Non meno chiaramente illustrato nella seguente animazione (clicca sull'immagine):

Il dispositivo e il principio di funzionamento dell'encoder

L'encoder può essere sia ottico (il segnale è generato da emettitori da fotorilevatori, vedere la figura seguente), sia magnetico (funziona sull'effetto Hall). In questo caso, non ha contatti e una maggiore durata.

Sensore angolare

Come già accennato, il senso di rotazione può essere determinato da quale dei segnali di uscita è stato precedentemente modificato, ma è così che appare in pratica!

Punti di fissaggio meccanici

La precisione del controllo dipende dalla risoluzione dell'encoder, ovvero dal numero di impulsi per giro. Il numero di impulsi può variare da unità a migliaia di pezzi. Poiché l'encoder può fungere da sensore di posizione, maggiore è il numero di impulsi, più precisa sarà la determinazione.Questo parametro è indicato come PPR - impulso per giro.

Ma c'è una piccola sfumatura, vale a dire, una designazione simile LPR è il numero di etichette sul disco.

E il numero di impulsi elaborati. Ogni etichetta sul disco fornisce 1 impulso rettangolare su ciascuna delle due uscite. L'impulso ha due fronti: posteriore e anteriore. Dato che ci sono due vie d'uscita, otteniamo 4 impulsi in totale da ciascuno di essi, i cui valori è possibile elaborare.

PPR = LPRx4


Connettiti ad Arduino

Abbiamo capito cosa devi sapere sull'encoder incrementale, ora scopriamo come collegarlo ad Arduino. Considera lo schema di collegamento:

Lo schema di collegamento del sensore di posizione ad Arduino

Un modulo encoder è la scheda su cui si trovano l'encoder incrementale e le resistenze pull-up. Puoi usare qualsiasi pin.

Schema elettrico dell'encoder

Se non si dispone di un modulo, ma di un encoder separato, è sufficiente aggiungere queste resistenze, il circuito non differirà in linea di principio. Per controllare il senso di rotazione e la sua operatività in collaborazione con Arduino possiamo leggere informazioni dalla porta seriale.

Esempio di programma

Analizziamo il codice in modo più dettagliato, in ordine. In void setup (), abbiamo annunciato che avremmo usato la comunicazione attraverso la porta seriale, e quindi impostare i pin 2 e 8 in modalità input. Seleziona tu stesso i numeri di pin in base allo schema di connessione. La costante INPUT_PULLUP imposta la modalità di input, l'arduino ha due opzioni:

  • INGRESSO - ingresso senza resistori pull-up;

  • INPUT_PULLUP - connessione all'ingresso delle resistenze pull-up. All'interno del microcontrollore sono già presenti resistenze attraverso le quali l'ingresso è collegato al power plus (pullup).

Se usi resistori per stringere il plus di potenza come mostrato negli schemi sopra o usi il modulo encoder - usa il comando INPUT, e se per qualche motivo non puoi o non vuoi usare resistori esterni - INPUT_PULLUP.

La logica del programma principale è la seguente: se ne abbiamo una all'ingresso “2”, in uscita la porta H sul monitor, in caso contrario, L. Quindi, quando si ruota in una direzione sul monitor della porta seriale, si otterrà qualcosa del genere: LL HL HH LH LL. E viceversa: LL LH HH HL LL.

Se leggi attentamente le righe, probabilmente noterai che in un caso il primo carattere ha acquisito un valore e nell'altro caso il primo carattere è cambiato per primo.


conclusione

Gli encoder incrementali hanno trovato ampia applicazione pratica negli amplificatori per sistemi acustici - sono stati usati come controllo del volume, nelle autoradio - per regolare i parametri sonori e navigare nei menu, nei mouse dei computer con cui fai scorrere le pagine quotidianamente (una ruota è installata sul suo albero) . E anche in strumenti di misurazione, macchine a controllo numerico, robot, selsyn non solo come controlli, ma anche per misurare i valori e determinare la posizione.

Vedi anche su bgv.electricianexp.com:

  • Metodi per la lettura e la gestione delle porte I / O di Arduino
  • Controllo motore e servo con Arduino
  • Funziona collegando i dispositivi ad Arduino
  • Connessione e programmazione di Arduino per principianti
  • Sensori più popolari per Arduino

  •