Sokféle módon lehet információt átvinni egy személytől egy mikrovezérlőhöz vagy számítógéphez, és egyikük joystickot használ. Nézzük meg, hogyan lehet két tengellyel és egy gombbal analóg joystickot csatlakoztatni az Arduino-hoz.
Szükséges
- - Arduino;
- - kéttengelyes joystick;
- - 3 ellenállás 220 Ohm névleges értékkel;
- - 1 RGB vagy 3 hagyományos LED.
Utasítás
1. lépés
A joystick egy kényelmes és könnyen használható eszköz az információk továbbítására. Számos típusú joystick létezik a szabadság fokainak számát, a jelzések olvasásának elvét és az alkalmazott technológiákat tekintve. A joystickokat leggyakrabban bármilyen mechanizmus, vezérelt modell, robot mozgásának vezérlésére használják. Az analóg joystick, amelyet ma meg fogunk nézni, egy két, egymásra merőleges tengellyel ellátott gömbcsuklóhoz rögzített fogantyú. A gomb megdöntésekor a tengely elforgatja a potenciométer mozgatható érintkezőjét, aminek következtében a kimenetén változik a feszültség. Az analóg joysticknak van egy tapintógombja is, amely akkor aktiválódik, ha a fogantyút függőlegesen megnyomja.
2. lépés
Csatlakoztassa a joystickot az alábbi ábra szerint. Csatlakoztassa a joystick X és Y analóg kimeneteit az Arduino A1 és A2 analóg bemeneteihez, az SW gomb kimenetét a 8. digitális bemenethez. A joystickot +5 V feszültség táplálja.
3. lépés
Annak érdekében, hogy tisztán lássuk a joystick működését, írjunk egy ilyen vázlatot. Nyújtsuk ki a csapokat, állítsuk be a működési módokat. Vegye figyelembe, hogy a setup () eljárás során a switchPin bemenetet magas szintre állítjuk. Ez lehetővé teszi a beépített húzóellenállást ezen a porton. Ha nem kapcsolja be, akkor amikor a joystick gombot nem nyomja meg, a 8. Arduino port a levegőben lóg és elkapja a hangszedőket. Ez nem kívánt, kaotikus hamis pozitív eredményeket eredményez.
A ciklus () eljárás során folyamatosan lekérdezzük a gomb állapotát, és a 13. kimenet LED-jével jelenítjük meg. A switchPin bemenet felhúzása miatt a LED folyamatosan világít, és amikor a gombot megnyomja, kialszik., és nem fordítva.
Ezután a joystick két potenciométerének leolvasását olvassuk el - az X és Y tengely kimenetét. Az Arduino 10 bites ADC-vel rendelkezik, így a joystickról leolvasott értékek 0 és 1023 között mozognak. A joystick középső helyzetében, amint az az ábrán látható, az 500 tartományban lévő értékek körülbelül a tartomány közepe felé esnek.
4. lépés
Általában joystickot használnak az elektromos motorok vezérléséhez. De miért ne használná például egy LED fényerejének szabályozására? Csatlakoztassunk egy RGB LED-et (vagy három közönséges LED-et) az Arduino 9., 10. és 11. digitális portjához a fenti ábra szerint, természetesen az ellenállásokról sem feledkezve meg.
5. lépés
Megváltoztatjuk a megfelelő színek fényerejét, amikor megváltoztatjuk a joystick helyzetét a tengelyek mentén, az ábra szerint. Annak a ténynek köszönhetően, hogy a joystickot nem pontosan a gyártó állítja középre, és a skála közepe nem 512 körül van, hanem 490 és 525 között, a LED kissé kigyulladhat akkor is, ha a joystick semleges helyzetben van. Ha azt szeretné, hogy teljesen ki legyen kapcsolva, akkor végezze el a megfelelő módosításokat a programon.
6. lépés
A fenti ábra alapján egy joystick segítségével írunk egy vázlatot az Arduino vezérléséről az RGB LED fényerejéről.
Először deklaráljuk a gombok használatához szükséges csapok és két változó - ledOn és prevSw - megfelelőségét. A setup () eljárás során rendelje hozzá a függvényeket a csapokhoz, és a digitalWrite (swPin, HIGH) paranccsal kösse össze a felhúzási ellenállást a gombostűvel.
A ciklusban () meghatározzuk a joystick gomb megnyomását. Amikor megnyomja a gombot, átkapcsoljuk az üzemmódokat a "zseblámpa" és a "színes zene" mód között.
FreeMode () módban a LED-ek fényerejét a joystick különböző irányokba döntésével lehet szabályozni: minél erősebb a billenés a tengely mentén, annál világosabb a megfelelő szín. Ezenkívül az értékek átalakítását a térképfüggvény veszi át (érték, fromLower, fromUpper, toLower, toUpper). A map () függvény a mért értékeket (Alacsony, Magas) átviszi a joystick tengelye mentén a kívánt fényerő tartományba (Alacsony, Magas). Ugyanezt megteheti a hétköznapi számtani műveletekkel is, de ez a jelölés sokkal rövidebb.
A discoMode () módban három szín felváltva kap fényerőt és kialszik. Annak érdekében, hogy a gomb megnyomásakor kiléphessünk a hurokból, minden egyes iterációt ellenőrizünk, hogy megnyomtuk-e a gombot.
7. lépés
Az eredmény egy háromszínű RGB LED-ből készült zseblámpa, amelynek színének fényerejét joystick segítségével állíthatjuk be. És amikor megnyomja a gombot, a "színes zene" mód aktiválódik. Bár éppen ellenkezőleg, éjszakai fényként használom.
Így megtanultuk, hogyan kell egy analóg kéttengelyes joystickot egy gombbal összekapcsolni az Arduino-val, és leolvasni belőle. Gondolhat és megvalósíthatja a joystick érdekesebb használatát, mint a példánk.