Arduino ile Joystick (Oyun Kolu) Modülü (XY-Axis) Kullanımı

👤 Yazar: ozcan 📅 Tarih: 19.07.2026 08:13 👁️ Görüntüleme: 7

Arduino ile Joystick Modülü (XY-Axis) Kullanımı

Projelerinize analog motor hız kontrolü, robot kol yönlendirmesi veya menü içi navigasyon özellikleri kazandırmak istediğinizde en kararlı ve sezgisel çözüm joystick modülleridir. Çift eksenli bu modüller, içlerinde yer alan iki adet bağımsız potansiyometre (X ve Y eksenleri için) ve tek bir yaylı buton mekanizması (Z ekseni için) sayesinde tam kontrol sağlar. Robotik projelerden oyun konsolu arayüzlerine kadar geniş bir yelpazede analog yön tayini yapmanıza olanak tanır.

Arduino joyistik modülü

Analog Haritalama ve Merkez Sırrı: Joystick modülü, Arduino'nun dahili 10-bit analog-dijital dönüştürücüsünü (ADC) kullanır. Bu da eksenlerin 0 ile 1023 arasında değer ürettiği anlamına gelir. Joystick tam merkezde dururken (hiç dokunulmadığında), teorik olarak her iki eksenden de tam orta değer olan 512 okunmalıdır. Ancak mekanik üretim toleransları nedeniyle bu değer genellikle 490-530 arasında salınım gösterir; kod yazarken bu küçük kayma payını (deadzone / ölü bölge) hesaba katmak kararlı çalışma için şarttır.
Arduino ile Joystick Modülü (XY-Axis) bağlantı şeması


Çift Eksen ve Buton Kontrollü Tam Kaynak Kod Bloğu

Aşağıdaki kod kurgusu, X ve Y eksenlerindeki analog hareketleri okur ve buton (Z ekseni) tıklamasını donanımsal dahili direnç (pull-up) mantığıyla yakalayarak seri port ekranına canlı olarak yazdırır:

// Joystick Pin Tanımlamaları
const int pin_X = A0;  // X ekseni analog okuma bacağı
const int pin_Y = A1;  // Y ekseni analog okuma bacağı
const int pin_SW = 2;  // Buton (Switch) dijital okuma bacağı

void setup() {
  Serial.begin(9600);
  
  // Eksen pinleri analog giriş olduğu için otomatik konfigüre edilir,
  // ancak buton pinini dahili Pull-Up direnci aktif ederek giriş tanımlıyoruz.
  // Bu sayede butona basılmadığında lojik HIGH, basıldığında LOW okuyacağız.
  pinMode(pin_SW, INPUT_PULLUP);
  
  Serial.println("Joystick Kontrol Sistemi Baslatildi.");
}

void loop() {
  // Analog eksen değerlerini okuyoruz (0 - 1023 arası)
  int deger_X = analogRead(pin_X);
  int deger_Y = analogRead(pin_Y);
  
  // Dijital buton durumunu okuyoruz (0 veya 1)
  int buton_durum = digitalRead(pin_SW);
  
  // Okunan ham verileri ekrana formatlı şekilde yazdırıyoruz
  Serial.print("X Ekseni: ");
  Serial.print(deger_X);
  Serial.print(" | Y Ekseni: ");
  Serial.print(deger_Y);
  Serial.print(" | ");
  
  // Buton basılma durumunu kontrol ediyoruz (INPUT_PULLUP mantığından dolayı basıldığında LOW olur)
  if (buton_durum == LOW) {
    Serial.println("BUTONA BASILDI!");
  } else {
    Serial.println("Buton: Serbest");
  }
  
  // Seri port ekranının akıcı ve okunabilir kalması için kısa bir gecikme
  delay(150); 
}

Joystick Pin Tanımları ve Bağlantı Yapısı

Modül üzerinde yer alan 5 adet pinin standart bağlantı mimarisi şu şekildedir:

GND: Toprak hattıdır, doğrudan Arduino üzerindeki GND pinine bağlanır.

+5V (veya VCC): Güç hattıdır, Arduino üzerindeki 5V pinine bağlanır.

VRx: X ekseninin analog çıkışıdır. Sağa ve sola yapılan hareketleri iletir. Arduino'nun A0 analog pinine bağlanır.

VRy: Y ekseninin analog çıkışıdır. Yukarı ve aşağı yapılan hareketleri iletir. Arduino'nun A1 analog pinine bağlanır.

SW (Switch): Dahili butonun dijital çıkışıdır. Üstten joystick kafasına dik olarak basıldığında tetiklenir. Yukarıdaki kod kurgusuna göre Arduino'nun dijital D7 pinine bağlanmalıdır.

💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
↑ Sayfa Başı
📞 İletişim ✉ E-Posta Gönder 🟥 YouTube
© 2026 Yenidir.com
Yenidir CMS V0.1