ماژول جوی استیک دو محوره KY-023 | Joystick Module با کلید فشاری مناسب آردوینو و ESP32
ماژول جوی استیک دو محوره KY-023 (Joystick Module) یکی از پرکاربردترین ماژولهای ورودی در دنیای الکترونیک، رباتیک و سیستمهای مبتنی بر میکروکنترلر است که امکان تشخیص حرکت در دو محور X و Y را به همراه یک کلید فشاری داخلی (Push Button) فراهم میکند. این ماژول از همان مکانیزم جوی استیکهای مورد استفاده در دستههای بازی استفاده میکند و به دلیل طراحی ساده، دقت مناسب و سازگاری بالا، یکی از محبوبترین گزینهها برای پروژههای مبتنی بر Arduino، ESP32، ESP8266، STM32، Raspberry Pi و سایر میکروکنترلرها محسوب میشود.
ماژول KY-023 دارای دو پتانسیومتر داخلی است که حرکت اهرم را در محورهای افقی (X) و عمودی (Y) به سیگنالهای آنالوگ تبدیل میکنند. با حرکت دادن جوی استیک، مقدار ولتاژ خروجی هر محور تغییر کرده و میکروکنترلر میتواند موقعیت دقیق اهرم را تشخیص دهد. علاوه بر این، با فشردن اهرم به سمت پایین، کلید فشاری داخلی فعال شده و یک سیگنال دیجیتال تولید میشود و خروجی به وضعیت LOW تغییر مییابد که میتوان از آن برای انتخاب گزینهها، اجرای دستورات یا کنترل عملکردهای مختلف استفاده کرد.
به دلیل خروجی آنالوگ، ماژول جوی استیک KY-023 برای کنترل نرم و پیوسته پارامترهایی مانند سرعت موتور، زاویه سروو، حرکت ربات، موقعیت دوربین، کنترل بازوی رباتیک، بازیهای الکترونیکی و بسیاری از پروژههای تعاملی گزینهای ایدهآل است. مقدار خروجی هر محور معمولاً متناسب با موقعیت جوی استیک بین صفر تا ولتاژ تغذیه تغییر میکند و در حالت مرکزی نزدیک به نصف ولتاژ تغذیه قرار دارد. این ویژگی امکان کنترل دقیق و روان را در انواع کاربردهای آموزشی و صنعتی فراهم میکند.
یکی از مهمترین مزایای ماژول جوی استیک دو محوره KY-023، راهاندازی بسیار آسان آن است. این ماژول تنها با پنج پایه شامل VCC، GND، VRx، VRy و SW به میکروکنترلر متصل میشود و بدون نیاز به مدارهای جانبی پیچیده قابل استفاده است. همچنین وجود کتابخانهها و نمونهکدهای فراوان برای آردوینو و سایر پلتفرمها باعث شده است که حتی کاربران مبتدی نیز بتوانند در مدت کوتاهی از این ماژول در پروژههای خود استفاده کنند.
کاربردها
• کنترل حرکت رباتها در دو محور (X و Y)
• کنترل سروو موتور و استپر موتور در پروژههای آردوینو
• ساخت دسته کنترل (Controller) برای پروژههای رباتیک
• کنترل خودروهای رباتیک و ماشینهای کنترلی
• کنترل دوربینهای PTZ و گیمبال
• پیمایش منوها و رابطهای کاربری LCD و OLED
• ساخت کنترلر بازی و شبیهسازها
• کنترل بازوهای رباتیک
• سیستمهای کنترلی CNC و پرینترهای سهبعدی
• پروژههای آموزشی، آزمایشگاهی و DIY
• سیستمهای اینترنت اشیا (IoT)
• کنترل تجهیزات صنعتی و سیستمهای مانیتورینگ
• استفاده در پروژههای مبتنی بر Arduino، ESP32، ESP8266، STM32 و Raspberry Pi.
راهاندازی (Setup)
1. پایه VCC را به ولتاژ 5V مناسبیا 3.3V براساس نوع میکروکنترلر انتخابی و یا مدار فرمان متصل کنید.
2. پایه GND را به زمین (Ground) مدار متصل نمایید.
3. پایه VRx را به یکی از ورودیهای آنالوگ میکروکنترلر یا مدار فرمان متصل کنید تا مقدار محور افقی (X) خوانده شود.
4. پایه VRy را به یک ورودی آنالوگ دیگرمیکروکنترلر یا مدار فرمان متصل کنید تا مقدار محور عمودی (Y) دریافت شود.
5. پایه SW را به یک ورودی دیجیتال متصل کرده و مقاومت Pull-up داخلی یا خارجی را فعال کنید تا وضعیت کلید فشاری تشخیص داده شود چون در صورت فشردن عمودی جوی استیک خروجی SW به صفر منطقی تغییر می کند.
6. با استفاده از تابع analogRead() در آردوینو یا معادل آن در سایر میکروکنترلرها، مقدار محورهای X و Y را بخوانید و با digitalRead() وضعیت کلید فشاری را بررسی کنید.
7. در حالت عادی، مقدار هر محور معمولاً نزدیک به نصف ولتاژ تغذیه (حدود 512 در مبدل 10 بیتی آردوینو) است و با حرکت اهرم در هر جهت تغییر میکند.
8. برای نمونه کد به بخش دیتاشیت محصول مراجعه فرمایید.
نکات مهم
• این ماژول دارای دو خروجی آنالوگ (VRx , VRy) و یک خروجی دیجیتال برای کلید فشاری (SW)است.
• برای جلوگیری از نویز و لرزش مقادیر، میانگینگیری نرمافزاری یا فیلتر دیجیتال روی دادههای آنالوگ توصیه میشود.
• هنگام رها کردن جوی استیک، مقدار خروجی دقیقاً روی عدد ثابت قرار نمیگیرد و ممکن است چند واحد نوسان طبیعی داشته باشد.
• برای عملکرد صحیح، ولتاژ تغذیه ماژول باید با ولتاژ کاری میکروکنترلر سازگار باشد و زمین هردو باید یکی شده باشد.
• از وارد کردن فشار بیش از حد به اهرم خودداری کنید تا عمر مکانیکی جوی استیک کاهش نیابد.
• این ماژول برای اندازهگیری موقعیت نسبی طراحی شده و مناسب کاربردهای اندازهگیری دقیق زاویه نیست.
• در پروژههایی که به پاسخ سریع نیاز دارند، بهتر است دادههای آنالوگ با نرخ مناسب نمونهبرداری و پردازش شوند.
• هنگام لحیمکاری، از اعمال حرارت زیاد به پایهها خودداری کنید تا به برد و پتانسیومترهای داخلی آسیب وارد نشود.
مشخصات فنی:
مدل: KY-023
نوع محصول: ماژول جوی استیک آنالوگ دو محوره (2-Axis Joystick Module)
نوع سنسور: دو پتانسیومتر 10 کیلو اهم + کلید فشاری (Push Button)
تعداد محورها: 2 محور (X و Y)
نوع خروجی محورها: VRX، VRY آنالوگ (Analog Voltage)
خروجی کلید SW: دیجیتال (صفر و یک منطقی) (SW)
ولتاژ کاری: 3.3 تا 5 ولت DC
جریان مصرفی: کمتر از 20 میلیآمپر
مقاومت هر پتانسیومتر: 10kΩ
تعداد پایهها: 5 پایه (VCC، GND، VRX، VRY، SW)
ولتاژ خروجی محور X: 0 تا VCC (آنالوگ)
ولتاژ خروجی محور Y: 0 تا VCC (آنالوگ)
ولتاژ خروجی در حالت مرکزی: حدود VCC/2
نوع کلید داخلی: کلید لحظهای (Momentary Push Switch)
زاویه حرکت اهرم: دو محوره با حرکت آزاد
رابط ارتباطی: Analog + Digital
ابعاد تقریبی برد: 34 × 26 × 32 میلیمتر
دمای کاری: 10- تا 70+ درجه سانتیگراد
سازگاری: Arduino، ESP32، ESP8266، STM32، Raspberry Pi، AVR، PIC و سایر میکروکنترلرها
کاربرد: رباتیک، کنترل سروو، خودروهای کنترلی، تجهیزات صنعتی، پروژههای آموزشی، IoT و
پرسش و پاسخ
ماژول جوی استیک KY-023 برای چه کاربردی مناسب است؟
این ماژول برای تشخیص حرکت در دو محور X و Y و همچنین دریافت فرمان از طریق کلید فشاری داخلی طراحی شده است و در پروژههای رباتیک، کنترل سروو موتور، خودروهای کنترلی، بازیهای الکترونیکی و رابطهای کاربری مبتنی بر آردوینو و سایر میکروکنترلرها کاربرد دارد.
آیا برای راهاندازی KY-023 به کتابخانه آردوینو نیاز است؟
خیر. این ماژول به کتابخانه اختصاصی نیاز ندارد و تنها با توابع analogRead() و digitalRead() در آردوینو قابل استفاده است.
ولتاژ کاری این ماژول چقدر است؟
ماژول KY-023 با 3.3 تا 5 ولت DC کار میکند و با اکثر بردهای توسعه مانند Arduino، ESP32، ESP8266 و Raspberry Pi سازگار است.
پایههای ماژول چه وظیفهای دارند؟
این ماژول دارای پنج پایه است:
• VCC: تغذیه
• GND: زمین
• VRx: خروجی آنالوگ محور X
• VRy: خروجی آنالوگ محور Y
• SW: خروجی کلید فشاری (دیجیتال)
مقدار خروجی جوی استیک در حالت عادی چقدر است؟
در حالت قرارگیری اهرم در مرکز، خروجی هر محور تقریباً نصف ولتاژ تغذیه است؛ برای مثال در تغذیه 5 ولت، مقدار خواندهشده توسط آردوینو معمولاً نزدیک 512 (از 1023) خواهد بود.
آیا کلید فشاری داخلی دارد؟
بله. با فشردن اهرم به سمت پایین، کلید داخلی فعال میشود و پایه SW به حالت LOW (Active LOW) تغییر وضعیت میدهد.
آیا میتوان از این ماژول با ESP32 استفاده کرد؟
بله. این ماژول با ESP32 کاملاً سازگار است. در این حالت بهتر است تغذیه ماژول 3.3 ولت باشد تا ولتاژ خروجی آنالوگ با ورودی ADC برد مطابقت داشته باشد.
چرا مقدار محور X یا Y دقیقاً روی عدد ثابت قرار نمیگیرد؟
وجود نوسان جزئی در مقدار خروجی طبیعی است و به تلرانس پتانسیومترهای داخلی و نویز ADC بستگی دارد. برای افزایش دقت، استفاده از Dead Zone یا میانگینگیری نرمافزاری توصیه میشود.
آیا این ماژول برای کنترل سروو موتور مناسب است؟
بله. خروجی آنالوگ دو محور این ماژول برای کنترل زاویه سروو موتور، سرعت موتور DC، بازوی رباتیک و سایر عملگرها در کنار یک میکروکنترلر یا مدار واسط (درایور) بسیار مناسب است.
تفاوت ماژول KY-023 با جوی استیک دسته PS2 چیست؟
ماژول KY-023 از مکانیزمی مشابه جوی استیکهای دسته PlayStation استفاده میکند، اما روی یک برد آماده با پایههای استاندارد قرار گرفته است تا بهراحتی به بردبورد و میکروکنترلرها متصل شود. این ماژول دو خروجی آنالوگ و یک خروجی دیجیتال برای کلید فشاری ارائه میدهد.
مهدی زارع –
سلام خواهشا موجودی این کالا را افزایش دهید
پشتیبان جم ترونیک –
سلام تلاش میکنیم درآینده موجود بشه.