Astăzi, encoderele optice (senzori de poziție a arborelui) sunt folosiți pe scară largă în multe domenii ale electronicii și roboticii. Ele sunt utilizate în dispozitive pentru determinarea poziției arborelui motor, a sistemelor de comandă a vitezei, a imprimantelor, a mașinilor CNC etc.
Placa Arduino poate fi, de asemenea, învățată să lucreze cu un encoder optic, care va permite implementarea unor dispozitive mai interesante și practice.
Elementul principal al unui codificator optic simplu este un opto-întreruper (întreruperi foto), alcătuit dintr-un LED infraroșu și un fototranzistor, care sunt plasate unul față de celălalt într-o carcasă din plastic. Când partea opacă a discului este blocată de lumina emisă de LED, conductivitatea fototranzistorului se modifică. Această modificare poate fi determinată de componente discrete sau de un microcontroler.
Deoarece avem nevoie pentru a crea impulsuri la intrarea fototranzistorului, avem nevoie de un disc cu părți sau crestături transparente. Un astfel de disc poate fi realizat din acrilic transparent prin lipirea pe el a unei imprimări tipărite pe imprimantă, care este prezentată mai jos. De asemenea, puteți decupa figura corespunzătoare din acrilic opac.
În primul rând, trebuie să compilați următoarea diagramă, care constă din Arduino și un întrerupător opto cu bandă. Rezistor R2 este retras. Valoarea rezistorului R1 depinde de întrerupătorul pe care îl utilizați. Un LED este conectat la pinul D13, care este declanșat atunci când bara este întreruptă. D12 este o ieșire auxiliară care poate fi utilizată pentru a monitoriza semnalul codorului pe ecranul osciloscopului.
După conectarea firmware-ului electronică și Arduino, introduceți discul în slotul opritului întrerupător. Conectați osciloscopul la D12 și rotiți cadranul. Dacă nu aveți un osciloscop la îndemâna dumneavoastră, atunci observați LED-ul conectat la D13. În acest caz, rotiți cadranul încet, astfel încât impulsurile să fie perceptibile vizual.
Cum să îmbunătățiți codul
Există două modalități principale de citire a semnalului de la intrarea digitală a microcontrolerului: prin interogare și prin întrerupere. În primul caz, sistemul citește semnalul de fiecare dată în cadrul ciclului principal al programului (ca în acest exemplu). Principalul dezavantaj al acestei metode este că este dificil să se manipuleze alte semnale în timpul interogării. Dar, cu ajutorul întreruperilor, bucla principală este eliberată dintr-o porțiune din codul de interogare și sistemul se poate ocupa în siguranță de alte probleme până când un semnal ajunge la intrare. Odată cu sosirea semnalului, lucrarea principală va fi suspendată, sistemul va intra în întrerupere pentru a citi impulsul, apoi va ieși, restabilind lucrarea anterioară. Deci, dacă nu aveți performanță suficientă, utilizați întreruperi.