آردوینو Arduino

راه اندازی Joystick با استفاده از Arduino

با یکی دیگر از آموزش های Arduino در خدمتتون هستیم. این بار راه اندازی و استفاده از یک المان ضروری در پروژه های الکترونیکی و رباتیکی را آموزش خواهیم داد. این وسیله که به صورت ماژول نیز در دسترس میباشد جوی استیک می باشد که نمونه های آن را دیده ایم مثل جوی استیک دسته های کنسول بازی.

Xbox 360 S Controller

اگر بخواهیم کمی در مورد ساختار داخلی این ماژول بگوییم این ماژول تشکیل شده از دو مقاومت متغیر که یکی از آنها وظیفه  کنترل حرکات عمودی و دیگری وظیفه کنترل حرکات افقی را بر عهده دارد و همچنین یک سوییچ برای استفاده های کاربردی در آن تعبیه شده که با فشار دادن جوی استیک عمل میکند.

در واقع با حرکت این جوی استیک ها مقاومت ها دائما در حال تغییر هستند و کاملا مشخص هست که کافیست مقدار تغییر مقاومت ها را اندازه گیری کنیم تا نسبت به تغییرات وسیله های دیگر را کنترل کنیم.

همانطور که میدانیم تغییرات مقاومتی جوی استیک مقادیر آنالوگ و پیوسته ای هستند و برای کنترلرها نامفهومند و برای خوانا کردن این مقادیر برای کنترلر از واحد ADC که در کنترلر تعبیه شده استفاده میکنیم.در اینجا هم به راحتی با استفاده از پایه های آنالوگ Arduino میتوان این اطلاعات را دیجیتال کرده و مورد پردازش قرار داد.

joy stick sensr ky023 900x700

 

برای ایجاد این پروژه به وسایل زیر نیاز هست:

 

 شماتیک پروژه راه اندازی joystick با استفاده از Arduino

 

Arduino 2 axis thumb joystick circuit

 

 

  • پایه شماره 1 –> GND
  • پایه شماره 2 –> Vcc
  • پایه شماره 3 –> VRx – محور عمودی
  • پایه شماره 4 –> VRy – محور افقی
  • پایه شماره 5 –> SW – تک سوییچ جوی استیک

 

و در نهایت سورس کد پروژه راه اندازی joystick با استفاده از Arduino

const int VRxPin= 0;
const int VRyPin= 1;
const int SwButtonPin= 8;

int pressed= -1;
int x= -1;
int y= -1;

void readJoystick() {
pressed= digitalRead(SwButtonPin);
x= analogRead(VRxPin);
y= analogRead(VRyPin);
}

void setup() {
pinMode(SwButtonPin, INPUT);
digitalWrite(SwButtonPin, HIGH);
Serial.begin(115200);
}

void loop() {
readJoystick();
Serial.print("X: ");
Serial.println(x);
Serial.print("Y: ");
Serial.println(y);
Serial.print (" Pressed: ");
Serial.println(pressed);
delay(25);
}

 

در این برنامه مقادیر متغییر دو محور X و Y  از طریق ADC برد آردوینو خوانده می شود و در ترمینال سریال برنامه آردوینو نمایش داده می شود.

در آموزش های بعدی کنترل موتور همراه با مانیتورینگ این ماژول آموزش داده خواهد شد.

نوشته های مشابه

3 دیدگاه

  1. سلام
    ضمن تشکر ,لطفا بفرمایید چرا در ابتدا مقادیر x و y و pressed را برابر 1- گذاشتید?
    ممنان

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا