I dette projekt vil vi interface en ROTARY ENCODER med ARDUINO. ARDUINO UNO er et ATMEGA-controllerbaseret udviklingskort designet til elektroniske ingeniører og hobbyister. I ARDUINO har vi 20 I / O-ben, så vi kan programmere 20 ben UNO, der skal bruges som enten input eller output.
EN ROTERENDE KODER bruges til at kende motorens eller aksens bevægelsesposition og vinkelbevægelse. Det er normalt en tre terminalenhed, med strøm og jordstifter er der i alt 5 terminaler. Et ROTARY ENCODER-modul er vist nedenfor.
Stifterne på en drejekoder er:
- Jord
- Positiv forbundet til + 5V
- Udgangssignal A pin
- Udgangssignal B pin
- Clock pin eller fælles pin
KODEREN tilvejebringer impulser, der repræsenterer ændringen i akselpositionen, som systemerne kan forstå. Overvej, at en roterende encoder er tændt, og akslen bevæges.
Som vist i ovenstående tabel skal du overveje, at akslen bevæges med uret. Med dette vil der være Falling Edge på A-terminalen og derefter på B-terminalen.
Overvej skaftet bevæges mod uret. Med dette vil der være Falling Edge ved B-terminalen og derefter ved A-terminalen.
Denne kant vil forekomme en gang i 360/20 = 18 grader (dette er for en koder med 20 position, dette skifter fra type til type, jo højere tælling større nøjagtighed).
Med begge ovenstående betingelser kan vi få retning og grad af rotation. Således får vi nødvendige parametre for at få positionen af en aksel.
Komponenter, der kræves
Hardware: Arduino uno-kort, forbindelsesstifter, 220Ω modstand, LED (otte stykker), 1KΩ modstand, 220Ω modstand (2 stykker), 100nF kondensator (2 stykker), brødbræt.
Software: Arduino om natten
Kredsløbsdiagram og arbejdsforklaring
Kondensatorerne her er til neutralisering af kontaktspringende effekt i ENCODER. Uden disse kondensatorer vil der være nogle alvorlige problemer i positionslæsning.
Når akslen bevæges, vil der være tidsforskel mellem to outputstifter output. Arduino UNO vil genkende denne tidsforskel for urets retning mod urets rotation.
Hvis rotationen er med uret, øges det binære antal med en, og dette antal vises i LED-port som vist i figuren.
Hvis rotationen er mod uret, mindskes det binære antal med et, og det binære antal vises ved LED-byte.
Arbejde med Arduino med Rotary Encoder forklares trin for trin i C-koden angivet nedenfor.