V tomto tutoriálu budeme propojovat rotační kodér s mikrokontrolérem ATmega8. ATmega8 je řada mikrokontrolérů atmel určená pro vestavěné aplikace. Rotační enkodér se používá ke zjištění polohy pohybu a úhlového pohybu motoru nebo osy. Je to obvykle tři koncová zařízení s počtem pinů napájení a uzemnění na pět. Níže je zobrazen modul rotačního kodéru.
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 ROTATORY 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.
Součásti
Hardware: ATMEGA8, připojovací kolíky, PROGRAMÁTOR AVR-ISP, rezistor 220Ω, LED (osm kusů), rezistor 1KΩ, rezistor 220Ω (2 kusy), kondenzátor 100nF (2 kusy), chlebová deska.
Software: Atmel studio 6.1, progisp nebo flash magic.
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ů. ATMEGA8 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.
Pamatujte, že zde nenastavujeme žádné pojistkové bity atmega8, takže ovladač bude pracovat na výchozím interním krystalu 1 MHz.
Práce s rozhraním rotačního kodéru s mikrokontrolérem ATmega8 je vysvětlena v následujícím kódu.