kategória: Obvody mikrokontrolérov
Počet zobrazení: 16 299
Komentáre k článku: 0
Ako pripojiť inkrementálny kodér k Arduino
V zariadeniach s mikrokontrolérmi je často potrebné usporiadať správu položiek ponuky alebo vykonať určité úpravy. Existuje mnoho spôsobov: použitie tlačidiel, premenných odporov alebo kódovacích zariadení. Inkrementálny kódovač vám umožňuje niečo ovládať pomocou nekonečného otáčania rukoväte. V tomto článku sa zameriame na to, ako prinútiť inkrementálny kódovač a Arduino.

Funkcie prírastkového snímača
Inkrementálny kódovač, rovnako ako akýkoľvek iný typ kodéra, je zariadenie s otočnou rukoväťou. Vzdialene sa podobá potenciometru. Hlavný rozdiel od potenciometra spočíva v tom, že rukoväť kódovača sa otáča o 360 stupňov. Nemá žiadne extrémne ustanovenia.
Kodéry sa dodávajú v mnohých typoch. Inkrementálne sa líši v tom, že s jeho pomocou nie je možné poznať polohu rukoväte, ale iba skutočnosť, že sa otáča v určitom smere - doľava alebo doprava. Podľa počtu signálových impulzov už môžete vypočítať, v akom uhle sa otočil.

Týmto spôsobom môžete prejsť mikroradič príkaz, spravovať menu, napríklad úroveň hlasitosti atď. V každodennom živote ste ich mohli vidieť v autorádiách a iných zariadeniach. Používa sa ako multifunkčný orgán na nastavenie úrovne, ekvalizér a navigáciu v ponuke.

Pracovný princíp
Vo vnútri inkrementálneho kodéra je disk s menovkami a posuvnými prvkami, ktoré s nimi prichádzajú do styku. Jeho štruktúra je podobná potenciometru.

Na obrázku vyššie vidíte disk so značkami, ktoré sú potrebné na prerušenie elektrického spojenia s pohyblivým kontaktom, čo vedie k získaniu údajov o smere otáčania. Dizajn výrobku nie je taký dôležitý, poďme pochopiť princíp činnosti.

Kodér má tri informačné výstupy, jeden spoločný, ostatné dva sa zvyčajne nazývajú „A“ a „B“, na obrázku vyššie vidíte kódovací pin s tlačidlom - môžete získať signál kliknutím na jeho hriadeľ.
Aký signál dostaneme? V závislosti od smeru otáčania sa logická jednotka najskôr objaví na kolíku A alebo B, takže dostaneme fázovo posunutý signál a tento posun nám umožňuje určiť, ktorým smerom. Signál sa získa vo forme pravouhlého tvaru a mikrokontrolér je riadený po spracovaní údajov o smere otáčania a počte impulzov.

Obrázok ukazuje symbol disku s kontaktmi, v strede je graf výstupných signálov a napravo je stavová tabuľka. Toto zariadenie je často nakreslené ako dve kľúče, čo je logické, pretože v skutočnosti dostávame signál „dopredu“ alebo „späť“, „hore“ alebo „dolu“ a počet akcií.

Tu je príklad skutočného kódovacieho kódu:

Aj zázrak:
Chybný enkodér je možné nahradiť dvoma tlačidlami bez blokovania a naopak: domáci ovládač, v ktorom je možné dve z týchto tlačidiel dokončiť nastavením kodéra.
Vo videu nižšie vidíte striedanie signálu na svorkách - počas plynulého otáčania sa LED diódy rozsvietia v poradí, ktoré sa odráža v predchádzajúcom grafe.
Nemenej zreteľne ilustrované v nasledujúcej animácii (kliknite na obrázok):
Kodér môže byť optický (signál je generovaný žiaričmi fotodetektormi, pozri obrázok nižšie), aj magnetický (pracuje na Hallovom efekte). V tomto prípade nemá žiadne kontakty a dlhšiu životnosť.

Ako už bolo uvedené, smer otáčania je možné určiť podľa toho, ktorý z výstupných signálov sa predtým zmenil, ale takto to vyzerá v praxi!

Presnosť riadenia závisí od rozlíšenia enkodéra - počtu impulzov na otáčku. Počet impulzov môže byť od jednotiek po tisíce kusov. Pretože enkodér môže pôsobiť ako snímač polohy, tým viac impulzov, tým presnejšie bude určenie.Tento parameter sa označuje ako PPR - impulz na otáčku.
Existuje však malá nuancia, konkrétne podobné označenie LPR je počet štítkov na disku.
A počet spracovaných impulzov. Každý štítok na disku dáva 1 pravouhlý impulz na každom z dvoch výstupov. Impulz má dve predné časti - zadnú a prednú. Pretože existujú dve možnosti, z každého z nich dostaneme celkom 4 impulzy, ktorých hodnoty môžete spracovať.
PPR = LPRx4
Pripojte sa k Arduino
Zistili sme, čo potrebujete vedieť o inkrementálnom kóderi, a teraz zistime, ako ho pripojiť k Arduino. Zvážte schému pripojenia:

Kodérový modul je doska, na ktorej sú umiestnené inkrementálne kódovacie a pull-up rezistory. Môžete použiť akékoľvek špendlíky.

Ak nemáte modul, ale samostatný enkodér, stačí pridať tieto odpory, obvod sa v zásade nebude líšiť. Skontrolujte smer otáčania a jeho funkčnosť v spojení s Arduino dokážeme prečítať informácie zo sériového portu.

Poďme analyzovať kód podrobnejšie, v poriadku. Vo voľnom nastavení () sme oznámili, že použijeme komunikáciu cez sériový port a potom nastavíme kolíky 2 a 8 do vstupného režimu. Vyberte si čísla PIN sami na základe vašej schémy pripojenia. Konštanta INPUT_PULLUP nastavuje vstupný režim, arduino má dve možnosti:
-
INPUT - vstup bez pull-up rezistorov;
-
INPUT_PULLUP - pripojenie na vstup pull-up rezistorov. Vo vnútri mikrokontroléra už sú odpory, cez ktoré je vstup pripojený k napájaciemu plusu (pullup).
Ak použijete rezistory na dotiahnutie napájacieho napätia, ako je to znázornené na vyššie uvedených schémach, alebo používate modul enkodéra - použite príkaz INPUT, a ak z nejakého dôvodu nemôžete alebo nechcete použiť externé rezistory - INPUT_PULLUP.
Logika hlavného programu je nasledovná: ak ho máme na vstupe „2“, vyvedie port H na monitor, ak nie, L. Ak teda otáčate v rovnakom smere na monitore sériového portu, dostanete niečo také: LL HL HH LH LL. A naopak: LL LH HH HL LL.
Ak ste si pozorne prečítali riadky, pravdepodobne ste si všimli, že v jednom prípade hodnota prvého znaku získala hodnotu av druhom prípade sa prvý znak najskôr zmenil.
záver
Inkrementálne snímače našli široké praktické uplatnenie v zosilňovačoch pre akustické systémy - používali sa ako ovládanie hlasitosti, v autorádiách - na úpravu zvukových parametrov a navigáciu v ponukách, v počítačových myšiach s ňou každý deň listujete stránkami (na jeho hriadeli je nainštalované koleso) , A tiež v meracích nástrojoch, CNC strojoch, robotoch, selsyn nielen ako ovládacie prvky, ale aj pri meraní hodnôt a určovaní polohy.
Pozri tiež na electro-sk.tomathouse.com
: