În acest proiect vom interfața un codificator rotativ cu ARDUINO. ARDUINO UNO este o placă de dezvoltare bazată pe controler ATMEGA, concepută pentru ingineri electronici și pasionați. În ARDUINO avem 20 de pini I / O, deci putem programa 20 de pini UNO pentru a fi folosiți ca intrare sau ieșire.
Un codificator rotativ este utilizat pentru a cunoaște poziția mișcării și mișcarea unghiulară a unui motor sau axă. Este un dispozitiv cu trei terminale, de obicei, cu pinii de alimentare și de împământare sunt în total 5 terminale. Un modul ROTARY ENCODER este prezentat mai jos.
Pinii unui codificator rotativ sunt:
- Sol
- Pozitiv conectat la + 5V
- Semnal de ieșire A pin
- Semnal de ieșire pin B.
- Pinul ceasului sau pinul comun
ENCODER furnizează impulsuri care reprezintă schimbarea poziției arborelui pentru ca sistemele să le înțeleagă. Luați în considerare faptul că un codificator rotativ este alimentat și arborele este mutat.
Așa cum se arată în tabelul de mai sus, considerați că arborele este deplasat în sens orar. Cu aceasta va fi Falling Edge la terminalul A, apoi la terminalul B.
Luați în considerare arborele deplasat în sens antiorar. Cu aceasta va fi Falling Edge la terminalul B, apoi la terminalul A.
Această margine va apărea o dată pentru 360/20 = 18 grade (Aceasta este pentru un codificator cu 20 de poziții, aceasta se schimbă de la tip la tip, cu cât este mai mare numărul mai mare de precizie).
Cu ambele condiții de mai sus, putem obține direcția și gradul de rotație. Astfel, obținem parametrii necesari pentru a obține poziția unui arbore.
Componente necesare
Hardware: placă Arduino uno, pini de conectare, rezistență 220Ω, LED (opt bucăți), rezistență 1KΩ, rezistență 220Ω (2 bucăți), condensator 100nF (2 bucăți), placă pentru pâine.
Software: Arduino noaptea
Diagrama circuitului și explicația de lucru
Condensatoarele de aici sunt pentru neutralizarea efectului de săritură a contactului în ENCODER. Fără aceste condensatoare vor exista unele probleme grave în citirea poziției.
Când arborele este deplasat, va exista diferență de timp între ieșirea a doi pini de ieșire. Arduino UNO va recunoaște această diferență de timp pentru rotirea anti-orar în sensul acelor de ceasornic.
Dacă rotația este în sensul acelor de ceasornic, numărul binar este incrementat cu unul, iar acest număr este afișat în portul LED, așa cum se arată în figură.
Dacă rotația este anti-orologică, numărul binar este decrementat cu unul și numărul binar este afișat la octetul LED.
Funcționarea Arduino cu codificatorul rotativ este explicată pas cu pas în codul C dat mai jos.