Náhrada rotačního enkóderu joystickem
|
Potřeboval jsem v generátoru nahradit poškozený rotační enkóder joystickem, Výhoda proti původnímu enkóderu je, že se generují přesné obdélníky bez zákmitů. Podle mého názoru je jednoduché naklonění joysticku i příjemnější na ovládání, než zběsilé točení o desítky otáček původním ovladačem. Hlavní důvod ale byl, že se mi nepodařilo sehnat takový enkóder, který by na pootočení o jeden zub vygeneroval jen jednu hranu ve výsledném signálu. Všechny dostupné enkódery generovaly na jedno cvaknutí celé dva fázově posunuté obdélníky, a to způsobovalo, že generátor přičítal a odečítal číslo 4 na pootočení o jeden zub.
Ze začátku jsem se chvíli zabýval myšlenkou, že bych k takovému enkóderu přidělal děličky frekvence 4 (binární čítače), ale nakonec jsem použil ATtiny 13.
Protože mi zbývalo dost paměti, doplnil jsem ještě uspávání procesoru, která uspoří několik mA odběru při neaktivitě joysticku.
Programování je možné i s připojeným joystickem (musí být ale ve středové poloze).
Připojení k ovládanému zařízení je pomocí 4 vodičů (+5V, GND, OUT_A, OUT_B). I když to není úplně nutné, dal jsem na napájení poblíž ATtiny kondenzátor 100n.
Původně bylo v plánu spínání výstupů přes N-FET tranzistory, ale nakonec jsem výstupy ATtiny nechal připojené napřímo do původních připojovacích bodů rotačního enkóderu.
Kdyby bylo třeba oddělit napěťové úrovně pomocí tranzistorů, stačí v programu odkomentovat řádku, která zinvertuje výstupní logiku:
//#define NFET
Pro signalizaci je možné připojit na výstupy "A", "B" a "PB1" přes odpory LED proti Program pro ATtiny13
Propojení joysticku a ATtiny. ![]() Pin "VRy" na joysticku se odpojí. Programovací ISP piny jsou zobrazeny modře, po naprogramování se odpojí. Připojení ovladače do zařízení společně s původním ovladačem ![]() Přepínání výstupních pinů podle zvoleného ovladače ![]() Při ovládání joystickem se signály generují na ATtiny a původní rotační ovladač má odpojený střední vývod. Při ovládání rotačním ovladačem jsou výstupy ATtiny odpojené a střední vývod rotačního enkóderu se přizemní. Ukázka činnosti na YouTube: ![]() https://youtu.be/VJsel3IevRk
|