I dette prosjektet skal vi grensesnitt en ROTARY ENCODER med ARDUINO. ARDUINO UNO er et ATMEGA-kontrollerbasert utviklingsbrett designet for elektroniske ingeniører og hobbyister. I ARDUINO har vi 20 I / O-pinner, så vi kan programmere 20 pinner med UNO som skal brukes som enten inngang eller utgang.
EN ROTERENDE KODER brukes til å kjenne bevegelsesposisjonen og vinkelbevegelsen til en motor eller akse. Det er vanligvis en tre terminalenhet, med strøm- og bakkepinner er det totalt 5 terminaler. En ROTARY ENCODER-modul er vist nedenfor.
Pinnene til en roterende koder er:
- Bakke
- Positiv koblet til + 5V
- Utgangssignal A pin
- Utgangssignal B-pinne
- Clock pin eller vanlig pin
KODEREN gir pulser som representerer endringen i akselposisjonen for systemene å forstå. Tenk på at en ROTARY ENCODER blir slått på og akselen flyttes.
Som vist i tabellen ovenfor, bør du vurdere at skaftet beveges med klokken. Med dette vil det være Falling Edge på A-terminalen og deretter på B-terminalen.
Tenk på at skaftet beveges mot klokken. Med dette vil det være Falling Edge på B-terminalen og deretter på A-terminalen.
Denne kanten vil oppstå en gang i 360/20 = 18 grader (Dette er for en koder med 20 posisjon, dette endres fra type til type, jo høyere teller større nøyaktighet).
Med begge ovennevnte forhold kan vi få retning og rotasjonsgrad. Dermed får vi nødvendige parametere for å få posisjonen til en aksel.
Komponenter kreves
Maskinvare: Arduino uno-kort, tilkoblingspinner, 220Ω motstand, LED (åtte stykker), 1KΩ motstand, 220Ω motstand (2 stk), 100nF kondensator (2 stykker), brødbrett.
Programvare: Arduino nattlig
Kretsdiagram og arbeidsforklaring
Kondensatorene her er for å nøytralisere kontaktstoppeffekten i ENCODER. Uten disse kondensatorene vil det være noen alvorlige problemer med posisjonsavlesning.
Når akselen flyttes, vil det være tidsforskjell mellom to utganger. Arduino UNO vil gjenkjenne denne tidsforskjellen mot klokken mot rotasjon mot klokken.
Hvis rotasjonen er med klokken, økes binærtellingen med en, og denne tellingen vises i LED-port som vist i figuren.
Hvis rotasjonen er mot klokken, reduseres binærtellingen med en, og binærantallet vises ved LED-byte.
Arbeid med Arduino med Rotary Encoder er forklart trinn for trinn i C-koden gitt nedenfor.