- Anyag szükséges
- Kördiagramm
- Joystick modul
- Kód és magyarázat
- A LED-ek vezérlése a Joystick és az Arduino segítségével
Az első dolog, ami a Joystick szót hallgatja, az a játékvezérlő. Igen, pontosan ugyanaz, és játékra is felhasználható. A játékokon kívül számos más alkalmazása van a barkács elektronikában. Ez a joystick nem más, mint két potenciométer kombinációja az X és Y síkra. Kiolvassa a feszültséget a potenciométeren keresztül, és analóg értéket ad az Arduino-nak, és az analóg érték változik, amikor mozgatjuk a joystick tengelyt (ami egyszerűen a potenciométer mutatója).
Ebben az áramkörben összekapcsoljuk a joystickot az Arduinóval, egyszerűen négy LED vezérlésével a joystick mozgásának megfelelően. 4 LED-et elhelyeztünk úgy, hogy az a botkormány tengelyének mozgásirányát képviselje. Ez a joystick rendelkezik egy nyomógombbal is, amely felhasználható különféle egyéb célokra, vagy tétlenül hagyható. A joystick kapcsolójához egyetlen LED is csatlakozik, mivel a joystick gomb megnyomásával az egyetlen LED bekapcsol.
Anyag szükséges
- Arduino UNO
- Joystick modul
- LED-5
- Ellenállás: 100ohm-3
- Csatlakozó vezetékek
- Kenyérlemez
Kördiagramm
Joystick modul
A botkormányok különböző formákban és méretben kaphatók. Egy tipikus Joystick modult az alábbi ábra mutat be. Ez a joystick modul általában analóg kimeneteket biztosít, és a modul által biztosított kimeneti feszültségek folyamatosan változnak az irányunk szerint. És megkapjuk a mozgás irányát, ha ezeket a feszültségváltozásokat valamilyen mikrovezérlő segítségével értelmezzük. Korábban a Joystickot csatlakoztattuk az AVR-hez és a Raspberry Pi-hez.
Ennek a joystick modulnak két tengelye van, amint láthatja. X tengely és Y tengely. A JOYSTICK minden tengelye egy potenciométerhez vagy fazékhoz van rögzítve. Ezeknek az edényeknek a középpontjait Rx és Ry néven hajtják ki. Tehát Rx és Ry ezeknek a fazekaknak a változó pontjai. Amikor a joystick készenléti állapotban van, Rx és Ry feszültségosztóként működik.
Amikor a joystickot elmozdítják a vízszintes tengely mentén, az Rx tüskénél a feszültség megváltozik. Hasonlóképpen, amikor a függőleges tengely mentén mozog, a Ry csap feszültsége megváltozik. Tehát mi négy irány Joystick két ADC kimenetek. A bot mozgatásakor az egyes csapok feszültsége az iránytól függően magas vagy alacsony.
Itt összekapcsoljuk ezt a Joystick modult az Arduino UNO-val, amely beépített ADC (Analog to Digital Converter) mechanizmussal rendelkezik, amint az a videó végén látható. Tudjon meg többet az Arduino ADC használatáról itt.
Kód és magyarázat
A végén megemlítjük a teljes Arduino kódot.
Az alábbi kódban meghatároztuk a Joystick modul X és Y tengelyét az A0 és A1 analóg csapokhoz.
#define örömX A0 #define örömY A1
Az alábbi kódban az Arduino 2-es PIN-kódját inicializáljuk a joystick modul kapcsolójához (nyomógomb), és a buttonstate és buttonstate1 értéke kezdetben 0 lesz.
int gomb = 2; int buttonState = 0; int buttonState1 = 0;
Az alábbi kódban az átviteli sebességet 9600-ra állítjuk, és a 7-es tűt kimeneti és a gomb-tűt bemeneti tűként definiáljuk. Kezdetben a gombostű magas marad, amíg a kapcsoló megnyomja.
void setup () {pinMode (7, OUTPUT); pinMode (gomb, INPUT); digitalWrite (gomb, HIGH); Serial.begin (9600); }
Itt, ebben a kódban olvassuk le az értékeket az A0 és A1 analóg csapokról, és sorozatosan nyomtatunk.
int xValue = analogRead (joyX); int yValue = analogRead (örömY); Soros.nyomtatás (xValue); Serial.print ("\ t"); Soros.println (yValue);
A LED be- és kikapcsolásának feltételeit a botkormány tengelyének mozgása szerint az alábbi kód határozza meg. Itt csak a feszültség analóg értékeit vesszük az Arduino A0 és A1 érintkezőjén. Ezek az analóg értékek megváltoznak, amikor mozgatjuk a joystickot, és a LED a joystick mozgásának megfelelően világít.
Ez a feltétel a joystick tengely -Y tengely irányú mozgására vonatkozik
if (xérték>> 0 && yValue <= 10) {digitalWrite (10, HIGH); } else {digitalWrite (10, LOW);}
Ez a feltétel a Joystick tengely -X tengely irányú mozgatására vonatkozik
if (xérték <= 10 && yValue> = 500) {digitalWrite (11, HIGH); } else {digitalWrite (11, LOW);}
Ez a feltétel a Joystick tengely + X tengely irányú mozgására vonatkozik
if (xérték> = 1020 && yValue> = 500) {digitalWrite (9, HIGH); } else {digitalWrite (9, LOW);}
Ez a feltétel a Joystick tengely + Y tengely irányú mozgására vonatkozik
if (xValue> = 500 && yValue> = 1020) {digitalWrite (8, HIGH); } else {digitalWrite (8, LOW);}
Ha a joystick tengelyt átlósan mozgatjuk, akkor egy helyzet jön, amikor az X és Y analóg értéke 1023, illetve 1023 lesz, mind a 9., mind a 8. érintkező LED világítani fog. Mivel kielégíti a LED állapotát. Tehát az eltérés kiküszöbölésére feltételt adtunk, hogy ha (X, Y) értéke (1023, 1023), akkor mindkét LED KI állapotban marad
if (xérték>> 1020 && yValue> = 1020) {digitalWrite (9, LOW); digitalWrite (8, LOW); }
Az alábbi feltétel a nyomógombos kapcsolóra csatlakoztatott LED működtetésére szolgál. Amint lenyomjuk a joystick kapcsolót, a LED bekapcsol és reteszelődik, amíg a gomb ki nem oldódik. Opcionális a Joystick modul nyomógombos kapcsolójának használata.
if (buttonState == LOW) {Serial.println ("Kapcsoló = Magas"); digitalWrite (7, HIGH); } else {digitalWrite (7, LOW);}
A LED-ek vezérlése a Joystick és az Arduino segítségével
Miután feltöltötte a kódot az Arduino-ba, és összekapcsolta az alkatrészeket a kapcsolási rajz szerint, mostantól vezérelhetjük a LED-eket a Joystick segítségével. Bekapcsolhatjuk a négy LED-et mindkét irányban, a Joystick tengely mozgásának megfelelően. A joystickban két potenciométer van, az egyik az X tengely, a másik az Y tengely mozgására szolgál. Minden potenciométer 5 V-ot kap az Arduino-tól. Tehát a joystick mozgatásával a feszültség értéke megváltozik, és az A0 és A1 analóg csapok analóg értéke is megváltozik.
Tehát az Arduino-ból kiolvassuk az X és Y tengely analóg értékét, és bekapcsoljuk a LED-eket a joystick tengelymozgása szerint. A Joystick modul nyomógombos kapcsolójával vezérelhető az áramkör egyetlen LED-je, az alábbi videó szerint.