Lambar Arduino da Bidiyo: Joystick Mai Gatari Biyu
A cikin wannan koyawa, za mu bincika yadda ake amfani da joystick na XY mai gatari biyu tare da Arduino. Wannan joystick na iya zama mai sarrafa wasa ko don sarrafa hannayen robobi, da sauran aikace-aikace. Babban abin da za mu mayar da hankali a kai shi ne gano matsayin joystick da yanayin maɓallin turawa, wanda za a iya nuna shi a kan serial monitor.

A cikin dukan koyawa, za mu aiwatar da wani shiri mai sauƙi wanda ke karanta matsayin X da Y na joystick kuma ya nuna su a cikin Arduino Serial Monitor. Lokacin da aka tura joystick, za a kuma gano yanayin maɓallin. Don cikakken bayani game da lambar, tabbatar da kallon bidiyon a ƙayyadaddun lokutan (a cikin bidiyo a 00:00).
Bayanin Hardware
Babban abubuwan da aka haɗa don wannan aikin sun haɗa da joystick mai gatari biyu da kuma Arduino board. Joystick ɗin ya ƙunshi resistors masu canzawa guda biyu, ɗaya don X-axis da ɗaya don Y-axis, waɗanda ke ba da ƙimar analog dangane da matsayin joystick. Maɓallin turawa a kan joystick ana amfani da shi don gano lokacin da aka danna shi.
Lokacin da ka motsa joystick, potentiometers suna canza juriyarsu, wanda aka fassara zuwa ƙima tsakanin 0 da 1023. Wannan yana ba mu damar sanin matsayin joystick daidai. Maɓallin turawa an haɗa shi da fil ɗin shigarwa na dijital a kan Arduino, yana ba mu damar karanta yanayinsa ba tare da buƙatar resistor na waje ba ta amfani da fasalin ciki na pull-up resistor.
Cikakkun Bayanai na Datasheet
| Manufacturer | Generic |
|---|---|
| Part number | Dual-axis Joystick Module |
| Logic/IO voltage | 5 V |
| Supply voltage | 5 V |
| Output voltage range | 0 - 5 V |
| Resolution | 10-bit (0-1023) analog |
| Switch type | Push-button |
| Package | Standard module |
- Tabbatar da samar da wutar lantarki mai kyau (5 V) ga joystick module.
- Haɗa fitar X da Y na joystick zuwa filayen analog A0 da A1, bi da bi.
- Yi amfani da fil ɗin dijital 6 don maɓallin joystick.
- Yi amfani da tsarin pull-up resistor don fil ɗin maɓallin.
- Duba ƙimar fitarwa don tabbatar da cewa suna tsakanin 0 zuwa 1023.
Umarnin Haɗin Waya


Don haɗa joystick mai gatari biyu zuwa Arduino, fara da haɗa fil ɗin ƙasa na joystick zuwa layin ƙasa a kan breadboard ɗinka. Na gaba, haɗa fil ɗin 5V na joystick zuwa layin ingantaccen wutar lantarki a kan breadboard. Filayen masu canzawa guda biyu a kan joystick, waɗanda aka yiwa lakabi da X da Y, ya kamata a haɗa su zuwa filayen analog A0 da A1 a kan Arduino, bi da bi.
Don maɓallin turawa a kan joystick, haɗa shi zuwa fil ɗin dijital 6 a kan Arduino. Wannan haɗin yana amfani da fasalin ciki na pull-up resistor, don haka ba ka buƙatar resistor na waje. A ƙarshe, idan kana son kula da yanayin maɓallin tare da LED, haɗa ƙafar LED mai tsawo zuwa fil ɗin dijital 13 da ƙafar gajere ta hanyar resistor na 680-ohm zuwa ƙasa.
Misalan Lamba da Bayani
A cikin lambar Arduino, muna ayyana fil ɗin maɓallin kuma mu ƙayyade girman allo don taswirar ƙimar joystick. Aikin setup yana fara sadarwar serial kuma ya saita yanayin fil ɗin maɓallin.
void setup() {
Serial.begin(9600); // fara sadarwar serial
pinMode(sw, INPUT_PULLUP); // saita fil sw azaman shigarwa
pinMode(13, OUTPUT); // fil ɗin LED
}
A cikin aikin loop, muna karanta ƙimar analog don matsayin X da Y kuma mu taswira su zuwa ƙayyadaddun girman allo. Ana kuma karanta yanayin maɓallin kuma a buga shi zuwa Serial Monitor.
void loop() {
int x = analogRead(A0); // karanta ƙimar analog don X
int y = analogRead(A1); // karanta ƙimar analog don Y
int sStat = digitalRead(sw); // karanta yanayin maɓallin
// Buga ƙima zuwa Serial Monitor
Serial.print("X: ");
Serial.print(xPos);
Serial.print(" Y: ");
Serial.println(yPos);
}
A ƙarshe, lambar tana duba idan an danna maɓallin, tana kunna ko kashe LED dangane da yanayin maɓallin. Wannan yana ba da amsa ta gani lokacin da aka kunna maɓallin joystick.
if(sStat == LOW) {
Serial.println("An danna maɓallin");
digitalWrite(13, HIGH); // Kunna LED
} else {
digitalWrite(13, LOW); // Kashe LED
}
Don ganin yadda ƙimar joystick ke canzawa a lokaci na gaske, ɗora lambar zuwa Arduino ɗinka kuma buɗe Serial Monitor. Ƙimar za su sabunta kowane rabin daƙiƙa, suna nuna matsayin X da Y na yanzu tare da yanayin maɓallin (a cikin bidiyo a 01:30).
Nuni / Abin da za ka Yi Tsammani
Lokacin da ka motsa joystick, ƙimar X da Y ya kamata su canza daidai, daga 0 zuwa 1023. Idan ka danna maɓallin joystick, LED da aka haɗa zuwa fil 13 zai haskaka, yana nuna cewa maɓallin yana aiki. Idan joystick ɗin yana tsakiya, ya kamata ka ga ƙima kusan 512 ga duka gatari biyu, dangane da daidaitawar joystick.
Lokutan Bidiyo
- 00:00 - Gabatarwa ga joystick mai gatari biyu
- 01:30 - Bayanin lamba da aiki
- 02:45 - Umarnin haɗin waya
- 03:15 - Abin da za a yi tsammani da gwaji
/*
* This is Arduino code to use a dual-axis XY joystick to read the value of the joystick position as X and Y, and
* also read the switch.
* Other Arduino library and videos: https://robojax.com
* Watch the video for this code to learn it fully.
* Watch the video here: https://youtu.be/6N8Iq353GM8
* This code is offered "as is" without any warranty.
* If you are sharing this code, you must keep this copyright note.
*/
/*
* Written for Robojax video on January 10, 2018
* by Ahmad Nejrabi, in Ajax, Ontario, Canada
* Copyright Robojax Inc.
*/
/*
* This is a dual-axis joystick sketch for Arduino.
* The position of the joystick is read and displayed on the serial monitor.
*/
#define sw 6
#define screenWidth 600
#define screenHeight 300
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
pinMode(sw,INPUT_PULLUP);// setting pin sw as input
pinMode(13,OUTPUT);
}
void loop() {
// Robojax Dual Axis joystick project
int x = analogRead(A0);// read analog value
int y = analogRead(A1);
int xPos = map(x, 0, 1023,0,screenWidth);
int yPos = map(y, 0, 1023,0,screenHeight);
int sStat = digitalRead(sw);//
// Robojax project
Serial.print("X: ");
Serial.print(xPos);
Serial.print(" Y: ");
Serial.println(yPos);// Robojax prints y value
if(sStat ==LOW){
Serial.println("Switch pressed");
digitalWrite(13,HIGH);// Turn LED ON
}else{
digitalWrite(13,LOW);// Turn LED OFF
}
delay(500);
}
Abin da zaka iya bukata
-
AmazonBuy XY joystick from Amazonamzn.to
Albarkatun da kuma shafukan da za a duba
Babu kayan aiki tukuna.
Fayiloli📁
Babu fayiloli da ake da su.