In dit project gaan we een ROTARY ENCODER koppelen aan ARDUINO. ARDUINO UNO is een op ATMEGA-controller gebaseerd ontwikkelbord, ontworpen voor elektronische ingenieurs en hobbyisten. In ARDUINO hebben we 20 I / O-pinnen, dus we kunnen 20 pinnen van UNO programmeren voor gebruik als invoer of uitvoer.
EEN ROTERENDE ENCODER wordt gebruikt om de positie van beweging en hoekbeweging van een motor of as te kennen. Het is meestal een apparaat met drie aansluitingen, met stroom- en aardingspennen zijn er in totaal 5 aansluitingen. Een ROTARY ENCODER-module wordt hieronder getoond.
De pinnen van een roterende encoder zijn:
- Grond
- Positief verbonden met + 5V
- Uitgangssignaal A pin
- Uitgangssignaal B-pin
- Klokpin of gewone pin
De ENCODER levert pulsen die de verandering in de aspositie vertegenwoordigen zodat de systemen deze kunnen begrijpen. Stel dat een ROTERENDE ENCODER wordt ingeschakeld en dat de as wordt bewogen.
Houd er rekening mee dat de as met de klok mee wordt bewogen, zoals weergegeven in bovenstaande tabel. Hiermee is er Falling Edge op de A-terminal en vervolgens op de B-terminal.
Bedenk dat de as tegen de klok in is verplaatst. Hiermee is er Falling Edge bij de B-terminal en vervolgens bij de A-terminal.
Deze flank zal één keer voorkomen voor 360/20 = 18 graden (dit is voor een encoder met 20 posities, dit verandert van type naar type, hoe hoger de telling, hoe nauwkeuriger dit).
Met beide bovenstaande voorwaarden kunnen we richting en mate van rotatie krijgen. Zo krijgen we de vereiste parameters om de positie van een as te bepalen.
Componenten vereist
Hardware: Arduino uno board, aansluitpennen, 220Ω weerstand, LED (acht stuks), 1KΩ weerstand, 220Ω weerstand (2 stuks), 100nF condensator (2 stuks), breadboard.
Software: Arduino elke avond
Schakelschema en werkuitleg
De condensatoren hier zijn voor het neutraliseren van het contact stuiterende effect in ENCODER. Zonder die condensatoren zullen er ernstige problemen zijn bij het aflezen van posities.
Wanneer de as wordt bewogen, is er een tijdsverschil tussen de twee uitgangspennen. De Arduino UNO zal dit tijdsverschil herkennen voor rotatie met de klok mee of tegen de klok in.
Als de rotatie met de klok mee is, wordt de binaire telling met één verhoogd en deze telling wordt weergegeven in de LED-poort zoals weergegeven in de afbeelding.
Als de rotatie tegen de klok in is, wordt de binaire telling met één verlaagd en wordt de binaire telling weergegeven bij LED-byte.
De werking van Arduino met Rotary Encoder wordt stap voor stap uitgelegd in onderstaande C-code.