Rotační enkodér |
Rotační enkodér je vstupní prvek, který slouží k získání informace o otáčení jeho osy. Dekódováním signálů lze určit směr a úhel otočení.
Výhodou oproti potenciometru je v tom, že rozsah není nijak omezen, enkodérem lze otáčet na obě strany donekonečna. Nevýhodou je, že získáme pouze informaci o relativní změně polohy.
Obvykle enkodér obsahuje i tlačítko, které se aktivuje stlačením osy. Díky tomu lze enkodérem realizovat velmi uživatelsky přívětivý ovládací prvek (zadávání hodnot, výběr menu, ...).
Zapojení:
Arduino | Enkodér | |
---|---|---|
GND | - | GND |
VCC | - | + |
A2 | - | CLK |
A3 | - | DT |
SCL(A5) | - | SW |
10.1. Test rotačního enkodéru
Napište program, který bude zobrazovat po sériové lince stav signálů z enkodéru.
10.2. Dekódování rotačního enkodéru
Průběh výstupních signálů z enkodéru |
Napište program pro určování polohy osy enkodéru. Polohu vyjadřete jako celé číslo odpovídající počtu impulzů vstupního signálu. Hodnotu zobrazujte po sériové lince. Určete rozlišení tohoto snímače, tj. počet impulzů na jednu otáčku osy.
Existuje množství způsobů dekódování tzv. kvadraturního signálu, který poskytuje enkodér (obrázek). Asi nejjednodušší je počítání impulzů jednoho signálu (CLK). Pro detekci impulzů je nutné najít vzestupnou (nebo sestupnou) hranu signálu a ty počítat.
Počet impulzů odpovídá změně polohy (každý impulz představuje otočení o daný úhel - 360°/n). Ještě je nutné určit směr pohybu, tj. zda impulzy přičítat, či odečítat. To zjistíme ze stavu druhého signálu (DT) v okamžiku náběžné hrany signálu CLK. Tomuto způsobu dekódování se říká jednoduché.
Při počítání náběžných i sestupných hran jednoho signálu, mluvíme o dekódování s dvojnásobným rozlišením a při počítání hran obou signálů o dekódování se čtyřnásobným rozlišením. Tím lze získat "přesnější" informaci o změně polohy osy.
10.3. Běhající světélko
Sestavte program, kde rotačním enkodérem budete ovládat polohu rozsvícené led (1 - 8).
10.4. Číselný vstup
Sestavte program na zadávání číslic v rozsahu 0 - 9 pomocí enkodéru. Otáčením měníte hodnotu, která je zobrazována binárně pomocí čtyř led (led na pinech 5..8). Ukončení se provede aktivací tlačítka enkodéru s indikací bliknutím zelené na RGB led. Zvolenou hodnotu vypisujte přes sériovou linku.