En aquest projecte, farem una interfície d’un codificador rotatiu amb ARDUINO. ARDUINO UNO és una placa de desenvolupament basada en controladors ATMEGA dissenyada per a enginyers electrònics i aficionats. A ARDUINO tenim 20 pins d'E / S, de manera que podem programar 20 pins d'UNO per utilitzar-los com a entrada o sortida.
Un codificador rotatiu s’utilitza per conèixer la posició del moviment i el moviment angular d’un motor o eix. Normalment és un dispositiu de tres terminals, amb pins d’alimentació i terra, hi ha un total de 5 terminals. A continuació es mostra un mòdul de CODIFICADOR ROTATIU.

Els pins d’un codificador rotatiu són:
- Terra
- Positiu connectat a + 5V
- Senyal de sortida A pin
- Pin de senyal de sortida B.
- Pas de rellotge o passador comú
L’ENCODER proporciona polsos que representen el canvi en la posició de l’eix perquè els sistemes entenguin. Tingueu en compte que s’encén un codificador rotatiu i es mou l’eix.

Com es mostra a la taula anterior, considereu que l'eix es mou amb el rellotge. Amb això hi haurà Falling Edge a la terminal A i després a la terminal B.
Penseu que l’eix es mou anti rellotge. Amb això hi haurà Falling Edge a la terminal B i després a la terminal A.
Aquesta vora es produirà una vegada durant 360/20 = 18 graus (això és per a un codificador amb 20 posicions; canvia de tipus a tipus, més gran serà el recompte de precisió).
Amb les dues condicions anteriors, podem obtenir direcció i grau de rotació. Així obtenim els paràmetres necessaris per obtenir la posició d’un eix.
Components necessaris
Maquinari: placa Arduino uno, pins de connexió, resistència de 220Ω, LED (vuit peces), resistència de 1KΩ, resistència de 220Ω (2 peces), condensador 100nF (2 peces), placa de pa.
Programari: Arduino cada nit
Diagrama de circuits i explicació de treball

Els condensadors aquí serveixen per neutralitzar l’efecte de rebot de contacte a ENCODER. Sense aquests condensadors hi haurà alguns problemes greus en la lectura de posició.
Quan es mou l’eix, hi haurà diferència de temps entre la sortida de dos pins de sortida. Arduino UNO reconeixerà aquesta diferència horària per a la rotació anti-rellotge en sentit horari.
Si la rotació és en sentit horari, el recompte binari s'incrementa en un i aquest recompte es mostra al port LED tal com es mostra a la figura.
Si la rotació és anti rellotge, el recompte binari es decrementa en un i el recompte binari es mostra en un byte LED.
El funcionament d’ Arduino amb el codificador rotatiu s’explica pas a pas en el codi C que es mostra a continuació.
