V tomto projektu propojíme ROTARY ENCODER s ARDUINO. ARDUINO UNO je vývojová deska založená na řadiči ATMEGA určená pro elektronické inženýry a fandy. V ARDUINO máme 20 I / O pinů, takže můžeme naprogramovat 20 pinů UNO, které budou použity buď jako vstup nebo výstup.
Rotační snímač slouží znát polohu pohybu a úhlového pohybu motoru nebo osy. Obvykle se jedná o zařízení se třemi terminály, s napájecími a uzemňovacími kolíky je celkem 5 terminálů. Níže je uveden modul ROTARY ENCODER.
Kolíky rotačního kodéru jsou:
- Přízemní
- Pozitivní připojení k + 5V
- Výstupní signál Pin
- Výstupní signál B pin
- Pin hodin nebo společný pin
ENCODER poskytuje impulsy představující změnu polohy hřídele, aby systémy porozuměly. Zvažte, zda je ROTARY ENCODER zapnutý a hřídel se pohybuje.
Jak je uvedeno v tabulce výše, zvažte, zda se hřídel pohybuje ve směru hodinových ručiček. S tímto bude na Terminálu A padající Edge a poté na terminálu B.
Zvažte, zda se hřídel pohybuje proti směru hodinových ručiček. S tímto bude Falling Edge v terminálu B a pak v terminálu A.
Tato hrana se vyskytne jednou pro 360/20 = 18 stupňů (Toto je pro kodér s 20 pozicemi, to se mění od typu k typu, čím vyšší je počet, tím větší je přesnost).
S oběma výše uvedenými podmínkami můžeme získat směr a stupeň rotace. Dostaneme tedy požadované parametry pro získání polohy hřídele.
Požadované komponenty
Hardware: Deska Arduino uno, připojovací kolíky, rezistor 220 Ω, LED (osm kusů), rezistor 1 KΩ, rezistor 220 Ω (2 kusy), kondenzátor 100 nF (2 kusy), chlebová deska.
Software: Arduino každou noc
Schéma zapojení a pracovní vysvětlení
Kondenzátory zde slouží k neutralizaci efektu odskakování kontaktů v ENCODERU. Bez těchto kondenzátorů budou vážné problémy se čtením polohy.
Při pohybu hřídele bude časový rozdíl mezi výstupem dvou výstupních kolíků. Arduino UNO rozpozná tento časový rozdíl pro otáčení proti směru hodinových ručiček ve směru hodinových ručiček.
Pokud je rotace ve směru hodinových ručiček, binární počet se zvýší o jednu a tento počet se zobrazí na portu LED, jak je znázorněno na obrázku.
Pokud je rotace proti hodinám, binární počet je snížen o jednu a binární počet je zobrazen na LED bajtu.
Práce Arduina s Rotary Encoderem je vysvětlena krok za krokem v C kódu uvedeném níže.