آردوینو آردوینو Arduino Uno آموزش آردوینو پروژه های آردوینو پکیج سنسور آردوینو

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

Joystick-and-LED-with-arduino-digispark
نوشته شده توسط پریسا پوربلورچیان

همگی ما هر روز با انواع جوی استیک‌ها کار می‌کنیم. از جوی استیک JoyStick مکانیکی گرفته تا مدل مجازی که معمولا در موبایل و دیگر دستگاه‌های الکترونیکی با آن کار می‌کنیم. ماهیت تمامی این جوی استیک‌ها یکسان است. همگی دارای چهار جهت اصلی هستند و در برخی موارد یک دکمه مرکزی هم دارند. پیرو درخواست کاربران در خصوص آموزش‌های ماژول جوی استیک JoyStick Module تصمیم به ساخت یک مدار خیلی خیلی جذاب گرفتیم. در این روش ۴ ال ای دی در چهار گوشه یک صفحه قرار دارند. با جابجایی اهرم ماژول JoyStick به هر کدام از این‌ها فرمان می‌دهیم. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

ماژول جوی استیک JoyStick دو محوره

بسیاری از پروژه‌های رباتیک نیاز به کنترل خروجی‌ها در جهت‌های مختلف دارند. از کنترل یک ربات پرنده گرفته تا هدایت ماشین کنترلی، همگی به جوی استیک نیاز دارند. ماژول جوی استیک با توجه به ساختار اهرمی مانند آن از دو پتانسیومتر در زوایه ۹۰ درجه بر روی یک پایه تشکیل شده ‌است. این ماژول در حالتی که اهرم‌ها هیچ حرکتی در راستای محور X و Y ندارند، خروجی ولتاژ ۲٫۵ ولت را تولید می‌کند. با حرکت شافت جوی استیک در راستای محور X و Y ولتاژ خروجی از ۰ تا ۵ ولت DC تغییر خواهد کرد. به هنگام اتصال ماژول به میکروکنترلر در حالت شافت ثابت، در خروجی مقادیری حدود ۵۱۲ را مشاهده خواهید کرد. سپس با جا به جایی شافت جوی استیک در راستای محور X و Y مقادیر بین ۰ تا ۱۰۲۳ تغییر خواهد کرد. حرکت جهت دار شافت جوی استیک توسط دو پتانسیومتر ۱۰ کیلو انجام شده و هر پتانسیومتر برای یک محور در نظر گرفته شده است. ماژول جوی استیک JoyStick دارای ۴ پایه به ترتیب GND , 5v , VRx , VRy , SW می‌باشد. پایه VRx مربوط به تغییرات اهرم  در راستای محور X یا همان محور افقی می‌باشد. پایه VRy مربوط به تغییرات اهرم جوی استیک در راستای محور Y یا همان محور عمودی می‌باشد. پایه SW مربوط به کلید فشاری بر روی ماژول می‌باشد. در حالت عادی خروجی پین SW ، برابر با ۵ ولت DC است و در صورت فشار دادن کلید ولتاژ خروجی پایه SW  به ۰ ولت تغییر می‌کند. سوال ولتاژ خروجی دو پایه VRx و VRy در حالت عادی چند ولت می‌باشد؟

 

هدف از آموزش JoyStick

در این آموزش با استفاده از ماژول جوی استیک دو محوره ۴ خروجی را کنترل خواهیم کرد. یک روش بسیار ساده و کاربری برای آموزش شیوه کار با این ماژول پر کاربرد است. لازم به ذکر است که پس از اجرای این آموزش انتظار می‌رود، کاربران بتوانند دستورات مربوط به این ماژول را یادگرفته و در پروژه‌های مستقل از آن استفاده کنند. برای خروجی از ۴ ال ای دی اوال OVAL LED استفاده خواهیم کرد. با چرخش شافت جوی استیک در راستای محور X و Y و تعریف چهار ال ای دی برای هر یک از حالت های بالا، پایین، چپ و راست خروجی را کنترل خواهیم کرد.

 

ال ای دی اوال Oval LED

ال ای دی Oval در مقایسه با سایر ال ای دی‌های نور بسیار واضح و شفاف با زوایه دید بیشتری دارد. همچنین ظاهر این نوع ال ای دی ها متفاوت است. اوال Oval در انگلیسی به معنای بیضی می‌باشد. ولتاژ مورد نیاز برای ال ای دی اوال Oval از ۳ تا ۳٫۲ ولت DC است. این ال ای دی دارای طول موج ۴۲۶ تا ۴۶۵ نانومتر است. همچنین دارای شدت نور ۶۰۰ تا ۸۰۰ MCD می‌باشد. جریان کاری این ال ای دی ۱۵ تا ۲۰ میلی متر است.

 

اتصالات LED به آردوینو

ال ای دی ها را در چهار مسیر متفاوت بر روی شیلد پروتوتایپ آردوینو قرار دهید:

  • ال ای دی LED سمت چپ را به پایه ۱۱ دیجیتال آردوینو Arduino اتصال دهید.
  • ال ای دی LED سمت راست به پایه ۱۰ دیجیتال آردوینو Arduino اتصال دهید.
  • ال ای دی LED سمت بالا را به پایه ۱۲ دیجیتال آردوینو Arduino اتصال دهید.
  • ال ای دی LED سمت پایین را به پایه ۹ دیجیتال آردوینو Arduino اتصال دهید.

 

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

  • پایه VRx ماژول جوی استیک را به پایه آنالوگ A1 آردوینو  Arduino اتصال دهید.
  • پایه VRy ماژول جوی استیک را به پایه آنالوگ A0 آردوینو Arduino اتصال دهید.
  • پایه ۵+ ولت ماژول جوی استیک را به پایه تغذیه ۵ ولت آردوینو Arduino اتصال دهید.
  • پایه GND ماژول جوی استیک را به پایه GND آردوینو Arduino اتصال دهید.

 

کد آردوینو Arduino ماژول JoyStick

 

مهمان گرامی، جهت دسترسی به کدهای این پروژه، اسپارکر شوید.

 

 

تحلیل کدهای آردوینو Arduino

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

 

تعریف دو محور X و Y آنالوگ

دو محور VRx و VRy توسط پایه های انالوگ میکروکنترلر فعال می‌شود. همانند زیر در کد تعریف خواهد شد:

همانطور که در توضیحات ماژول جوی استیک گفته شد، شافت جوی استیک با تغییر در راستای محور X و Y مقادیری بین ۰ تا ۱۰۲۳ را در خروجی ایجاد خواهد کرد. جهت تعریف خروجی در راستای دو محور  X , Y و روشن شدن ال ای دی ها در چهار طرف بین دو مقادیر ۵۰ و ۱۰۰۰ شرط گذاری خواهیم کرد.

 

شرط گذاری بین دو مقادیر ۵۰ و ۱۰۰۰

با شرط گذاری بین دو مقادیر ۵۰ و ۱۰۰۰، هر چهار خروجی روشن خواهد شد. برای بررسی دقیق تر وضعیت هر یک از خروجی ها سریال مانیتور را باز کنید. در سریال مانیتور مقادیر X و Y در دو ستون تعریف شده است. با چرخش شافت جوی استیک مقادیر X و Y خوانده شده بین ۵۰ تا ۱۰۰۰ تغییر کرده و هر یک از ال ای دی ها روشن خواهد شد. در این آموزش ۴ جهت بالا، پایین، راست و چپ برای چرخش جوی استیک تعریف شده است.

 

وسایل مورد نیاز

برد آردوینو Arduino UNO R3

شیلد پروتوتایپ آردوینو Arduino Prototype Shield

ماژول جوی استیک دو محوره JoyStick Module

ال ای دی اوال Oval LED

۶۰ رشته کابل مخصوص بردبورد جامپر 

کابل فلت نری به مادگی

 

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

پروژه و دریافت بن ارسال رایگان

برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک   دانشجوکیت    digispark    daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۸ دیدگاه

  • باسلام. ممنون بابت مطالب جالبی که ارائه می دید. من این آموزش رو انجام دادم. مشکلی که وجود داره بر عکس بودن جهت بالا و پایین هستش. یعنی با بالا بردن جوی استیک ال ای دی پایین روشن میشه و برعکس. چپ و راست درست هستن. اتصالات هم طبق آموزش وصل کردم.آیا مشکل از کد برنامه هستشش یا جوی استیک؟

    • سلام
      از توجه شما ممنونم.
      بله هیچ تفاوتی نخواهد داشت. تنها باید در هنگام انتخاب برد در نرم افزار آردوینو دقت نمایید.

  • با عرض سلام و خسته نباشی
    خیلی ممنون از پروژه خوبتون
    من همین پروژه رو میخوام با nrf پیاده کنم!اما رفرنس خوبی از nrf ندارم و اینکه با ماژول های rf اصلا کار نکردم
    اگه ممکنه منو راهنمایی کنید.
    با تشکر

    • سلام
      از توجه شما ممنونم.
      جهت شروع و کار با ماژول های NRF پیشنهاد می‌کنم، از آموزش های مربوطه آن شروع کنید و سپس با پروژه های دیگر ترکیب کنید. لینک آموزش ماژول های NRF را ضمیمه می‌کنم، حتما مطالعه کنید.

      آموزش NRF

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

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

  • با سلام و ممنون از مطالب مفیدتون
    ماژول joy stick من در حالت عادی روی ۳٫۷ ولت قرار میگرد واینکه led های مربوط به ولتاژ های بالا خوب تشخیص نمیدهد ولی led های ولتاژ پایین را بسیار خوب تشخیص میدهد چون در حالت عادی ولتاژ معمولش ۳٫۷ است و حین تغییر موضع ماژول ولتاژ های پایین را در خروجی به خوبی تولید میکند ولی ولتاژ های بالا را نمی تواند بدرستی ایجاد کند خواستم دلیلش را بدانم در صورت امکان با تشکر

  • سلام . آموزش ها وایده هاتون عالی هستند من تازه با دنیای جذاب آردینو ومیکروکنترل ها آشنا شدم . یه سوال برام پیش آمده . آیا امکان راه اندازی و مدیریت چند کار مختلف روی یک آردینو وجود داره یا نه. برای مثال ما چنتا سنسور میتونیم همزمان ورودی بدیم به برد و به تناسب دستوری که نوشتیم خروجی های مختلفی ازش بگیریم؟

    • سلام
      از توجه و نظر شما ممنونم.
      بله با توجه به ساختار آردوینو و در اختیار داشتن ۱۴ پایه دیجیتال و ۶ پایه آنالوگ امکان راه اندازی سنسورهای مختلف وجود دارد. نکته مهم در خصوص راه اندازی کدنویسی هر یک از سنسورها می‌باشد که باید به آن توجه کرد. در این خصوص آموزش های بسیار زیادی همراه با ترکیب چند ماژول منتشر شده است و می‌توانید مظالعه کنید. همچنین در صورت علاقه می‌توانید در ورکشاپ آردوینو شرکت کنید.