Arduino'ya Bir Joystick Nasıl Bağlanır

İçindekiler:

Arduino'ya Bir Joystick Nasıl Bağlanır
Arduino'ya Bir Joystick Nasıl Bağlanır

Video: Arduino'ya Bir Joystick Nasıl Bağlanır

Video: Arduino'ya Bir Joystick Nasıl Bağlanır
Video: Joystick Modülü Arduino İle Nasıl Kullanılır ? 2024, Nisan
Anonim

Bir kişiden mikrodenetleyiciye veya bilgisayara bilgi aktarmanın çok çeşitli yolları vardır ve bunlardan biri joystick kullanmaktır. Arduino'ya iki eksenli ve bir düğmeli bir analog joystick'in nasıl bağlanacağını görelim.

İki eksenli ve bir düğmeli joystick
İki eksenli ve bir düğmeli joystick

Bu gerekli

  • -Arduino;
  • - iki eksenli joystick;
  • - 220 Ohm nominal değere sahip 3 direnç;
  • - 1 RGB veya 3 geleneksel LED.

Talimatlar

Aşama 1

Joystick, bilgi iletmek için kullanışlı ve kullanımı kolay bir cihazdır. Serbestlik derecesi sayısı, göstergeleri okuma prensibi ve kullanılan teknolojiler açısından çok sayıda joystick türü vardır. Joystickler en çok herhangi bir mekanizmanın, kontrollü modellerin, robotların hareketini kontrol etmek için kullanılır. Bugün inceleyeceğimiz analog joystick, birbirine dik iki eksene sahip bir mafsala bağlı bir koldur. Düğme eğildiğinde, eksen, çıkışındaki voltajın değişmesi nedeniyle potansiyometrenin hareketli temasını döndürür. Ayrıca analog joystick, tutamağa dikey olarak bastığınızda tetiklenen bir dokunma düğmesine sahiptir.

Joystick şematik diyagramı
Joystick şematik diyagramı

Adım 2

Joystick'i aşağıdaki şemaya göre bağlayın. Joystick'in X ve Y analog çıkışlarını Arduino'nun A1 ve A2 analog girişlerine, SW butonunun çıkışını dijital giriş 8'e bağlayın. Joystick +5 V'luk bir voltajla beslenir.

Arduino için joystick bağlantı şeması
Arduino için joystick bağlantı şeması

Aşama 3

Joystick'in nasıl çalıştığını net bir şekilde görebilmek için şöyle bir kroki yazalım. Pinleri tanımlayalım, onlar için çalışma modlarını ayarlayalım. Kurulum () prosedüründe, switchPin girişini yüksek bir seviyeye ayarladığımıza dikkat edin. Bu, bu bağlantı noktasında yerleşik çekme direncini etkinleştirir. Açmazsanız joystick butonuna basılmadığında 8. Arduino portu havada asılı kalacak ve manyetikleri yakalayacaktır. Bu istenmeyen, kaotik yanlış pozitiflere yol açacaktır.

Loop() prosedüründe butonun durumunu sürekli olarak yoklayıp 13 nolu çıkıştaki led ile gösteriyoruz. switchPin girişi yukarı çekildiği için led sürekli yanıyor butona basıldığında sönüyor, ve tersi değil.

Ardından, joystick'in iki potansiyometresinin okumalarını okuyoruz - X ve Y eksenlerinin çıkışı Arduino'nun 10 bitlik bir ADC'si var, bu nedenle joystick'ten okunan değerler 0 ila 1023 aralığında. Joystick'in orta konumunda, resimde de görebileceğiniz gibi, 500 bölgesindeki değerler aralığın ortası civarındadır.

Joystick'in çalışmasını gösteren bir çizim
Joystick'in çalışmasını gösteren bir çizim

4. Adım

Genellikle elektrik motorlarını kontrol etmek için bir joystick kullanılır. Ama neden örneğin bir LED'in parlaklığını kontrol etmek için kullanmıyorsunuz? Bir RGB LED'i (veya üç sıradan LED'i) Arduino'nun 9, 10 ve 11 numaralı dijital bağlantı noktalarına yukarıdaki şemaya göre, elbette dirençleri unutmadan bağlayalım.

Arduino'ya Joystick ve RGB LED bağlantı şeması
Arduino'ya Joystick ve RGB LED bağlantı şeması

Adım 5

Şekilde gösterildiği gibi, joystick'in eksenler boyunca konumunu değiştirirken karşılık gelen renklerin parlaklığını değiştireceğiz. Joystick'in üretici tarafından doğru şekilde ortalanmaması ve ölçeğin ortasının 512 civarında değil de 490 ila 525 arasında olması nedeniyle, joystick nötr konumda olsa bile LED hafifçe yanabilir. Tamamen kapatılmasını istiyorsanız, programda uygun değişiklikleri yapın.

X ve Y eksenleri boyunca R, G, B kanallarının parlaklık dağılımının şeması
X ve Y eksenleri boyunca R, G, B kanallarının parlaklık dağılımının şeması

6. Adım

Yukarıdaki şemaya dayanarak, bir joystick kullanarak RGB LED'in parlaklığını kontrol eden Arduino'nun bir taslağını yazacağız.

İlk olarak, düğme ile çalışmak için pinlerin ve iki değişkenin - ledOn ve prevSw - yazışmalarını bildireceğiz. Setup() işleminde pinlere fonksiyonları atayın ve pull-up direncini buton pinine digitalWrite (swPin, HIGH) komutu ile bağlayın.

Döngüde () joystick düğmesine basılmasını tanımlarız. Düğmeye bastığınızda, çalışma modlarını "el feneri" modu ile "renkli müzik" modu arasında değiştiriyoruz.

FreeMode () modunda, LED'lerin parlaklığı joystick'i farklı yönlerde eğerek kontrol edilir: eksen boyunca eğim ne kadar güçlüyse, karşılık gelen renk o kadar parlak olur. Ayrıca, değerlerin dönüşümü harita işlevi tarafından üstlenilir (değer, fromAlt, fromUpper, toLower, toUpper). Harita () işlevi, joystick eksenleri boyunca ölçülen değerleri (Düşük'ten Yüksek'e) istenen parlaklık aralığına (Düşük, Yüksek'e) aktarır. Aynısını sıradan aritmetik işlemlerle de yapabilirsiniz, ancak bu gösterim çok daha kısadır.

discoMode () modunda, üç renk dönüşümlü olarak parlaklık kazanır ve söner. Düğmeye basıldığında döngüden çıkabilmek için, düğmeye basılıp basılmadığını görmek için her yinelemeyi kontrol ederiz.

Analog joystick kullanarak LED'in parlaklığını kontrol etmek için çizim yapın
Analog joystick kullanarak LED'in parlaklığını kontrol etmek için çizim yapın

7. Adım

Sonuç, her rengin parlaklığı bir joystick kullanılarak ayarlanan üç renkli RGB LED'den yapılmış bir el feneridir. Ve düğmeye bastığınızda, "renkli müzik" modu etkinleştirilir. Her ne kadar tam tersine gece lambası olarak kullansam da.

Böylece, bir düğmeli analog iki eksenli bir joystick'i Arduino'ya nasıl bağlayacağımızı ve ondan okumaları nasıl okuyacağımızı öğrendik. Joystick'in bizim örneğimizden daha ilginç bir kullanımını düşünebilir ve uygulayabilirsiniz.

Önerilen: