Search Code

Tutorial ESP32 26/55 - Isticmaalka Joystick-ka ee Arduino Qaadashada Tallaabada | Qalabka ESP32 IoT-ga ee SunFounder

Tutorial ESP32 26/55 - Isticmaalka Joystick-ka ee Arduino Qaadashada Tallaabada | Qalabka ESP32 IoT-ga ee SunFounder

Cashigarkani, waxaan ku baran doonaa sida loo isku xiro joystick-ka XY ee ESP32 microcontroller-ka ee SunFounder, si aan u ogaanno booskiisa oo aan tallaabo u qaadno iyadoo lagu salaynayo waxa uu soo geliyo. Sidoo kale, waxaan ku daraynaa buzzer ka shaqeeya marka joystick-ka loo dhaqaajiyo boos gaar ah. Isku darkani wuxuu noo suurtagelinayaa inaan abuurno mashaariic is-dhexgal ah oo ka jawaabaya gelinta isticmaalaha waqti-gaab ah.

ESP32-26-xy-joystick-main

Joystick-ka XY wuxuu bixiyaa laba wax-soo-saarka analog-ga ah oo u dhigma boosaska X iyo Y iyo furaha la riixi karo si uu u kiciyo tallaabo. Marka aan akhrino qiimaha joystick-ka, waxaan xakameyn karnaa walxo kala duwan oo ku jira mashruucena, sida kicinta buzzer-ka ama muujinta qiimaha shaashadda. Si aad si buuxda u fahanto habka, hubi inaad fiiriso fiidiyowga si aad u hesho aragti dheeri ah (fiidiyowga 00:00).

Qalabka La Sharxay

Qaybaha ugu muhiimsan ee mashruucan waxaa ka mid ah ESP32 microcontroller-ka, joystick-ka XY, iyo buzzer-ka. ESP32 waa loox badan oo taageera Wi-Fi iyo Bluetooth, taasoo ka dhigaysa mid ku habboon mashaariicda IoT. Joystick-ka XY wuxuu ka kooban yahay laba resistors doorsooma oo loogu talagalay dhidibyada X iyo Y, iyo furaha riixitaanka ee gelinta dheeraadka ah.

joystick_schematic
ESP32-26-xy-joystick-schematic

Joystick-ku wuxuu soo saaraa calaamado analog ah oo u dhigma booskiisa, kuwaas oo lagu akhriyo pin-yada analog-ga ah ee ESP32. Furaha riixitaanku wuxuu bixiyaa calaamad dijitaal ah marka la riixo. Buzzer-ku wuxuu ku xiran yahay pin-ka wax-soo-saarka dijitaalka ah ee ESP32, taasoo u oggolaanaysa in la kiciyo ama la damiyo iyadoo lagu salaynayo booska joystick-ka.

Faahfaahinta Xogta

Soo-saare SunFounder
Nambarka qaybta XY Joystick Module
Korantada Shaqada 3.3 V – 5 V
Qiimaha Resistor-ka 10 kΩ (dhidib kasta)
Korantada Ugu Badan 20 mA
Nooca Furaha Furaha riixitaanka ee ku-meel-gaarka ah
Cabbirrada Qiyaastii 50 mm x 50 mm

 

  • Hubi in joystick-ka lagu shideeyo 3.3 V si uu ula jaanqaado ESP32.
  • Isticmaal resistors-ka kor-u-jiidista ee furaha si looga fogaado gelinta sabeynaysa.
  • Ku xir wax-soo-saarka analog-ga ah ee pin-yada ADC ee ESP32 (34 ee X, 35 ee Y).
  • Isticmaal habka debounce ee furaha si looga hortago kicinta been abuurka ah.
  • La soco heerarka korantada si loo hubiyo inay ku sii jiraan xadka badbaadada ee shaqada.

Tilmaamaha Xirista

ESP32-26-xy-joystick-wiring

Si aad joystick-ka ugu xirto ESP32, waxaad ku bilowdaa adiga oo ku xira pin-ka dhulka ee joystick-ka pin-ka dhulka ee ESP32. Marka xigta, ku xir pin-ka VCC ee joystick-ka pin-ka 3.3 V ee ESP32. Joystick-ku wuxuu leeyahay laba pin oo wax-soo-saarka analog-ga ah: ku xir wax-soo-saarka dhidibka X (lagu calaamadeeyay VRX) pin-ka 34 ee ESP32 iyo wax-soo-saarka dhidibka Y (lagu calaamadeeyay VRY) pin-ka 35.

Wax-soo-saarka furaha, ku xir pin-ka furaha pin-ka 33 ee ESP32. Pin-kani wuxuu akhrin doonaa riixitaanka furaha sida gelin dijitaal ah. Hubi in xirista ay adag tahay si looga fogaado dhibaatooyinka isdaba-joogga ah. Haddii xiristaadu ka duwan tahay fiidiyowga (fiidiyowga 02:30), la qabs iyadoo la raacayo mabaadi'da isku midka ah ee xirista analog-ga iyo dijitaalka.

Tusaalooyinka Koodhka & Sharaxaadda

Koodhka, waxaan ku bilaabaynaa qeexida constants-ka pin-yada joystick-ka. Aqoonsiyada xAxis, yAxis, iyo btn waxaa loo dejiyay 34, 35, iyo 33, siday u kala horreeyaan. Tani waxay ka dhigaysaa mid fudud in la tixraaco pin-yadan inta lagu jiro barnaamijka.

#define xAxis 34
#define yAxis 35
#define btn 33

Shaqada setup(), waxaan ku bilaabaynaa isgaarsiinta serial-ka waxaanan u dejinaynaa qaabka pin-ka furaha sida gelin. Tani waxay diyaarisa ESP32 inuu akhriyo xogta joystick-ka oo uu u diro kormeeraha serial-ka.

void setup() {
  Serial.begin(115200);
  pinMode(btn, INPUT);  
}

Gudaha loop(), waxaan akhrinaynaa qiimaha analog-ga ah ee dhidibyada X iyo Y ee joystick-ka iyadoo la adeegsanayo analogRead() waxaanan ku kaydinaynaa xValue iyo yValue. Xaaladda furaha waxaa lagu akhriyaa iyadoo la adeegsanayo digitalRead() waxaana lagu kaydiyaa btnValue. Ugu dambeyntii, waxaan daabacaynaa qiimahan kormeeraha serial-ka.

void loop() {
  int xValue = analogRead(xAxis);
  int yValue = analogRead(yAxis); 
  int btnValue = digitalRead(btn);
  
  Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
  delay(300);  // Dib u dhigma inta u dhaxaysa akhrinta
}

Loop-kani wuxuu si joogto ah u cusboonaysiiyaa qiimaha, isagoo bixinaya jawaab-celin waqti-gaab ah oo ku saabsan dhaqdhaqaaqa joystick-ka iyo riixitaanka furaha. Koodhka dhammaystiran, fadlan tixraac koodhka buuxa ee hoos ku shuban maqaalka.

Muuujin / Waxa Laga Filan Karo

Marka qalabayntu dhammaystirto oo koodhka la soo geliyo, kormeeraha serial-ka waa inuu muujiyaa qiimaha X iyo Y oo ay weheliso xaaladda furaha. Markaad dhaqaajiso joystick-ka, qiimuhu wuu isbeddeli doonaa si waafaqsan, isagoo ka tarjumaya booskiisa. Riixitaanka furaha ayaa beddeli doonta xaaladdiisa u dhaxaysa sare iyo hoose.

Khaladaadka caadiga ah waxaa ka mid ah fiilada qaldan, taasoo keeni karta in inputs-ka sabeyn ama jawaab la'aan ka timaadda joystick-ka. Hubi in pins-ka saxda ah la isticmaalay oo resistors-ka kor u jiidaya (pull-up) lagu hirgeliyay switch-ka. Fiirso fiidiyowga si aad u aragto tusaalayaal wax ku ool ah oo ku saabsan dhaqamadan (fiidiyowga 13:00).

Waqtiyada Fiidiyowga

  • 00:00 Bilow
  • 1:47 Hordhac ku saabsan XY Joystick
  • 7:32 Qiyaasida qiimaha Joystick-ka
  • 8:40 Sharaxaadda fiilada
  • 11:06 Koodhka Arduino ee Joystick-ka oo leh ESP32 oo la sharaxay
  • 14:43 Doorashada board-ka ESP32 iyo COM port-ka ee Arduino IDE
  • 16:24 Tusaale ku saabsan isticmaalka fudud ee Joystick-ka
  • 19:20 Ogaanshaha booska koodhka joystick-ka oo leh buzzer
  • 21:16 Tusaale ku saabsan ogaanshaha booska

Sawirro

joystick_schematic
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
ESP32-26-xy-joystick-main
826-ESP32 Tutorial 26/55- Arduino code for XY Joystick
Luqadda: C++
// Define constants for the x and y axis and the button pins
#define xAxis 34
#define yAxis 35
#define btn 33


void setup() {
  // Initialize serial communication at 115200 bits per second:
  Serial.begin(115200);

  // Set the mode of the button pin to input
  pinMode(btn, INPUT);  
}

void loop() {
  // Read the analog value for x,y axis
  int xValue = analogRead(xAxis);
  int yValue = analogRead(yAxis); 

  // Read the digital value from the button pin
  int btnValue = digitalRead(btn);
  
  // print out the values
  Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
  
  delay(300);  // Delay between reads
}

Kheyraadka & Tixraacyada

Faylasha📁

Fayl la'aan.