آردوینوالکترونیکپروژه آردوینو

راه اندازی ماژول جوی استیک با آردوینو

مقدمه

راه اندازی ماژول جوی استیک: شاید شما هم اسم جوی استیک را شنیده باشید، احتمال زیاد توی دسته های بازی دیدین و یا شاید هم برای سیستم های کنترلی و یا قطعات الکترونیک دیگه کاربردش را مشاهده کرده باشید. قطعه ای که راه اندازی خیلی ساده اما کاربرد های فراوانی دارد.

 

نمایی از نوع مدار
نمایی از نوع مدار

جوی استیک تشکیل شده است از ۲ مقاومت متغییر. برای درک بهتر این موضوع ابتدا بایستی درک مداری خود از مقاومت را کامل کنیم; فرض کنید ۲ مقاومت را به صورت سری و پشت سر هم به باتری متصل کرده ایم در این صورت بین این دو مقاومت ولتاژی داریم که از مثبت باتری کمتر و از منفی باتری بیشتر است. حال اگر یکی از این مقاومت ها را کم یا زیاد کنیم، ولتاژ بین دو مقاومت هم کم یا زیاد می شود. 

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

نمایی از پایه های JOYSTICK
نمایی از پایه های JOYSTICK در راه اندازی ماژول جوی استیک

در جوی استیک نیز با تغییر غلتک آن می توان ولتاژ های متفاوتی برای آردوینو تولید کرد. 

دو قطعه سیاه رنگ در چپ و بالای ماژول همان مقاومت های متغییر هستند 

امروز ما تصمیم داریم که این ماژول را برای شما راه اندازی کنیم و با آن یک پروژه معمولی بزنیم. پروژه از این قرار است که با استفاده از این ماژول می خواهیم مقادیر تغییرات ولتاژ را بررسی کنیم و سپس این تغییرات را در سروو موتور مشاهده کنیم. 

لوازم مورد نیاز برای راه اندازی ماژول جوی استیک

آردوینوUno  یا هر نوع دیگری. 

ماژول جوی استیک. 

استپر موتور (اختیاری). 

کابل اتصال آردوینو به pc. 

سیم هدر برای اتصالات. 

یکم خلاقیت و حوصله! 

پایه های ماژول joystick

 همانطور که در شکل زیر می بینید دارای دو پایه تغذیه ، دو پایه سیگنال و یک پایه انتخاب می باشد که توسط ADC خوانده می شوند.  

نمایی از نوع پایه های JOUSTICK
نمایی از نوع پایه های JOUSTICK
نمونه کامل از JOYSTICK در آموزش ساخت پروژه joystick
نمونه کامل از JOYSTICK

پایه های ماژول در راه اندازی ماژول جوی استیک

VCC:    تغذیه (اتصال به v5). 

GND:    زمین. 

Xout:    مقدار خوانده شده توسط مبدل آنالوگ به دیجیتال (ADC) برای محور x 

Yout:    مقدار خوانده شده توسط مبدل آنالوگ به دیجیتال (ADC) برای محور y  

Sel:    اگر ماژول را به داخل بفشارید متوجه می شوید که کلیدی را فشرده اید، این پایه در صورت فشرده شدن این کلید مقداری برابر با GND به خود خواهد گرفت و در غیر این صورت VCC می باشد. 

برای راه اندازی سروو موتور توسط آردوینو می توانید به این آموزش مراجعه کنید  و یا هم میتونید فقط کد موجود را آپلود کنید. 

نوع اتصالات در آموزش ساخت پروژه joystick
نوع اتصالات در آموزش ساخت پروژه joystick

کد برنامه در راه اندازی ماژول جوی استیک

برای مشاهده مقادیر خوانده شده توسط ADC کد زیر را آپلود کنید و Serial Monitor را باز کنید: 

#define joyX A0 
#define joyY A1 
int yValue, xValue; 
void setup() { 
  Serial.begin(9600); 

“راه اندازی ارتباط سریال با سیستم” 


void loop() { 
  xValue = analogRead(joyX); 
  yValue = analogRead(joyY); 

“خواندن مقادیر خوانده شده از پایه های x و y “

Serial.print(xValue); 
  Serial.println(yValue); 

“چاپ کردن مقادیر خوانده شده” 

توجه داشته باشید که مقادیر خوانده شده بین ۰ تا ۱۰۲۳ می باشد. 

حال می خواهیم servo موتور ها را راه اندازی کنیم. در حالتی که جوی استیک ثابت است دو مقدار x و y باید مقدار تقریبی ۵۱۲ را نشان دهند، پس می توانیم بگوییم که اگر هر کدام از پایه ها ۰ یا ۱۰۲۳ شد یعنی تغییر جهت داده است. با هر تغییر جهت جوی استیک، به سروو موتور دستور می دهیم که 90 درجه تغییر جهت دهد. برای این کار کد زیر را آپلود کنید: 

#include <Servo.h> 

“اضافه کردن کتابخانه سروو موتور” 

#define joyX A0 
#define joyY A1 
int yValue, xValue; 
int servoPin1 = 3, servoPin2 = 4, servoPin3 = 5, servoPin4 = 6; 
Servo Servo1; 
Servo Servo2; 
Servo Servo3; 
Servo Servo4; 

“تعریف شئ از سروو موتور” 

void setup() { 
  Serial.begin(9600); 

“راه اندازی ارتباط سریال با سیستم” 

  Servo1.attach(servoPin1); 
  Servo2.attach(servoPin2); 
  Servo3.attach(servoPin3); 
  Servo4.attach(servoPin4); 

“انتخاب پایه ای که سروو موتور به آن متصل است. پایه ها در بالاتر تعریف شده اند و می توانید تغییرشان دهید” 

  Servo1.write(0); 
  Servo2.write(0); 
  Servo3.write(0); 
  Servo4.write(0); 

“با این دستور زاویه تمامی سروو موتور ها در لحظه شروع ۰ می کنیم” 


void loop() { 
  xValue = analogRead(joyX); 
  yValue = analogRead(joyY); 
"خواندن مقادیر خوانده شده از پایه های x و y " 
  if(xValue > 1000) Servo1.write(90); 
  else Servo1.write(0); 
  if(xValue > 50) Servo2.write(90); 
  else Servo2.write(0); 
  if(xValue > 1000) Servo3.write(90); 
  else Servo3.write(0); 
  if(xValue > 50) Servo4.write(90); 
  else Servo4.write(0); 

  “اگر جوی استیک تغییر جهت دهد به سروو موتور ها دستور جابجایی ۹۰ درجه داده خواهد شد. برای دقت بیشتر به جای خواندن ۱۰۲۳ و ۰ مقادیر بالاتر از ۱۰۰۰ و پایین تر از ۵۰ را خوانده ایم” 

  Serial.println(xValue); 
  Serial.println(yValue); 

“چاپ کردن مقادیر خوانده شده” 

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

سخن پایانی

امیدوارم از آموزش ساخت پروژه joystick لذت برده باشید. لطفاً در بخش نظرات سوالات و تجربیات خود را در انجام این پروژه با ما در میان بگذارید.

نمایش بیشتر

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

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

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