Conectarea unui codificator incremental la microcontroler

Conectarea unui codificator incremental la microcontroler

Traductor incremental arata ca un potențiometru. dar spre deosebire de potentiometru nu are pozițiile extreme, se poate roti în ambele direcții, un număr nelimitat de rotații. De asemenea, trebuie remarcat faptul că traductorul incremental nu se rotește atât de lin ca un potențiometru, și pașii. Se poate observa la radio auto și un osciloscop. centru de muzică, o mașină de spălat și alte echipamente, în cazul în care se efectuează ajustarea unui parametru într-o mare măsură. Desigur, parametrii pot fi schimbate cu ajutorul butoanelor, de exemplu, pentru a face muzica mai tare decât de 20 de valori, cu butoanele de comandă, trebuie să apăsați de 20 de ori, iar în gestionarea codificator, rotiți-l la un anumit unghi, în funcție de algoritmul de procesare.

Traductor incremental este format din două ordine de închidere de contact, care depinde de direcția de rotație.

Conectarea unui codificator incremental la microcontroler


În esență, Traductor incremental transformă rotirea arborelui în impulsuri electrice. care conține informații privind direcția de rotație.

Să va colecta circuit de test din imaginea de mai sus și conectat la terminalul A și B osciloscop. rezistențe jartiere - 4.7K.
Encoder să se răsucească sensul acelor de ceasornic.

Conectarea unui codificator incremental la microcontroler


Acum invers acelor de ceasornic.

Conectarea unui codificator incremental la microcontroler


Oscilogramele văzut că, în funcție de direcția de rotație, schimbă ordinea de închidere de contact. Dar fata nu se întoarce întotdeauna atât de frumos.

Conectarea unui codificator incremental la microcontroler


Deoarece contactele mecanice, acestea sunt predispuse la palavrageala, care este de vina datorită elasticității materialelor, există deschidere necontrolate multiple și de închidere, care poate fi văzut pe forma de undă de mai sus.

Lupta sări două moduri, prima este adăugarea de condensatori și rezistențe așa cum se arată mai jos.

Conectarea unui codificator incremental la microcontroler


Deoarece fenomenul de respingere pe termen scurt, este ușor de stins printr-un condensator.

Conectarea unui codificator incremental la microcontroler


Oscilograma arată că după instalarea de condensatoare electrice devin fronturi mai puțin abrupte, iar unda a dispărut.

A doua metodă - un program și totul depinde de punerea în aplicare a codificator concluziile studiului. În cazul în care starea codificator este monitorizată cu ajutorul unor întreruperi externe. după declanșarea latență de întrerupere ar trebui să se facă 20 - 30 de milisecunde, timp în care MC nu va răspunde la schimbări în starea de ieșire, care este, nu se va simți palavrageala. În cazul în care concluziile studiului codificatorul implementat pe un cronometru. între intervalul de votare trebuie să fie mai mare decât durata palavrageala, aceleași 20 la 30 milisecunde.

Să ne uităm la metodele de prelucrare a datelor provenite de la codificator.
Prima metodă este faptul că unul dintre picioarele codorului, ne-am conectat la întreruperi externe de ieșire și configurați-l să-și întrerupă pe marginea care se încadrează. Întreruperea, noi verificam starea celuilalt picior, iar în cazul în care este zero, rotația este într-o direcție, alta în alta. Codul de mai sus de mai jos care implementează această metodă pentru a AVR.

Prin rotirea codificatorul într-o parte, se aprinde atunci când porniți la alta - se stinge.

A doua metodă este de a compara starea actuală și cea anterioară. Să ne exprimăm nivelele logice ale secvenței de impulsuri în formă de unu și zero.

Conectarea unui codificator incremental la microcontroler


Apoi, vom obține un număr finit de stări ale codorului. ieșire logica nivel al primului codificator, al doilea - - Prima cifră a doua ieșire de nivel logic.

Să presupunem că ultimul stat în care a existat un codificator este de trei, în cazul în care starea următoare este egală cu una, se rotește într-o direcție, în cazul în care două, apoi celălalt. Se pare că este posibil să se stabilească o tranziție de la un stat la altul și de a determina direcția de rotație, dar cel mai simplu este de a pune în aplicare tranziția 11-01 și 10. Următoarele este codul care implementează algoritmul descris pentru AVR,

Asta e tot.
Encoder cumpărat aici.