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.
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.
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.
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.
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.
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.
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.
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.