Existuje široká škála spôsobov prenosu informácií z človeka do mikrokontroléra alebo počítača a jedným z nich je použitie joysticku. Pozrime sa, ako pripojiť k Arduinu analógový joystick s dvoma osami a tlačidlom.
Je to nevyhnutné
- - Arduino;
- - dvojosový joystick;
- - 3 rezistory s nominálnou hodnotou 220 Ohm;
- - 1 RGB alebo 3 bežné LED.
Inštrukcie
Krok 1
Joystick je pohodlné a ľahko použiteľné zariadenie na prenos informácií. Existuje veľké množstvo typov joystickov, pokiaľ ide o počet stupňov voľnosti, princíp čítania indikácií a použité technológie. Joysticky sa najčastejšie používajú na riadenie pohybu akýchkoľvek mechanizmov, kontrolovaných modelov, robotov. Analógovým joystickom, na ktorý sa dnes pozrieme, je rukoväť pripevnená ku guľovému kĺbu s dvoma navzájom kolmými osami. Keď je gombík naklonený, os otáča pohyblivým kontaktom potenciometra, vďaka čomu sa mení napätie na jeho výstupe. Analógový joystick má tiež taktovacie tlačidlo, ktoré sa aktivuje pri vertikálnom stlačení rukoväte.
Krok 2
Pripojte joystick podľa nasledujúceho diagramu. Pripojte analógové výstupy X a Y joysticku k analógovým vstupom A1 a A2 Arduina, výstup SW tlačidla k digitálnemu vstupu 8. Joystick je napájaný napätím +5 V.
Krok 3
Aby sme jasne videli, ako joystick funguje, napíšme taký náčrt. Vyhlásime kolíky, nastavíme pre ne prevádzkové režimy. Všimnite si, že v procedúre setup () sme nastavili vstup switchPin na vysokú úroveň. Toto umožňuje zabudovaný pull-up rezistor na tomto porte. Ak ho nezapnete, potom keď nestlačíte tlačidlo joysticku, 8. port Arduino bude visieť vo vzduchu a zachytávať snímače. To povedie k nežiaducim, chaotickým falošným pozitívam.
V procedúre loop () neustále zisťujeme stav tlačidla a zobrazujeme ho pomocou LED na výstupe 13. Vďaka vytiahnutému vstupu switchPin LED stále svieti a po stlačení tlačidla zhasne, a nie naopak.
Ďalej čítame hodnoty z dvoch potenciometrov joysticku - výstup z osí X a Y. Arduino má 10-bitový ADC, takže hodnoty načítané z joysticku sú v rozmedzí od 0 do 1023. Ako vidíte na obrázku, v strednej polohe joysticku sú hodnoty v oblasti 500 približne v strede rozsahu.
Krok 4
Na ovládanie elektromotorov sa zvyčajne používa joystick. Prečo ho ale nepoužívať napríklad na reguláciu jasu LED? Pripojme RGB LED (alebo tri bežné LED) k digitálnym portom 9, 10 a 11 Arduina podľa vyššie uvedeného diagramu, samozrejme nezabúdame na rezistory.
Krok 5
Jas príslušných farieb zmeníme pri zmene polohy joysticku pozdĺž osí, ako je to znázornené na obrázku. Vzhľadom na to, že joystick nemusí byť výrobcom presne vycentrovaný a jeho stred nemusí byť okolo 512, ale od 490 do 525, môže LED mierne svietiť, aj keď je joystick v neutrálnej polohe. Ak chcete, aby bol program úplne vypnutý, urobte príslušné zmeny v programe.
Krok 6
Na základe vyššie uvedeného diagramu si pomocou joysticku napíšeme náčrt Arduina ovládajúceho jas RGB LED.
Najskôr deklarujeme korešpondenciu pinov a dvoch premenných - ledOn a prevSw - pre prácu s tlačidlom. V procedúre setup () priraďte funkcie pinom a príkazom digitalWrite (swPin, HIGH) pripojte pull-up rezistor na pin gombíka.
V slučke () definujeme stlačenie tlačidla joysticku. Po stlačení tlačidla prepneme prevádzkové režimy medzi režimom „baterka“a režim „farebná hudba“.
V režime freeMode () sa jas LED diód riadi nakláňaním joysticku v rôznych smeroch: čím silnejší je sklon pozdĺž osi, tým jasnejšia je príslušná farba. Transformáciu hodnôt navyše preberá funkcia mapy (value, fromLower, fromUpper, toLower, toUpper). Funkcia map () prenáša namerané hodnoty (z nízkej na vysokú) pozdĺž osí joysticku do požadovaného rozsahu jasu (na nízku, na vysokú). To isté môžete urobiť aj s bežnými aritmetickými operáciami, ale tento zápis je oveľa kratší.
V režime discoMode () tri farby striedavo zvyšujú jas a zhasínajú. Aby sme mohli opustiť slučku, keď je stlačené tlačidlo, kontrolujeme každú iteráciu, aby sme zistili, či bolo stlačené tlačidlo.
Krok 7
Výsledkom je baterka vyrobená z trojfarebnej RGB LED, ktorej jas každej farby sa nastavuje pomocou joysticku. A keď stlačíte tlačidlo, aktivuje sa režim „farebnej hudby“. Aj keď ho používam, naopak, ako nočné svetlo.
Takže sme sa naučili, ako pripojiť analógový dvojosový joystick s tlačidlom k Arduinu a čítať z neho údaje. Môžete vymyslieť a implementovať zaujímavejšie použitie joysticku ako náš príklad.