کوډ ولټوئ

د ESP32 ټیوټوریل 26/55 - د Arduino سره د جویسټیک کارول، اقدام کول | د SunFounder د ESP32 IoT کټ

د ESP32 ټیوټوریل 26/55 - د Arduino سره د جویسټیک کارول، اقدام کول | د SunFounder د ESP32 IoT کټ

په دې ټیوټوریل کې به موږ زده کړو چې څنګه د SunFounder څخه د ESP32 مایکروکنټرولر سره د XY جویسټیک انٹرفیس کړو، چې موږ ته اجازه راکوي د هغې موقعیت کشف کړو او د هغې د انپټ پر بنسټ اقدام وکړو. موږ به یو بزر هم مدغم کړو چې کله جویسټیک یو ځانګړي موقعیت ته انتقال شي نو فعال شي. دا ترکیب به موږ ته دا وړتیا راکوي چې متقابل پروژې جوړې کړو چې په ریښتیني وخت کې د کارونکي انپټ ته ځواب ووایی.

ESP32-26-xy-joystick-main

د XY جویسټیک دوه انلاګ آوټ پوټونه چمتو کوي چې د X او Y موقعیتونو سره مطابقت لري او یو سویچ چې د اقدام د پیل لپاره فشارول کیدی شي. د جویسټیک څخه د ارزښتونو په لوستلو سره، موږ کولی شو په خپله پروژه کې مختلف عناصر کنټرول کړو، لکه د بزر فعالول یا په سکرین کې د ارزښتونو ښودل. د پروسې په بشپړه توګه د پوهیدو لپاره، ډاډ ترلاسه کړئ چې د اضافي بصیرتونو لپاره ویډیو وګورئ (په ویډیو کې په 00:00).

هارډویر تشریح شوی

د دې پروژې اصلي اجزا شامل دي ESP32 مایکروکنټرولر، XY جویسټیک، او یو بزر. ESP32 یو څو اړخیزه بورډ دی چې Wi-Fi او Bluetooth ملاتړ کوي، چې دا د IoT پروژو لپاره مثالی کوي. XY جویسټیک د X او Y محورونو لپاره دوه متغیر مقاومتونه او د اضافي انپټ لپاره یو پش بټن سویچ لري.

joystick_schematic
ESP32-26-xy-joystick-schematic

جویسټیک د خپل موقعیت سره مطابقت لرونکي انلاګ سیګنالونه آوټ پوټ کوي، کوم چې د ESP32 د انلاګ پنونو لخوا لوستل کیږي. پش بټن کله چې فشارول کیږي یو ډیجیټل سیګنال چمتو کوي. بزر د ESP32 په یو ډیجیټل آوټ پوټ پن سره وصل دی، چې دا اجازه ورکوي چې د جویسټیک د موقعیت پر بنسټ فعال یا غیر فعال شي.

ډیټاشیټ تفصیلات

جوړونکی SunFounder
د پرزې شمېره XY جویسټیک ماډل
عملیاتي ولټاژ 3.3 V – 5 V
د مقاومت ارزښت 10 kΩ (هر محور)
اعظمي جریان 20 mA
د سویچ ډول لحظوي پش بټن
ابعاد نږدې 50 mm x 50 mm

 

  • ډاډ ترلاسه کړئ چې جویسټیک د ESP32 سره د مطابقت لپاره په 3.3 V بریښنا کیږي.
  • د تیریدونکو انپټونو څخه د مخنیوي لپاره د سویچ لپاره پل-اپ مقاومتونه وکاروئ.
  • انلاګ آوټ پوټونه د ESP32 د ADC پنونو سره وصل کړئ (د X لپاره 34، د Y لپاره 35).
  • د غلط ټریګر کولو مخنیوي لپاره د سویچ لپاره د ډیبونس میکانیزم وکاروئ.
  • د ولټاژ کچې څارنه وکړئ ترڅو ډاډ ترلاسه شي چې دوی د خوندي عملیاتي حدونو دننه پاتې کیږي.

د تارونو لارښوونې

ESP32-26-xy-joystick-wiring

د ESP32 سره د جویسټیک د تارولو لپاره، لومړی د جویسټیک څخه د ځمکې پن د ESP32 په یو ځمکني پن سره وصل کړئ. بیا، د جویسټیک د VCC پن د ESP32 په 3.3 V پن سره وصل کړئ. جویسټیک دوه انلاګ آوټ پوټ پنونه لري: د X-محور آوټ پوټ (د VRX په نوم) د ESP32 په پن 34 سره او د Y-محور آوټ پوټ (د VRY په نوم) د پن 35 سره وصل کړئ.

د سویچ آوټ پوټ لپاره، د سویچ پن د ESP32 په پن 33 سره وصل کړئ. دا پن به د بټن فشار د ډیجیټل انپټ په توګه ولولي. ډاډ ترلاسه کړئ چې اړیکې خوندي دي ترڅو د وقفې ستونزو څخه مخنیوی وشي. که ستاسو تارونه د ویډیو څخه توپیر ولري (په ویډیو کې په 02:30)، د انلاګ او ډیجیټل اړیکو لپاره د ورته اصولو تعقیبولو سره په مطابق تطبیق کړئ.

د کوډ مثالونه او واک ترو

په کوډ کې، موږ د جویسټیک پنونو لپاره د ثابتو تعریف کولو سره پیل کوو. پیژندونکي xAxis، yAxis، او btn په ترتیب سره 34، 35، او 33 ته ټاکل شوي. دا په ټول پروګرام کې د دې پنونو حواله کول اسانه کوي.

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

په setup() فنکشن کې، موږ سیریل اړیکه پیل کوو او د بټن پن حالت د انپټ په توګه ټاکو. دا ESP32 د جویسټیک څخه د معلوماتو لوستلو او سیریل مانیټر ته د لیږلو لپاره چمتو کوي.

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

د loop() دننه، موږ د analogRead() په کارولو سره د جویسټیک د X او Y محورونو لپاره انلاګ ارزښتونه لوستلو او په xValue او yValue کې یې ذخیره کوو. د بټن حالت د digitalRead() په کارولو سره لوستل کیږي او په btnValue کې ذخیره کیږي. په پای کې، موږ دا ارزښتونه سیریل مانیټر ته چاپ کوو.

void loop() {
  int xValue = analogRead(xAxis);
  int yValue = analogRead(yAxis); 
  int btnValue = digitalRead(btn);
  
  Serial.printf("د جویسټیک ارزښت %d , %d , %d دی \n",xValue,yValue,btnValue);
  delay(300);  // د لوستلو ترمنځ ځنډ
}

دا لوپ په دوامداره توګه ارزښتونه تازه کوي، د جویسټیک حرکت او د بټن فشارونو په اړه ریښتیني وخت فیډبیک چمتو کوي. د بشپړ کوډ لپاره، مهرباني وکړئ د مقالې لاندې بار شوي بشپړ کوډ ته مراجعه وکړئ.

ډیمونسټریشن / څه تمه وکړو

کله چې تنظیم بشپړ شي او کوډ اپلوډ شي، سیریل مانیټر باید د بټن حالت سره یوځای د X او Y ارزښتونه وښیې. لکه څنګه چې تاسو جویسټیک حرکت کوئ، ارزښتونه به په مطابق بدل شي، د هغې موقعیت منعکس کوي. د بټن فشارول به د هغې حالت د لوړ او ټیټ ترمنځ بدل کړي.

عامه تېروتنې ناسم تارونه شاملوي، کوم چې کولی شي د غیر فعال انپټونو یا د جوی سټیک څخه د ځواب نشتوالي لامل شي. ډاډ ترلاسه کړئ چې سم پنونه کارول شوي او د سویچ لپاره د پل-اپ ریزسټرونه پلي شوي دي. د دې چلندونو عملي مظاهرې لپاره ویډیو وګورئ (په ویډیو کې په 13:00).

د ویډیو مهال ویش

  • 00:00 پیل
  • 1:47 د XY جوی سټیک پیژندنه
  • 7:32 د جوی سټیک ارزښتونو اندازه کول
  • 8:40 د تارونو تشریح
  • 11:06 د ESP32 سره د جوی سټیک لپاره د Arduino کوډ تشریح
  • 14:43 په Arduino IDE کې د ESP32 بورډ او COM پورټ غوره کول
  • 16:24 د جوی سټیک ساده کارونې مظاهره
  • 19:20 د بزر سره د جوی سټیک موقعیت کشف کوډ
  • 21:16 د موقعیت کشف مظاهره

انځورونه

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
ژبه: 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
}

سرچینې او حوالې

فایلونه📁

هیڅ فایل شتون نلري.