Kategorie: Obvody mikrokontrolérů
Počet zobrazení: 16 299
Komentáře k článku: 0
Jak připojit inkrementální kodér k Arduino
V zařízeních s mikrokontroléry často potřebujete organizovat správu položek nabídky nebo provést některá nastavení. Existuje mnoho způsobů: použití tlačítek, proměnných rezistorů nebo kodérů. Inkrementální kodér umožňuje ovládat něco pomocí nekonečného otáčení rukojeti. V tomto článku se podíváme na to, jak nastavit inkrementální kodér a Arduino.
Inkrementální funkce enkodéru
Inkrementální kodér, stejně jako jakýkoli jiný typ kodéru, je zařízení s otočnou rukojetí. Vzdáleně se podobá potenciometru. Hlavní rozdíl od potenciometru spočívá v tom, že rukojeť kodéru se otáčí o 360 stupňů. Nemá žádné extrémní předpisy.
Kodéry přicházejí v mnoha typech. Inkrementální se liší v tom, že s jeho pomocí je nemožné znát polohu kliky, ale pouze fakt rotace v nějakém směru - doleva nebo doprava. Podle počtu signálních impulzů již můžete vypočítat, v jakém úhlu se otočil.
Tímto způsobem můžete projít mikrokontrolér příkaz, spravovat menu, například úroveň hlasitosti atd. V každodenním životě jste je mohli vidět v autorádiích a dalších zařízeních. Používá se jako multifunkční orgán pro nastavení úrovně, ekvalizér a navigaci v nabídkách.
Pracovní princip
Uvnitř inkrementálního kodéru je disk se štítky a posuvníky, které s nimi přicházejí do styku. Jeho struktura je podobná potenciometru.
Na obrázku výše vidíte disk se značkami, které jsou nutné k přerušení elektrického spojení s pohyblivým kontaktem, v důsledku čehož získáte data o směru otáčení. Konstrukce výrobku není tak důležitá, pojďme pochopit princip fungování.
Kodér má tři informační výstupy, jeden společný, další dva se obvykle nazývají „A“ a „B“, na obrázku výše vidíte kódovací pin s tlačítkem - můžete získat signál, když kliknete na jeho hřídel.
Jaký signál dostaneme? V závislosti na směru otáčení se logická jednotka nejprve objeví na kolíku A nebo B, takže dostaneme fázově posunutý signál a tento posun nám umožňuje určit, kterým směrem. Signál je získán ve tvaru pravoúhlého tvaru a mikrokontrolér je řízen po zpracování dat směru otáčení a počtu impulzů.
Obrázek ukazuje symbol disku s kontakty, uprostřed je graf výstupních signálů a na pravé straně je tabulka stavu. Toto zařízení je často nakresleno jako dvě klávesy, což je logické, protože ve skutečnosti dostáváme signál „vpřed“ nebo „zpět“, „nahoru“ nebo „dolů“ a počet akcí.
Zde je příklad skutečného kódovacího pinoutu:
Zajímavé:
Vadný kodér lze nahradit dvěma tlačítky bez blokování a naopak: domácí ovládání, ve kterém lze dvě z těchto tlačítek dokončit nastavením kodéru.
Ve videu níže vidíte střídání signálu na terminálech - během plynulé rotace se LED rozsvítí v pořadí, které se odráží v předchozím grafu.
Neméně jasně ilustrované v následující animaci (klikněte na obrázek):
Kodér může být jak optický (signál je generován zářiči fotodetektory, viz obrázek níže), tak magnetický (pracuje na Hallově efektu). V tomto případě nemá žádné kontakty a delší životnost.
Jak již bylo zmíněno, směr otáčení může být určen tím, který z výstupních signálů se předtím změnil, ale takto to vypadá v praxi!
Přesnost ovládání závisí na rozlišení kodéru - počtu pulzů na otáčku. Počet pulzů může být od jednotek do tisíců kusů. Protože kodér může fungovat jako snímač polohy, čím více pulzů, tím přesnější určení nastane.Tento parametr se označuje jako PPR - puls na otáčku.
Existuje však malá nuance, jmenovitě podobné označení LPR je počet štítků na disku.
A počet zpracovaných impulsů. Každý štítek na disku dává 1 obdélníkový puls na každém z obou výstupů. Impuls má dvě čelní strany - zadní a přední. Protože existují dvě cesty ven, získáme celkem 4 pulsy z každé z nich, jejichž hodnoty můžete zpracovat.
PPR = LPRx4
Připojení k Arduino
Přišli jsme na to, co potřebujete vědět o inkrementálním enkodéru, a teď pojďme zjistit, jak se připojit k Arduino. Zvažte schéma připojení:
Modul enkodéru je deska, na které jsou umístěny inkrementální enkodér a pull-up rezistory. Můžete použít libovolné špendlíky.
Pokud nemáte modul, ale samostatný kodér, stačí přidat tyto rezistory, obvod se v zásadě neliší. Zkontrolovat směr otáčení a jeho funkčnost ve spojení s Arduino můžeme číst informace ze sériového portu.
Pojďme analyzovat kód podrobněji, v pořádku. Ve volném nastavení () jsme oznámili, že budeme používat komunikaci přes sériový port a poté nastavíme piny 2 a 8 ve vstupním režimu. Vyberte si čísla PIN sami na základě vašeho schématu připojení. Konstanta INPUT_PULLUP nastavuje režim vstupu, arduino má dvě možnosti:
-
INPUT - vstup bez pull-up rezistorů;
-
INPUT_PULLUP - připojení ke vstupu pull-up rezistorů. Uvnitř mikrokontroléru jsou již rezistory, přes které je vstup připojen k napájení plus (pullup).
Pokud používáte rezistory k utažení k napájecímu plusu, jak je znázorněno na obrázcích výše, nebo používáte modul enkodéru - použijte příkaz INPUT a pokud z nějakého důvodu nemůžete nebo nechcete použít externí rezistory - INPUT_PULLUP.
Logika hlavního programu je následující: pokud máme jeden na vstupu „2“, vyšle port H na monitor, pokud tomu tak není, L. Když tedy otáčíte stejným směrem na monitoru sériového portu, dostanete něco takového: LL HL HH LH LL. A naopak: LL LH HH HL LL.
Pokud si řádky pečlivě přečtete, pravděpodobně jste si všimli, že v jednom případě první znak získal hodnotu a v druhém případě se druhý znak nejprve změnil.
Závěr
Inkrementální enkodéry našly širokou praktickou aplikaci v zesilovačích pro akustické systémy - byly použity jako ovládání hlasitosti, v autorádiích - k úpravě zvukových parametrů a navigaci v menu, u počítačových myší s ním denně procházíte stránky (kolo je instalováno na jeho hřídeli) . A také v měřících nástrojích, CNC strojích, robotech, selsyn nejen jako ovládání, ale také měření hodnot a určování polohy.
Viz také na e.imadeself.com
: