Novinky: Pridal som novú sekciu na webe - Turistika
Sitepoint logo

Ako na rotačné enkodéry

Veľmi užitočná súčiastka, ak plánujete zariadenie ktoré treba nejako uživateľsky ovládať a nastavovať. V dnešnej modernej dobe IoT by sa dalo čakať ovládanie cez web/mobilnú aplikáciu, ale veľakrát stačí ručné ovládanie – ušetríme určite aj náklady. Najskôr som bojoval s HW dekodérom, ale skončil som s plne SW riešením.encsČo je rotačný enkodér? Otočný ovládač, ktorý nemá definované krajné polohy ako napr. potenciometer, plus niektoré majú aj funkciu stlačenia ako klasícke tlačítko. Určite to poznáte z autorádia, hifi systémov, alebo inej spotrebenej elektroniky. V prinícpe sú to dva spínače, a podľa smeru otočenia sa zopnú v určitom slede za sebou, pre lepšie pochopenie obrázok.ckt10_31eČasto odporúčané HW riešnie so 7474 obvodom…rotary7474Nech som robil čokoľvek (pull-up, pull-down), nefungovalo. Preto som hľadal riešenie ktoré by používalo prerušenia (INT) a umožnilo súčastné použitie viacerých enkodérov (potreboval som 3). Arduino Playground poskytuje na túto tému množstvo riešení, mne sa však osvedčilo riešenie z Buxtronix.

Zapojenie netreba snáď ani kresliť, spoločný vývod ide na zem, A a B piny sa zapoja na digitálne piny Arduina. Ešte pre vysvetlenie časť kódu v setup(). Jedná sa o priamu manipuláciu registrov MCU. PCICR nastavuje vektory prerušenia pre 3 „banky“ pinov (PCINT23:16, 15:8 a 7:0), PCMSK2 povoľuje prerušenia pre jednotlivé piny v banke 2 (PCINT7:0). Ak by ste chceli použiť iné piny, treba náležite zmeniť PCMSKx register a na záver aj tabuľka pinov (HW pin vs. PCINT).

Knižnica na stiahnutie (originál), plus kópia tu na blogu (ak by originál zmizol).

Komentár (1)

  1. Pingback: Rotačné enkodéry po druhé – nelineárne prírastky

Napísať komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *