Arduino-ya Joystick Necə Bağlanacaq

Mündəricat:

Arduino-ya Joystick Necə Bağlanacaq
Arduino-ya Joystick Necə Bağlanacaq

Video: Arduino-ya Joystick Necə Bağlanacaq

Video: Arduino-ya Joystick Necə Bağlanacaq
Video: Подключаем к Arduino джойстик. Управление servo сервоприводом 2024, Noyabr
Anonim

Bir insandan bir mikrokontrolora və ya kompüterə məlumat ötürülməsinin müxtəlif üsulları var və bunlardan biri joystikdən istifadə edir. Analog joystickin iki ox və bir düymə ilə Arduinoya necə bağlanacağını görək.

İki oxlu və düyməli Joystick
İki oxlu və düyməli Joystick

Vacibdir

  • - Arduino;
  • - iki oxlu joystick;
  • - nominal dəyəri 220 Ohm olan 3 rezistor;
  • - 1 RGB və ya 3 şərti LED.

Təlimat

Addım 1

Joystick məlumat ötürmək üçün rahat və istifadəsi asan bir cihazdır. Sərbəstlik dərəcələrinin sayı, göstəriciləri oxumaq prinsipi və istifadə olunan texnologiyalar baxımından çox sayda joystik növü mövcuddur. Joysticklər ən çox istənilən mexanizmlərin, idarə olunan modellərin, robotların hərəkətini idarə etmək üçün istifadə olunur. Bu gün baxacağımız analog joystick, iki qarşılıqlı dik ox ilə top oynağına yapışdırılmış bir sapdır. Düymə əyildikdə, ox potensiometrin hərəkətli təmasını döndərir, buna görə çıxışdakı gərginlik dəyişir. Ayrıca, analoq joystickdə sapı şaquli basdığınızda işə salınan bir toxunuş düyməsi var.

Joystick sxematik diaqramı
Joystick sxematik diaqramı

Addım 2

Joystick'i aşağıdakı diaqrama uyğun birləşdirin. Joystickin X və Y analog çıxışlarını Arduinonun A1 və A2 analog girişlərinə, SW düyməsinin çıxışı rəqəmsal girişə 8 bağlayın. Joystik +5 V gərginliklə işləyir.

Arduino üçün Joystick qoşulma diaqramı
Arduino üçün Joystick qoşulma diaqramı

Addım 3

Joystickin necə işlədiyini aydın şəkildə görmək üçün belə bir eskiz yazaq. Sancaqları elan edək, onlar üçün iş rejimlərini təyin edək. Setup () prosedurunda switchPin girişini yüksək səviyyədə qurduğumuza diqqət yetirin. Bu, bu portda quraşdırılmış çəkmə müqavimətini təmin edir. Açmırsınızsa, joystick düyməsinə basılmadığında, 8-ci Arduino limanı havada asılacaq və pikapları tutacaq. Bu, istənməyən, xaotik yalan pozitivlərə səbəb olacaqdır.

Döngə () prosedurunda düymənin vəziyyətini daim soruşuruq və çıxışı 13-də LED istifadə edərək göstəririk. SwitchPin girişinin çəkildiyi üçün LED daim yanır və düyməyə basıldıqda sönür, əksinə deyil.

Ardından, joystickin iki potansiyometrinin - X və Y oxlarının çıxışının oxunuşunu oxuduq. Arduinonun 10 bitlik bir ADC-si var, buna görə joystikdən oxunan dəyərlər 0 ilə 1023 arasındadır. Təsvirdə gördüyünüz kimi joystickin orta mövqeyində 500 bölgəsindəki dəyərlər aralığın ortasındadır.

Joystickin işini göstərmək üçün bir eskiz
Joystickin işini göstərmək üçün bir eskiz

Addım 4

Ümumiyyətlə elektrik mühərriklərini idarə etmək üçün joystick istifadə olunur. Ancaq niyə, məsələn, bir LED-in parlaqlığını idarə etmək üçün istifadə etmirsiniz? Yuxarıda göstərilən sxemə əsasən Arduinonun 9, 10 və 11 rəqəmsal limanlarına bir RGB LED (və ya üç adi LED) bağlayaq, əlbəttə ki, rezistorlar barədə unutmayaq.

Arduinoya Joystick və RGB LED qoşulma diaqramı
Arduinoya Joystick və RGB LED qoşulma diaqramı

Addım 5

Şəkildə göstərildiyi kimi, joystickin oxlar boyunca yerini dəyişdirərkən uyğun rənglərin parlaqlığını dəyişdirəcəyik. Joystick istehsalçı tərəfindən dəqiq bir şəkildə mərkəzləşdirilməməsi və tərəzinin ortasında 512 ətrafında deyil, 490 ilə 525 arasında olması səbəbindən, joystik neytral vəziyyətdə olanda da LED bir qədər yandıra bilər. Tamamilə söndürülməsini istəyirsinizsə, proqrama müvafiq düzəlişlər edin.

R, G, B kanallarının X və Y oxları boyunca parlaqlıq paylanmasının diaqramı
R, G, B kanallarının X və Y oxları boyunca parlaqlıq paylanmasının diaqramı

Addım 6

Yuxarıda göstərilən diaqrama əsasən, bir joystik istifadə edərək Arduino RGB LED-in parlaqlığını idarə edən bir eskiz yazacağıq.

Əvvəlcə düymə ilə işləmək üçün sancaqlar və iki dəyişənin - ledOn və prevSw - yazışmalarını elan edəcəyik. Quraşdırma () prosedurunda funksiyaları sancaqlara təyin edin və çəkmə müqavimətini digitalWrite (swPin, HIGH) əmri ilə düymə sancağına qoşun.

Döngədə () joystick düyməsinin basılmasını təyin edirik. Düyməni basdıqda iş rejimlərini "fənər" rejimi ilə "rəngli musiqi" rejimi arasında dəyişirik.

FreeMode () rejimində LED-lərin parlaqlığı joystickin müxtəlif istiqamətlərə əyilməsi ilə idarə olunur: ox boyunca əyilmə nə qədər güclü olarsa, uyğun rəng daha parlaq olur. Üstəlik, dəyərlərin çevrilməsi xəritə funksiyası tərəfindən qəbul edilir (dəyər, aşağıdan, yuxarıdan, aşağıya, yuxarıya). Map () funksiyası, joystick oxları boyunca ölçülmüş dəyərləri (Aşağıdan Yüksəkə) istədiyiniz parlaqlıq aralığına (Aşağı, Yüksək) ötürür. Adi hesab əməliyyatları ilə eyni şeyi edə bilərsiniz, lakin bu qeyd daha qısadır.

DiscoMode () rejimində üç rəng növbə ilə parlaqlıq qazanır və sönür. Düyməyə basıldıqda döngədən çıxa bilmək üçün düyməni basdığınızı yoxlamaq üçün hər təkrarlanmanı yoxlayırıq.

Analoq joystick istifadə edərək LED parlaqlığını idarə etmək üçün eskiz
Analoq joystick istifadə edərək LED parlaqlığını idarə etmək üçün eskiz

Addım 7

Nəticədə üç rəngli RGB LED-dən hazırlanmış bir fənərdir, hər rənginin parlaqlığı joystikdən istifadə etməklə təyin olunur. Və düyməni basdığınız zaman "rəngli musiqi" rejimi aktivləşdirilir. Əksinə bir gecə işığı kimi istifadə etsəm də.

Beləliklə, bir analoq iki oxlu joystickin düyməsini Arduinoya necə bağlayacağımızı və oxumaları necə oxuduğumuzu öyrəndik. Joystickdən nümunəmizdən daha maraqlı bir istifadə düşünə və tətbiq edə bilərsən.

Tövsiyə: