Raadi Koodka

Koodka Arduino iyo Fiidiyowga: Joystick-ka Laba-Dhidib

Koodka Arduino iyo Fiidiyowga: Joystick-ka Laba-Dhidib

Cashiggan, waxaan ku baran doonnaa sida loo isticmaalo joystick-ka laba-dhidibeedka ah ee XY ee Arduino. Joystick-kan waxaa loo isticmaali karaa sidii kontorool ciyaar ama xakamaynta gacmaha robotic-ka, iyo codsiyo kale oo badan. Diidmada koowaad waxay noqon doontaa ogaanshaha booska joystick-ka iyo xaaladda badhanka riixaya, taas oo lagu arki karo kormeerka serial-ka.

XY-Dual access joystick

Inta lagu guda jiro casharrada, waxaan hirgelin doonnaa barnaamij fudud oo akhriya boosaska X iyo Y ee joystick-ka oo ku muujiya kormeerka serial-ka ee Arduino. Marka joystick-ka la riixo, xaaladda badhanka sidoo kale waa la ogaan doonaa. Faahfaahin dheeraad ah oo ku saabsan koodka, hubi inaad daawato fiidiyowga waqtiyada lagu qeexay (fiidiyowga 00:00).

Qalabka La Sharaxay

Qaybaha ugu muhiimsan ee mashruucan waxaa ka mid ah module-ka joystick-ka laba-dhidibeedka ah iyo looxa Arduino. Module-ka joystick-ku wuxuu ka kooban yahay laba resistors oo doorsooma, mid X-dhidibka iyo mid Y-dhidibka, kuwaas oo bixiya qiimayaal analog ah oo ku salaysan booska joystick-ka. Badhanka riixaya ee joystick-ka waxaa loo isticmaalaa in lagu ogaado marka la riixo.

Markaad dhaqaajiso joystick-ka, potentiometers-ku waxay beddelaan iska caabbintooda, taas oo loo turjumay qiimayaal u dhexeeya 0 iyo 1023. Tani waxay noo ogolaaneysaa inaan si sax ah u go'aamino booska joystick-ka. Badhanka riixaya wuxuu ku xiran yahay pin-ka gelinta dijitaalka ah ee Arduino, taas oo noo ogolaaneysa inaan akhrino xaaladdiisa iyada oo aan loo baahnayn resistor dibadeed iyadoo la adeegsanayo sifada resistor-ka kor-u-jiidista ee gudaha.

Faahfaahinta Xogta

Soo-saareGuud
Nambarka qaybtaModule-ka Joystick-ka Laba-Dhidibeedka
Danabka Logic/IO5 V
Danabka sahayda5 V
Kala duwanaanshaha danabka soo-saarka0 - 5 V
Xallinta10-bit (0-1023) analog
Nooca badhankaRiix-badh
BaakadModule caadi ah

  • Hubi sahayda danab ee habboon (5 V) ee module-ka joystick-ka.
  • Ku xir soo-saarka X iyo Y ee joystick-ka ee pin-yada analog A0 iyo A1, siday u kala horreeyaan.
  • Isticmaal pin-ka dijitaalka ah ee 6 ee badhanka joystick-ka.
  • Isticmaal qaabka resistor-ka kor-u-jiidista ee pin-ka badhanka.
  • Kormeer qiimayaasha soo-saarka si loo hubiyo inay u dhexeeyaan 0 ilaa 1023.

Tilmaamaha Xiritaanka

Arduino wiring for XY-Dual access joystick
Arduino wiring for XY-Dual access joystick
Arduino X-Y-Joystick wiring
Arduino X-Y-Joystick wiring

Si aad ugu xirto joystick-ka laba-dhidibeedka ah ee Arduino, bilaab adigoo ku xira pin-ka dhulka ee joystick-ka ee raylka dhulka ee looxa breadboard-ka. Marka xigta, ku xir pin-ka 5V ee joystick-ka ee raylka togan ee breadboard-ka. Labada pin ee doorsooma ee joystick-ka, oo lagu calaamadeeyay X iyo Y, waa in lagu xiraa pin-yada analog A0 iyo A1 ee Arduino, siday u kala horreeyaan.

Badhanka riixaya ee joystick-ka, ku xir pin-ka dijitaalka ah ee 6 ee Arduino. Xiritaankan wuxuu adeegsadaa sifada resistor-ka kor-u-jiidista ee gudaha, marka uma baahnid resistor dibadeed. Ugu dambeyntii, haddii aad rabto inaad kormeerdo xaaladda badhanka LED-ga, ku xir lugta dheer ee LED-ga ee pin-ka dijitaalka ah ee 13 iyo lugta gaaban iyada oo loo marayo resistor 680-ohm ah oo ku xiran dhulka.

Tusaalooyinka Koodka & Sharaxaadda

Koodka Arduino, waxaan ku qeexnaa pin-ka badhanka waxaanan caddaynay cabbirrada shaashadda si loo sawiro qiimayaasha joystick-ka. Hawsha setup waxay bilaabaysaa isgaarsiinta serial-ka waxayna dejisaa qaabka pin-ka badhanka.

void setup() {
  Serial.begin(9600); // bilaab isgaarsiinta serial-ka
  pinMode(sw, INPUT_PULLUP); // dejinta pin-ka sw sida gelin
  pinMode(13, OUTPUT); // pin-ka LED-ga
}

Hawsha loop, waxaan akhrinnaa qiimayaasha analog ee boosaska X iyo Y waxaanan u sawirnaa cabbirrada shaashadda ee la qeexay. Xaaladda badhanka sidoo kale waa la akhriyaa waxaana lagu daabacaa kormeerka serial-ka.

void loop() {
  int x = analogRead(A0); // akhri qiimaha analog ee X
  int y = analogRead(A1); // akhri qiimaha analog ee Y
  int sStat = digitalRead(sw); // akhri xaaladda badhanka
  // Daabac qiimayaasha kormeerka serial-ka
  Serial.print("X: ");
  Serial.print(xPos);
  Serial.print(" Y: ");
  Serial.println(yPos);
}

Ugu dambeyntii, koodku wuxuu hubinayaa haddii badhanka la riixo, isagoo shidiya ama damiya LED-ga iyadoo ku xiran xaaladda badhanka. Tani waxay bixisaa jawaab celin muuqaal ah marka badhanka joystick-ka la hawlgeliyo.

if(sStat == LOW) {
    Serial.println("Badhanka la riixay");
    digitalWrite(13, HIGH); // Shiid LED-ga
  } else {
    digitalWrite(13, LOW); // Dami LED-ga
  }

Si aad u aragto sida qiimayaasha joystick-ka ay u beddelaan waqtiga dhabta ah, soo geli koodka Arduino-gaaga oo fur kormeerka serial-ka. Qiimayaashu waxay cusboonaysiin doonaan nus ilbiriqsi kasta, iyagoo muujinaya boosaska X iyo Y ee hadda jira iyo xaaladda badhanka (fiidiyowga 01:30).

Muuujin / Waxa Laga Filan Karo

Markaad dhaqaajiso joystick-ka, qiimayaasha X iyo Y waa inay si habboon u beddelaan, iyagoo u dhexeeya 0 ilaa 1023. Haddii aad riixdo badhanka joystick-ka, LED-ka ku xiran pin-ka 13 wuu iftiimin doonaa, taas oo muujinaysa in badhanka uu shaqeeyo. Haddii joystick-ku dhexda ku yaallo, waxaad arki doontaa qiimayaal ku dhow 512 labada dhidib, iyadoo ku xiran habaynta joystick-ka.

Waqtiyada Fiidiyowga

  • 00:00 - Hordhaca joystick-ka laba-dhidibeedka ah
  • 01:30 - Sharaxaadda koodka iyo shaqadiisa
  • 02:45 - Tilmaamaha xiritaanka
  • 03:15 - Soo-saarka la filanayo iyo tijaabinta

Sawirro

Arduino wiring for XY-Dual access joystick
Arduino wiring for XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
Arduino X-Y-Joystick wiring
Arduino X-Y-Joystick wiring
58-This is the Arduino code for a dual-axis joystick.
Luqadda: C++
/*
 * 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);
}

Waad u baahan tahay

Kheyraadka & Tixraacyada

Wali wax kaydsan ah oo weli ma jiro.

Faylasha📁

Fayl la'aan.