د آردوینو کوډ او ویډیو: دوه محوره جویسټیک
په دې ټیوټوریل کې به موږ وپلټو چې څنګه د آردوینو سره د دوه محوره XY جویسټیک څخه ګټه پورته کړو. دا جویسټیک د لوبې کنټرولر یا د روبوټیک لاسونو کنټرول لپاره کارول کیدی شي، د نورو غوښتنلیکونو په منځ کې. لومړنی تمرکز به د جویسټیک موقعیت او د هغې د فشار-تڼۍ سویچ حالت کشف کول وي، کوم چې په سیریل مانیټر کې ښودل کیدی شي.

د ټیوټوریل په اوږدو کې به موږ یو ساده پروګرام پلي کړو چې د جویسټیک X او Y موقعیتونه لولي او په آردوینو سیریل مانیټر کې یې ښیې. کله چې جویسټیک فشارول کیږي، د سویچ حالت به هم کشف شي. د کوډ د تفصیلي توضیح لپاره، ډاډ ترلاسه کړئ چې ویډیو په ټاکل شویو وختونو کې وګورئ (په ویډیو کې په 00:00).
هارډویر تشریح شوی
د دې پروژې اصلي برخې د دوه محوره جویسټیک ماډل او آردوینو بورډ شامل دي. د جویسټیک ماډل دوه متغیر مقاومتونه لري، یو د X محور لپاره او یو د Y محور لپاره، کوم چې د جویسټیک موقعیت پر بنسټ انلاګ ارزښتونه چمتو کوي. د جویسټیک فشار-تڼۍ سویچ د دې لپاره کارول کیږي چې معلومه کړي کله چې دا فشارول کیږي.
کله چې تاسو جویسټیک حرکت کوئ، پوټینشیومیټرونه خپل مقاومت بدلوي، کوم چې د 0 او 1023 ترمنځ ارزښتونو ته ژباړل کیږي. دا موږ ته اجازه راکوي چې د جویسټیک موقعیت په سمه توګه وټاکو. د فشار-تڼۍ سویچ د آردوینو په ډیجیټل انپټ پن پورې تړلی دی، چې موږ ته دا وړتیا راکوي چې د داخلي پل-اپ مقاومت ځانګړتیا په کارولو سره د بهرني مقاومت اړتیا پرته د هغې حالت ولولو.
ډیټاشیټ تفصیلات
| جوړونکی | عمومي |
|---|---|
| د پرزې شمېره | دوه محوره جویسټیک ماډل |
| منطق/IO ولټاژ | 5 V |
| د برېښنا رسولو ولټاژ | 5 V |
| د محصول ولټاژ سلسله | 0 - 5 V |
| ریزولوشن | 10-بټ (0-1023) انلاګ |
| د سویچ ډول | فشار-تڼۍ |
| بسته بندي | معیاري ماډل |
- د جویسټیک ماډل ته د برېښنا سمه رسول (5 V) ډاډمن کړئ.
- د جویسټیک X او Y محصولات په ترتیب سره انلاګ پنونو A0 او A1 سره وصل کړئ.
- د جویسټیک سویچ لپاره ډیجیټل پن 6 وکاروئ.
- د سویچ پن لپاره د پل-اپ مقاومت ترتیب وکاروئ.
- د محصول ارزښتونه وڅارئ ترڅو ډاډ ترلاسه کړئ چې دوی له 0 څخه تر 1023 پورې دي.
د تارونو د نښلولو لارښوونې


د دوه محوره جویسټیک د آردوینو سره د نښلولو لپاره، لومړی د جویسټیک د ځمکې پن خپل بریډبورډ ته د ځمکې له کرښې سره وصل کړئ. بیا، د جویسټیک 5V پن د بریډبورډ مثبت کرښې سره وصل کړئ. د جویسټیک دوه متغیر پنونه، چې د X او Y په نوم نښه شوي، باید په ترتیب سره د آردوینو انلاګ پنونو A0 او A1 سره وصل شي.
د جویسټیک د فشار-تڼۍ سویچ لپاره، دا د آردوینو ډیجیټل پن 6 سره وصل کړئ. دا اړیکه د داخلي پل-اپ مقاومت ځانګړتیا کاروي، نو تاسو بهرني مقاومت ته اړتیا نلرئ. په پای کې، که تاسو غواړئ د LED سره د سویچ حالت وڅارئ، د LED اوږده پښه د ډیجیټل پن 13 سره او لنډه پښه د 680-اوم مقاومت له لارې ځمکې سره وصل کړئ.
د کوډ مثالونه او تفصیل
د آردوینو کوډ کې، موږ د سویچ لپاره پن تعریف کوو او د جویسټیک ارزښتونو د نقشې کولو لپاره د سکرین ابعاد مشخص کوو. د سیٹ اپ فنکشن سیریل اړیکه پیل کوي او د سویچ پن حالت ټاکي.
void setup() {
Serial.begin(9600); // د سیریل اړیکې پیل کول
pinMode(sw, INPUT_PULLUP); // د sw پن د انپټ په توګه ټاکل
pinMode(13, OUTPUT); // د LED پن
}
د لوپ فنکشن کې، موږ د X او Y موقعیتونو لپاره انلاګ ارزښتونه لوستل او د ټاکل شوي سکرین ابعادو ته یې نقشه کوو. د سویچ حالت هم لوستل کیږي او سیریل مانیټر ته چاپ کیږي.
void loop() {
int x = analogRead(A0); // د X لپاره انلاګ ارزښت لوستل
int y = analogRead(A1); // د Y لپاره انلاګ ارزښت لوستل
int sStat = digitalRead(sw); // د سویچ حالت لوستل
// سیریل مانیټر ته ارزښتونه چاپ کړئ
Serial.print("X: ");
Serial.print(xPos);
Serial.print(" Y: ");
Serial.println(yPos);
}
په پای کې، کوډ ګوري چې ایا سویچ فشارول شوی، د سویچ حالت پر بنسټ LED چالان یا بندوي. دا کله چې د جویسټیک تڼۍ فعاله شي بصری فیډبیک چمتو کوي.
if(sStat == LOW) {
Serial.println("سویچ فشارول شوی");
digitalWrite(13, HIGH); // LED چالان کړئ
} else {
digitalWrite(13, LOW); // LED بند کړئ
}
د دې لپاره چې وګورئ د جویسټیک ارزښتونه په ریښتیني وخت کې څنګه بدلیږي، کوډ خپل آردوینو ته پورته کړئ او سیریل مانیټر خلاص کړئ. ارزښتونه به هر نیم ثانیه تازه شي، د اوسني X او Y موقعیتونو او د سویچ حالت سره (په ویډیو کې په 01:30).
ښودنه / څه تمه وکړو
کله چې تاسو جویسټیک حرکت کوئ، د X او Y ارزښتونه باید په مطابق بدل شي، له 0 څخه تر 1023 پورې. که تاسو د جویسټیک تڼۍ فشار کړئ، د پن 13 سره تړلی LED به روښانه شي، چې دا په ګوته کوي چې سویچ فعال دی. که جویسټیک په مرکز کې وي، تاسو باید د دواړو محورونو لپاره شاوخوا 512 ارزښتونه وګورئ، د جویسټیک د کالیبریشن پورې اړه لري.
د ویډیو وختونه
- 00:00 - د دوه محوره جویسټیک پیژندنه
- 01:30 - د کوډ توضیح او فعالیت
- 02:45 - د تارونو د نښلولو لارښوونې
- 03:15 - تمه شوی محصول او ازموینه
/*
* 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);
}
هغه شیان چې تاسو ورته اړتیا لرئ
-
امازونBuy XY joystick from Amazonamzn.to
سرچینې او حوالې
تر اوسه هیڅ سرچینې نشته.
فایلونه📁
هیڅ فایل شتون نلري.