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