Joystick modülleri, elektronik projelerde yaygın olarak kullanılan ve özellikle kontrol mekanizmalarında tercih edilen modüllerdir. Bu projede, bir joystick modülü kullanarak LED’lerin eksen hareketine göre yanmasını sağlayacağız. Joystick modülü, X ve Y eksenlerindeki hareketleri algılayarak Arduino’ya değişen analog değerler gönderir. Bu değerleri işleyerek LED’lerin hangi eksene göre yanacağını belirleyebiliriz.
Joystick modülü, bir eksen üzerinde hareket ettirildiğinde iki potansiyometreyi değiştirerek farklı voltaj değerleri üretir. Bu özellik, joystick modüllerini oyun kontrol cihazlarından robotik uygulamalara kadar geniş bir kullanım alanına taşır. Ayrıca, başlangıç pozisyonu sabit bir merkezi değere (örneğin X=511, Y=511) sahip olması, uygulamalarda kolaylık sağlar.
İçindekiler
Joystick modülü
Joystick, biri dikey hareket (Y ekseni) ve diğeri yatay hareket (X ekseni) için olmak üzere birbirine bağlı iki potansiyometreye benzer.
Potansiyometreler değişken dirençlerdir ve bir bakıma dönüşlerine bağlı olarak değişken voltaj değeri döndüren sensörler gibi davranırlar.
Çeşitli oyun projelerinde, kontrolcülerde kullanılabilir. Örneğin yılan oyunu, pac-man oyunu gibi projeler joystick modülü ile yapılmaktadır.
Modülü incelediğimiz zaman, 2 farklı eksen potansiyometesi bulunmaktadır. (X-Y). Bu potansiyomtereler hareket ettikçe modül değeri değişerek Arduino’ya değişen değer aktarılarak istenilen sonuç elde ettirilir. Çubuğun başlangıç konumu ( x,y:511.511) konumundadır . Çubuk X ekseni üzerinde bir uçtan diğer uca hareket ettirilirse, X değerleri 0’dan 1023’e değişecektir ve Y ekseni boyunca hareket ettirildiğinde benzer olay yaşanacaktır.
Proje İçin Gerekli Malzemeler:
- Arduino
- Breadboard
- Joystick modülü
- 4 Adet LED
- 4 Adet 220ohm direnç
- Jumper kablolar
Bağlantı Şeması:
- Joystick Modülü:
- VRX (X ekseni çıkışı): Arduino A1
- VRY (Y ekseni çıkışı): Arduino A2
- GND: Arduino GND
- VCC: Arduino 5V
- LED’ler:
- Her bir LED’in bir ucu bir 220 Ohm direnç ile Arduino dijital pinlerine bağlanır:
- Mavi LED: Pin 2
- Yeşil LED: Pin 3
- Kırmızı LED: Pin 4
- Sarı LED: Pin 5
- LED’lerin diğer uçları breadboard üzerindeki GND hattına bağlanır.
- Her bir LED’in bir ucu bir 220 Ohm direnç ile Arduino dijital pinlerine bağlanır:
Kod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | //-----------------------------------------// //----------------KODKAMPUSU---------------// //---Arduino | Joystick ile LED Kontrolü---// //-----------------------------------------// // Joystick pin tanımlamaları int VRX = A1; // Joystick X ekseni int VRY = A2; // Joystick Y ekseni // Joystick eksen hareketleri için değişkenler int xeksen; int yeksen; void setup() { // LED pin tanımlamaları pinMode(2, OUTPUT); // Mavi LED pinMode(3, OUTPUT); // Yeşil LED pinMode(4, OUTPUT); // Kırmızı LED pinMode(5, OUTPUT); // Sarı LED } void loop() { // Joystick hareketlerini analog pinlerden okuyarak değişkenlere atıyoruz xeksen = analogRead(VRX); yeksen = analogRead(VRY); // Joystick yukarı hareket ederse mavi LED yanar if (xeksen < 10) digitalWrite(2, HIGH); else digitalWrite(2, LOW); // Joystick aşağı hareket ederse kırmızı LED yanar if (xeksen > 1000) digitalWrite(4, HIGH); else digitalWrite(4, LOW); // Joystick sağa hareket ederse yeşil LED yanar if (yeksen < 10) digitalWrite(3, HIGH); else digitalWrite(3, LOW); // Joystick sola hareket ederse sarı LED yanar if (yeksen > 1000) digitalWrite(5, HIGH); else digitalWrite(5, LOW); // Kısa bir gecikme ekleyerek okuma kararlılığını artırıyoruz delay(50); } |
Açıklamalar ve Dikkat Edilmesi Gereken Noktalar
- Joystick Ortam Değeri:
- Joystick modülünün varsayılan pozisyonunda (çubuk serbest bırakılmış durumdayken) X ve Y değerleri yaklaşık 511 civarında olur. Bu, merkezi pozisyonu temsil eder.
- Hareket Eşikleri:
- Kodda, hareket algılama için X ve Y eksenlerinde 10 ve 1000 gibi sınır değerler kullanılmıştır. Bu değerler joystickin uç noktalarını temsil eder ve proje ihtiyaçlarına göre değiştirilebilir.
- LED Testi:
- Her bir LED’in doğru yanıp yanmadığını test etmek için joystick hareketlerini yavaşça gerçekleştirin. Yanlış bağlantılardan kaçınmak için devreyi dikkatlice kontrol edin.
- Joystick Modülü Butonu:
- Projede kullanılmamış olmasına rağmen, joystick modülünün üzerinde bir buton da bulunmaktadır. Bu buton, oyun projelerinde ek kontrol mekanizması olarak kullanılabilir.
Bağlantı ve kodlama sırasında karşılaştığınız hataları; aşağıda ki yorum bölümünden belirtebilirsiniz 🙂