Arduino-ga Joystickni Qanday Ulash Mumkin

Mundarija:

Arduino-ga Joystickni Qanday Ulash Mumkin
Arduino-ga Joystickni Qanday Ulash Mumkin

Video: Arduino-ga Joystickni Qanday Ulash Mumkin

Video: Arduino-ga Joystickni Qanday Ulash Mumkin
Video: Уроки Arduino - управление сервомашинкой 2024, Aprel
Anonim

Odamdan mikrokontrollaga yoki kompyuterga ma'lumot uzatishning turli xil usullari mavjud va ulardan biri joystikdan foydalanadi. Keling, ikkita eksa va tugma bilan analog joystikni Arduino-ga qanday ulashni ko'rib chiqamiz.

Ikkita o'qi va tugmasi bo'lgan joystik
Ikkita o'qi va tugmasi bo'lgan joystik

Bu zarur

  • - Arduino;
  • - ikki o'qli joystik;
  • - nominal qiymati 220 Ohm bo'lgan 3 rezistor;
  • - 1 RGB yoki 3 an'anaviy LED.

Ko'rsatmalar

1-qadam

Joystik - bu ma'lumotni uzatish uchun qulay va ishlatish uchun qulay uskuna. Erkinlik darajasi, ko'rsatkichlarni o'qish printsipi va ishlatilgan texnologiyalar bo'yicha juda ko'p sonli joystik turlari mavjud. Joystiklar ko'pincha har qanday mexanizmlar, boshqariladigan modellar, robotlar harakatini boshqarish uchun ishlatiladi. Bugun ko'rib chiqadigan analog joystick - bu ikki o'zaro perpendikulyar o'qi bo'lgan shar qo'shimchasiga bog'langan tutqich. Tugma qiyshayganda eksa potansiyometrning harakatlanuvchi kontaktini aylantiradi, shu sababli uning chiqishidagi kuchlanish o'zgaradi. Bundan tashqari, analog joystickda tak tugmasi mavjud, u dastani vertikal bosganda paydo bo'ladi.

Joystikning sxematik diagrammasi
Joystikning sxematik diagrammasi

2-qadam

Joystickni quyidagi sxema bo'yicha ulang. Joystickning X va Y analog chiqishlarini Arduino-ning analog kirishlariga A1 va A2 ga ulang, SW tugmasi chiqishi raqamli kirishga 8. Joystik +5 V kuchlanish bilan quvvatlanadi.

Arduino uchun joystikni ulash sxemasi
Arduino uchun joystikni ulash sxemasi

3-qadam

Joystik qanday ishlashini aniq ko'rish uchun, shunday eskiz yozamiz. Keling, pinlarni e'lon qilaylik, ular uchun ish rejimlarini o'rnating. Setup () protsedurasida biz switchPin kirishini yuqori darajaga o'rnatganimizga e'tibor bering. Bu ushbu portga o'rnatilgan tortishish qarshiligini ta'minlaydi. Agar siz uni yoqmasangiz, unda joystick tugmachasi bosilmaganda, 8-Arduino porti havoda osilgan va pikaplarni ushlaydi. Bu kiruvchi, xaotik soxta ijobiy holatlarga olib keladi.

Loop () protsedurasida biz tugmachaning holatini doimiy ravishda so'roq qilamiz va uni 13-chi chiqishdagi LED yordamida namoyish qilamiz. SwitchPin usuli yuqoriga ko'tarilganligi sababli LED doimo yonib turadi va tugma bosilganda u o'chadi va aksincha emas.

Keyinchalik, biz joystikning ikkita potentsiometrining o'qishini o'qiymiz - X va Y o'qlari chiqishi. Arduino 10-bitli ADCga ega, shuning uchun joystikdan o'qilgan qiymatlar 0 dan 1023 gacha. Joystikning o'rta holatida, rasmda ko'rib turganingizdek, 500 mintaqasidagi qiymatlar oraliqning o'rtasiga to'g'ri keladi.

Joystikning ishlashini namoyish etish uchun eskiz
Joystikning ishlashini namoyish etish uchun eskiz

4-qadam

Odatda joystick elektr motorlarini boshqarish uchun ishlatiladi. Lekin nima uchun uni, masalan, LED yorug'ligini boshqarish uchun ishlatmaslik kerak? Arduinoning 9, 10 va 11 raqamli portlariga RGB LEDni (yoki uchta oddiy LEDni) yuqoridagi diagramma bo'yicha ulaymiz, albatta, rezistorlar haqida unutmaylik.

Arduino-ga Joystick va RGB LED simi diagrammasi
Arduino-ga Joystick va RGB LED simi diagrammasi

5-qadam

Rasmda ko'rsatilgandek joystickning o'qlari bo'ylab holatini o'zgartirganda mos ranglarning yorqinligini o'zgartiramiz. Joystik ishlab chiqaruvchi tomonidan aniq markazlashtirilmasligi va shkalaning o'rtasi 512 atrofida emas, balki 490 dan 525 gacha bo'lishi mumkinligi sababli, joystik neytral holatda bo'lsa ham, LED bir oz yonishi mumkin. Agar siz uni butunlay o'chirib qo'yishni xohlasangiz, unda dasturga tegishli o'zgartirishlarni kiriting.

X va Y o'qlari bo'ylab R, G, B kanallarining yorqinligini taqsimlash diagrammasi
X va Y o'qlari bo'ylab R, G, B kanallarining yorqinligini taqsimlash diagrammasi

6-qadam

Yuqoridagi diagramma asosida biz joystik yordamida Arduino boshqaruvining RGB LED yorug'ligini eskizini yozamiz.

Birinchidan, biz tugmachalar bilan ishlash uchun pinlar va ikkita o'zgaruvchini - ledOn va prevSw - yozishmalarini e'lon qilamiz. Setup () protsedurasida funktsiyalarni pinlarga tayinlang va tortishish qarshiligini tugma piniga digitalWrite (swPin, HIGH) buyrug'i bilan ulang.

() Loopida biz joystick tugmachasini bosishni aniqlaymiz. Tugmani bosganingizda, biz ish rejimlarini "chiroq" va "rangli musiqa" rejimlari o'rtasida almashtiramiz.

FreeMode () rejimida diodlarning yorqinligi joystikni turli yo'nalishlarga burish orqali boshqariladi: eksa bo'ylab egilish qanchalik kuchli bo'lsa, mos rang porlaydi. Bundan tashqari, qiymatlarni o'zgartirishni xarita funktsiyasi qabul qiladi (value, fromLower, fromUpper, toLower, toUpper). Map () funktsiyasi o'lchangan qiymatlarni (pastdan balandgacha) joystick o'qlari bo'ylab kerakli nashrida diapazoniga (pastgacha, balandgacha) o'tkazadi. Siz oddiy arifmetik amallar bilan ham shunday qilishingiz mumkin, ammo bu yozuv ancha qisqaroq.

DiscoMode () rejimida uchta rang navbatma-navbat yorqinlikka erishadi va o'chadi. Tugma bosilganda tsikldan chiqish uchun tugmani bosilganligini tekshirish uchun har bir iteratsiyani tekshiramiz.

Analog joystik yordamida LED yorug'ligini boshqarish uchun eskiz
Analog joystik yordamida LED yorug'ligini boshqarish uchun eskiz

7-qadam

Natijada uch rangli RGB LEDdan tayyorlangan chiroq, uning har bir rangining yorqinligi joystik yordamida o'rnatiladi. Va tugmani bosganingizda, "rangli musiqa" rejimi faollashadi. Garchi men uni, aksincha, tungi chiroq sifatida ishlatsam ham.

Shunday qilib, biz Arduino-ga analog ikki o'qli joystikni tugma bilan qanday ulashni va undan o'qishni o'qishni o'rgandik. Joystikdan bizning misolimizdan ko'ra qiziqroq foydalanish haqida o'ylashingiz va amalga oshirishingiz mumkin.

Tavsiya: