Elettronica - Componenti

 
 

Encoder


ENCODER

Encoder è traducibile come "codificatore". In generale la parola si applica a qualsiasi dispositivo che codifica un segnale.

Nel nostro caso facciamo riferimento ai trasduttori di posizione, rotativi o lineari.
Il trasduttore di posizione angolare, o encoder rotatnte, è un dispositivo elettromeccanico che converte la posizione angolare del suo asse rotante in segnali elettrici che possono essere trattati da citcuiti digitali.

Solitamente il segnale è generato da un sistema ottico, ma anche magnetico o semplicemente costituito da contatti.

Si possono dividere in tre categorie:

  • tachimetrici;
  • relativi (noti anche come incrementali);
  • assoluti.
Gli encoder tachimetrici possono essere realizzati semplicemente con una o più tacche di colore contrastante, individuate da un sensore ottico, oppure con una o più  denti che agiscono su un sensore magnetico. Lo scopo è misurare il numero di impulsi nell' unità di tempo e calcolare la velocità di rotazione e il numero dei giri effettuati.

Serve anche per realizzare un sistema di allarme che individua una velocità troppo bassa o l' arresto della rotazione.

Questi encoder, se usati per rilevare angoli, hanno in genere da 100 a 6.000 fori  e sono in grado di fornire una risoluzione rispettivamente di 3,6 e 0,06 gradi.

Non è possibile utilizzare un encoder dotato di un solo sensore per determinare il senso di rotazione.

Un encoder relativo o incrementale dispone di un sensore costituito generalmente da una ruota forata su cui agiscono dei sensori ottici, al minimo 2. I segnali generati dal passaggio dei fori davanti al sensori consentono di misurare solo i cambi di posizione del disco e quindi possono venir elaborati per  calcolare la velocità, l'accelerazione, il numero di giri, l' anglo di spostamento dell'asse. Possono disporre di una tacca di zero che fornisce un ulteriore segnale al momento del passaggio su n punto determinato.
Con gli encoder incrementali non è possibile determinare la posizione assoluta del rotore, che può essere ricavata soltanto mantenendo una costante elaborazione dei segnali in uscita.

Per facilitare questa elaborazione, solitamente dispongono di almeno due segnali in quadratura tra di loro (encoder in quadratura), dall' analisi dei quali è possibile anche determinare il senso di rotazione dell' asse.
I segnali in quadratura si ottengono posizionando i sensori su una serie di fori o meglio utilizzando ruote con sagome particolari.

I segnali solitamente prendono il nome di Canale A e Canale B.

Come nell' immagine a lato, al posto delle forature si tracciano aree trasparenti ne opache su un un supporto plastico o vetroso: le aree trasparenti saranno attraversate dal raggio di luce dell' emettitore.

Negli encoder assoluti i dischi forati assumono forme e disegni particolari che codificano i segnali elettrici d'uscita in modo tale da avere un solo codice per ognuna delle posizioni angolari possibili dell' asse.
In questo modo si può conoscere istante per istante anche la posizione del rotore rispetto al corpo fisso.

Nel caso di encoder assoluti i dischi assumono disegni molto complessi, costituiti da circoli concentrici.

Ad esempio, quello a lato (Analog Devices) dispone di 16 sensori ottici per generare un codice assoluto a più bit, in grado di individuare univocamente la posizione angolare del disco.

Siccome ogni anello raddoppia il numero di aree rispetto all'anello precedente, i valori ottenuti sono codificabili in un sistema binario.
Le uscite, quindi, forniscono solitamente un dato parallelo, che può andare da 4 a 16 o  più bit a seconda della risoluzione voluta.

Un encoder con una circonferenza (corsa) di  25 cm e una codifica a 16 bit consente una risoluzione di 25/65,536 ovvero 0.00038 cm.

Gli encoder hanno in genere da 100 a 6.000 fori  e sono in grado di fornire una risoluzione rispettivamente di 3,6 e 0,06 gradi.

Esistono anche encoder con contatti meccanici che hanno lo scopo di fungere da dispositivi di input per ogni genere di apparecchiatura elettronica, dalla strumentazione agli amplificatori BF, sostituendo commutatori, tasti, potenziometri.

Ad esempio, nell' immagine a lato, un encoder rotativo previsto per l'azionamento manuale, prodotto da BOURNS, serie 3315.

Le dimensioni sono quelle di un piccolo potenziometro cermet.

L' encoder genera due segnali in quadratura con la risoluzione di 6 o 16 impulsi per giro, che corrispondono a un impulso ogni 60 e 22.5 gradi rispettivamente.
Questo genere di encoder, molto economico, si basa su due contatti meccanici che scorrono su una pista conduttrice sagomata opportunamente.

 

movimento ORARIO
movimento ANTIORARIO
posizione di riposo
IN1 = 1, IN2 = 1
posizione di riposo
IN1 = 1, IN2 = 1
inizio movimento orario (A)
IN1 = 0, IN2 = 1
inizio movimento orario (B)
IN1 = 1, IN2 = 0
metà movimento (A+B)
IN1 = 0, IN2 = 0
metà movimento (A+B)
IN1 = 0, IN2 = 0
fine movimento orario (B)
IN1 = 1, IN2 = 0
fine movimento orario (A)
IN1 = 0, IN2 = 1

 

La casistica degli encoder elettromeccanici non si esaurisce in quelli rotativi, in quanto ne esistono di altre forme, ad esempio lineari per la valutazione di movimenti lungo assi e che trovano applicazione in sistemi di automazione, macchine a controllo numerico, strumenti di misura, ecc.
Un encoder con una corsa di  25 cm e una codifica a 16 bit consente una risoluzione di 25/65,536 ovvero 0.00038 cm.


Quadrature Encoder

 

Un encoder a quadratura ha due uscite, solitamente ad onda quadra, sfasate tra di loro di 90 gradi.

Se il segnale A passa dal livello basso a quello alto mentre il segnale B si trova a livello basso, si ritiene per convenzione che il disco dell' encoder stia girando in senso orario (clockwise o CW).

Se il segnale A passa dal livello basso a quello alto mentre il segnale B si trova a livello alto, si ritiene che il disco dell' encoder stia girando in senso antiorario (counter clockwise o CCW).

Attraverso l' analisi dei due segnali si può quindi determinare anche il senso di rotazione dell' asse.

Vediamo di raccogliere in una tabella l' andamento dei segnali rispetto alla rotazione. Un conteggio che consideri positivi gli spostamenti in senso orario e negativi in senso anti orario sarà facilmente derivabile.

Input A Input B Direzione Conteggio
Rising Edge High CW +
Rising Edge Low CCW -
Falling Edge High CCW -
Falling Edge Low CW +

La successione degli stati, dunque, è tale da determinare la possibilità di individuare il senso di rotazione.
Se applichiamo i due segnali A e B a due ingressi digitali di un microcontroller, abbiamo la seguente sequenza:

 

Clockwise ->

00 01 11 10 00

<- Counter Clockwise

Questa tabella è valida per qualsiasi tipo di encoder in quadratura.
Va notato, però, che alcuni encoder per movimento manuale, caratterizzati da uno scatto per ognuna delle posizioni, hanno uno stato di riposo in cui entrambi i contatti sono aperti:

movimento ORARIO
movimento ANTIORARIO
posizione di riposo
IN1 = 1, IN2 = 1
posizione di riposo
IN1 = 1, IN2 = 1
inizio movimento orario (A)
IN1 = 0, IN2 = 1
inizio movimento orario (B)
IN1 = 1, IN2 = 0
metà movimento (A+B)
IN1 = 0, IN2 = 0
metà movimento (A+B)
IN1 = 0, IN2 = 0
fine movimento orario (B)
IN1 = 1, IN2 = 0
fine movimento orario (A)
IN1 = 0, IN2 = 1

In tutti i casi, comunque, i due segnali si prestano ad ulteriori elaborazioni, come:

  1. la determinazione della posizione angolare rispetto ad un riferimento, contando gli impulsi, che sono relativi ad un certo angolo di spostamento dell' asse
  2. il numero dei giri effettuati, sempre sul conteggio degli impulsi
  3. la velocità di rotazione, valutando gli impulsi rispetto ad un periodo di tempo
  4. l' accelerazione, sempre valutando l' andamento degli impulsi nel tempo

Una decodifica hardware si può ottenere con semplici logiche TTL/CMOS, ottenendo in uscita solitamente un segnale di direzione di rotazione ed uno di impulsi.
Esistono, poi,  specifici circuiti integrati dedicati all'acquisizione e all' elaborazione dei segnali degli encoder.
Ad esempio la serie HCTL 2000 di HP, i prodotti di  e alcuni ASIC dedicati.

Inoltre sono disponibili i microcontroller, anche con un modulo di ingresso ed elaborazione per i segnali degli encoder in quadratura (QEI).
In questo caso la decodifica diventa una operazione software.


Decodifica software

Tipicamente l' algoritmo di decodifica dei segnali in quadratura è questo:

  1. Rilevare il cambiamento di stato del canale A
  2. Rilevare In corrispondenza lo stato del canale B
  3. In base alla tabella vista sopra, determinare il senso di rotazione e conteggiare gli impulsi

Se la velocità è minima e se il processore non è impegnato in altre attività, il punto 1 può essere rilevato con un polling sul pin di ingresso.
Stabilita una velocità massima per il cambio dello stato di un canale, si può, con vantaggio, cadenzare il polling ad una frequenza di campionamenti tale da consentire il sicuro rilevamento del cambio di stato.

Se, invece, il micro non è in grado di permanere in un polling, l' unica soluzione possibile è quella di un interrupt sul cambio di stato, o meglio, sul fronte di salita o discesa.

va aftta però una discriminazione molto precisa tra encodr con uscita ottica e encoder con uscita meccanica: i primi forniscono segnali ad andamento quadro con i fronti di discesa e salita puliti.
I secondi, per la loro natura, se non sono supportati da una logivca di debounce, sono soggetti alla presenza di rimbalzi alla commutazione dei contatti.
Questi rimbalzi, che possono durare anche 5 ms generano un segnale 'sporco'  che attiva l' interrupt in modo inadeguato.

Una prima soluzione, come detto, è quella di utilizzare integrati anti rimbalzo, come il classico MC14490 o i piccoli MAX.. Queste soluzioni, però aggiungono costo e parti alla realizzazione (ma riducono drasticamente il software).
Altra possibilità è quella di inserire un semplice condensatore, che, assieme ad una resistenza di pull up
crei una rete di ritardo che elimina, almeno in parte, gli impulsi veloci di rimbalzo.
Soluzione puramente software, poi, è quella di introdurre un debounce attraverso il programma.

Altro problema che può presentarsi è la velocità degli impulsi.
Negli encoder ottici che sono dedicati ad applicazioni di automazione, frequenze dell' ordine di molte decine o centinaia di kHz sono comuni.
In questi casi difficilmente un solo microcontroller può gestire la situazione se assieme sta eseguendo anche altre operazioni. 
La soluzione è quella di utilizzare gli integrati di interfaccia prima menzionati  per una pre elaborazione dei segnali e/o dedicare un microcontroller specifico alla decodifica dei segnali.


 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 06/05/11.