آردوینو آردوینو 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 توسط پایه های انالوگ میکروکنترلر فعال می‌شود. همانند زیر در کد تعریف خواهد شد:

 xval = analogRead(VRx); // خواندن دیتا از پایه آنالوگ  از محور X
  yval = analogRead(VRy);  // خواندن دیتا از پایه آنالوگ  از محور Y

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

 

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

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

 

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

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

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

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

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

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

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

 

 

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

 

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

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

 

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

 

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

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

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

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

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

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

۵۴ دیدگاه

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

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

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

      • شرمنده من امیرحسینم.نمی دونستم کجا کامنت بزارم.می خواستم پروژه ساعت دیجیتال با آردوینو،lcd,ماژول ds3231 بهم معرفی کنید

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

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

      آموزش NRF

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

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

    • سلام
      این کالای عمومی نیست و باید شماتیک آن را داشته باشید تا پایه ها مشخص گردد.

    • سلام ۴ پایه سمت چپ مربوط میشن به ۴ پایه جوی استیک (هر جوی استیک ۲ پایه) دو پایه بعدی مربوط میشن به دو کلیدی که روی برده و دو پایه بعدی هم میشن تغذیه که اینجوری نمیتونم بگم ولی فکر می کنم سمت چپی gnd و سمت راستی vcc باشه!

    • پایه های پاور رو خودت تست کن و یا ممکنه که روی برد نوشته شده باشه ولی احتمالا همونی که ترک کلفت داره زمین باشه!

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

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

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

  • سلام خانم پوربلورچیان من تو سایت ثبت نام کردماشتراکمدارم پروژه های دیگه کد هاش برام میاد ولی برای این پروژه در مکان کد هانوشته ایمیلی برای تایید حساب شما ارسال گردید.مشکل چیه؟

    • با سلام
      از توجه شما ممنونم. از ظرافت اجرای پروژه بسیار لذت بردم.
      جهت دریافت کد ارسال رایگان، با حساب کاربری خود در دانشجوکیت تیکت ارسال نمایید تا بن در حساب کاربری شما فعال گردد.

  • بسیار عالی بود. من کاملا آماتور هستم. خیلی سریع اجرا شد و درست کار کرد و از کامنت گذاری کد هم متوجه شدم چه اتفاقی داره میوفته. فقط در مورد سریال مانیتور که در کد هست متوجه نشدم این مانیتور کدوم مانیتوره. :)) رشته خروجی رو داره به کدوم مانیتور میفرسته؟ 🙂

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

  • سلام
    وقت بخیر
    چطور میشه حالت تفکیک رو در ماژور اولتراسونیک اعمال کرد
    مثلا از پارچه رد بشه ولی به بدن خورد اعلام وضعیت کنه

  • سلام خسته نباشید
    من برنامه اسکت جوی استیک آردوینو برای چهار جهت که گذاشتین میخواستم عضویت۶۰روزه هم گرفتم ولی نمیدونم چجوری برنامه رو دان کنم یا بگیرم لطفا راهنمایی کنین ممنون

    • با سلام
      جهت اتصال جوی استیک به رزبری پای از مبدل آنالوگ به دیجیتال بایستی استفاده کنید.

  • عرض سلام و احترام خدمت شما خانم مهندس پوربلورچیان
    من می خوام یه جوی استیک بزای game بسازم اما برای کامپیوتر و به صورت وایرلِس {{{مثل joy stick PlayStation 6 دکمه ضربدر ، دایره ، مثلث و مربع + ۴ جهت((بالا ، پایین ، چپ و راست)) }}}
    ممکنه این پروژه رو برای بنده انجام بدید ؟؟؟

    • با سلام
      سپاس از همراهی شما، در صورت امکان آموزش های لازم ارائه خواهد شد.

  • سلام
    میشه کاری کرد بسته به میزان حرکت جویستیک مقدار نور هم کم وزیاد شه
    منظورم اضافه کردن pwm هست

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

    • با سلام
      در این خصوص میتوانید در کارگاه های آنلاین شرکت کنید. جهت شرکت در دوره ها از مسیر زیر اقدام فرمایید. در نظر داشته باشید استفاده از قطعات نیاز به بررسی دیتاشیت کالاها دارد و تا زمانیکه ولتاژ کاری و جریان را مدیریت کنید، آسیبی رخ نمیدهد.
      Daneshjookit.com/support

  • سلام.
    وقتتون بخیر.
    من در نظر دارم یک ماشین کنترلی درست کنم که نیاز است توش سه تا موتور دی سی و سه تا سرو رو کنترل کنم و همچنین با “رادیو کنترل”، کنترل بشه.
    برای فرمانش هم میخوام از جوی استیک استفاده کنم. میشه بگین چه تجهیزاتی نیاز است که از سایتتون بخرم و چندتا؟
    ممنون از راهنماییتون

      • سلام.
        ممنون که جواب دادین.
        برای این که از جوی استیک برای کنترل رادیویی این ماشین استفاده کنم چه بردهایی از خانواده اردوینو نیاز دارم ؟
        امکانش هست که البته با دریافت هزینه، مراحل برنامه نویسی رو هم خودتون انجام بدین و بردها را به صورت پک ارسال بفرمایید؟