- Kinakailangan na Materyal
- Diagram ng Circuit
- Module ng Joystick
- Code at Paliwanag
- Pagkontrol sa mga LED gamit ang Joystick kasama ang Arduino
Ang unang bagay na pumapasok sa aming isipan na nakikinig sa salitang Joystick ay ang game controller. Oo, eksaktong pareho ito at maaaring magamit para sa layunin ng paglalaro. Bukod sa paglalaro, maraming iba pang mga application sa DIY electronics. Ang joystick na ito ay walang iba kundi isang kombinasyon ng dalawang potentiometers para sa X at Y na eroplano ayon sa pagkakabanggit. Binabasa nito ang boltahe sa pamamagitan ng potensyomiter at nagbibigay ng halagang analog sa Arduino, at nagbabago ang halaga ng analog habang inililipat namin ang Joystick shaft (na kung saan ay simpleng potentiometer pointer).
Sa Circuit na ito, nakikipag-ugnay kami sa Joystick sa Arduino sa pamamagitan lamang ng pagkontrol sa apat na LED ayon sa paggalaw ng Joystick. Naglagay kami ng 4 na LED sa isang paraan na kumakatawan ito sa direksyon ng kilusan ng joystick shaft. Ang joystick na ito ay mayroon ding isang pindutan ng push na maaaring magamit para sa iba't ibang mga layunin o maiiwan na walang ginagawa. Ang isang solong LED ay nakakabit din sa switch ng joystick, dahil ang pindutan ng joystick na pinindot na iisang LED ay ON.
Kinakailangan na Materyal
- Arduino UNO
- Module ng Joystick
- LEDs-5
- Resistor: 100ohm-3
- Mga kumokonekta na mga wire
- Breadboard
Diagram ng Circuit
Module ng Joystick
Magagamit ang mga Joystick sa iba't ibang mga hugis at sukat. Ang isang tipikal na module ng Joystick ay ipinapakita sa larawan sa ibaba. Karaniwang nagbibigay ang module ng Joystick na ito ng Mga Analog Output at ang output voltages na ibinigay ng modyul na ito na patuloy na nagbabago alinsunod sa direksyon kung saan natin ito ilipat. At makukuha natin ang direksyon ng paggalaw sa pamamagitan ng pagbibigay kahulugan sa mga pagbabagong boltahe na ito gamit ang ilang microcontroller. Dati ay nag-interfaced kami ng Joystick sa AVR at Raspberry Pi.
Ang module ng Joystick na ito ay may dalawang palakol tulad ng nakikita mo. Ang mga ito ay X-axis at Y-axis. Ang bawat axis ng JOYSTICK ay naka-mount sa isang potentiometer o palayok. Ang mga midpoint ng mga kaldero na ito ay itinaboy bilang Rx at Ry. Kaya sina Rx at Ry ay mga variable point sa mga kaldero na ito. Kapag ang Joystick ay naka-standby, kumilos sina Rx at Ry bilang isang divider ng boltahe.
Kapag ang joystick ay inilipat kasama ang pahalang na axis, ang boltahe sa Rx pin ay nagbabago. Katulad nito, kapag inilipat ito kasama ng patayong axis, ang boltahe sa Ry pin ay nagbabago. Kaya mayroon kaming apat na direksyon ng Joystick sa dalawang output ng ADC. Kapag inilipat ang stick, ang boltahe sa bawat pin ay mataas o mababa depende sa direksyon.
Dito, kinokonekta namin ang module ng Joystick na ito sa Arduino UNO na may kasamang inbuilt na ADC (Analog to Digital Converter) na mekanismo tulad ng ipinakita sa video sa huli. Matuto nang higit pa tungkol sa paggamit ng Arduino's ADC dito.
Code at Paliwanag
Ang kumpletong Arduino Code ay nabanggit sa huli.
Sa ibaba ng code, natukoy namin ang X at Y axis ng Joystick module para sa analog pin A0 at A1 ayon sa pagkakabanggit.
# tukuyin ang kagalakanX A0 # tukuyin ang kagalakan Y A1
Ngayon, sa code sa ibaba, sinisimulan namin ang PIN 2 ng Arduino para sa Switch (push button) ng Joystick module at ang halaga ng buttonstate at buttonstate1 ay magiging 0 sa simula.
int button = 2; int buttonState = 0; int buttonState1 = 0;
Sa code sa ibaba, inaayos namin ang rate ng baud sa 9600 at tinukoy ang Pin 7 bilang isang output pin at pindutan ng pindutan bilang isang input na Pin. Sa una, ang pin na pindutan ay mananatiling mataas hanggang sa pindutin ang Switch.
walang bisa ang pag-set up () {pinMode (7, OUTPUT); pinMode (pindutan, INPUT); digitalWrite (pindutan, TAAS); Serial.begin (9600); }
Dito, sa code na ito binabasa namin ang mga halaga mula sa analog pin A0 at A1 at sa pag-print ng serial.
int xValue = analogRead (joyX); int yValue = analogRead (joyY); Serial.print (xValue); Serial.print ("\ t"); Serial.println (yValue);
Ang mga kundisyon, para sa pag -on at pag-off ng LED alinsunod sa paggalaw ng Joystick shaft, ay tinukoy sa code sa ibaba. Narito kumukuha lamang kami ng mga halagang analog na boltahe sa pin A0 at A1 ng Arduino. Ang mga halagang analog na ito ay magbabago habang inililipat namin ang joystick at ang LED ay mamula ayon sa paggalaw ng joystick.
Ang kundisyong ito ay para sa paggalaw ng Joystick shaft sa -Y direksyon ng axis
kung (xValue> = 0 && yValue <= 10) {digitalWrite (10, TAAS); } iba pa {digitalWrite (10, LOW);}
Ang kundisyong ito ay para sa paggalaw ng Joystick shaft sa direksyon ng -X axis
kung (xValue <= 10 && yValue> = 500) {digitalWrite (11, TAAS); } iba pa {digitalWrite (11, LOW);}
Ang kundisyong ito ay para sa paggalaw ng Joystick shaft sa direksyon ng + X axis
kung (xValue> = 1020 && yValue> = 500) {digitalWrite (9, HIGH); } iba pa {digitalWrite (9, LOW);}
Ang kundisyong ito ay para sa paggalaw ng Joystick shaft sa direksyon ng + Y axis
kung (xValue> = 500 && yValue> = 1020) {digitalWrite (8, HIGH); } iba pa {digitalWrite (8, LOW);}
Kapag inililipat namin ang Joystick shaft sa pahilis pagkatapos ang isang posisyon ay dumating kapag ang analog na halaga ng X at Y ay magiging 1023 at 1023 ayon sa pagkakabanggit, ang parehong Pin 9 at Pin 8 LED ay mamula. Sapagkat nasiyahan nito ang kundisyon ng LED. Kaya, para sa pag-aalis ng hindi pagtutugma na binigyan namin ng isang kundisyon na kung ang halaga ng (X, Y) ay (1023, 1023) kung gayon ang parehong LED ay mananatili sa kondisyon na OFF
kung (xValue> = 1020 && yValue> = 1020) {digitalWrite (9, LOW); digitalWrite (8, LOW); }
Ang kondisyon sa ibaba ay ginagamit upang mapatakbo ang LED na konektado sa Pushbutton Switch. Habang pinipindot namin ang switch ng Joystick ang LED ay ON at tatama hanggang sa mapalabas ang pindutan. Opsyonal nito na gamitin ang switch ng Push button sa module ng Joystick.
kung (buttonState == LOW) {Serial.println ("Switch = High"); digitalWrite (7, TAAS); } iba pa {digitalWrite (7, LOW);}
Pagkontrol sa mga LED gamit ang Joystick kasama ang Arduino
Matapos i-upload ang code sa Arduino at ikonekta ang mga bahagi ayon sa diagram ng circuit, makontrol na namin ang mga LED sa Joystick. Maaari naming i-ON ang apat na LEDs sa bawat direksyon ayon sa paggalaw ng Joystick shaft. Ang Joystick ay nagkakaroon ng dalawang potentiometer sa loob nito, ang isa ay para sa kilusang X-axis at ang isa pa ay para sa kilusang Y-axis. Ang bawat potensyomiter ay nakakakuha ng 5v mula sa Arduino. Kaya't sa paglipat natin ng joystick, magbabago ang halaga ng boltahe at magbabago din ang halagang analog sa Analog pin A0 at A1.
Kaya, mula sa Arduino, binabasa namin ang halagang analog para sa X at Y axis at i-ON ang mga LED ayon sa paggalaw ng axis ng Joystick. Ang isang push button switch sa Joystick module ay ginagamit upang makontrol ang solong LED sa circuit tulad ng ipinakita sa video sa ibaba.