Joystik, kullanıcı olarak input gönderebildiğimiz component'lerden birisidir. Joystick kullanımı potansiyometre kullanımından oldukça farklıdır çünkü potansiyometreden 0 ile 1023 değerleri arasında tek bir parametre input alabilmek mümkün iken Joystick component'inde 3 adet farklı input bulunmaktadır:
- X ekseni
- Y ekseni
- Basmalı buton (kola üstten basma eylemi)
Toprak hattı, 5V girişi ve üstteki 3 input ile birlikte joystick component'inin 5 adet pini bulunmaktadır. Sadece x ekseni, y ekseni ya da buton kullanılacaksa diğer input pinleri boş bırakılabilir.

Joystick pinleri aşağıdaki görselden daha iyi görülebilir.

Arduino'da joystick pinleri için aşağıdaki bağlantı şemasını kullanabilirsiniz:

Şimdi Joystick ile alabildiğimiz 3 input değerini serial monitör üzerinde yazdıran basit bir uygulama kodlayalım.
Proje Kodları:
int PinVRx = A0;
int PinVRy = A1;
int PinSW = 2;
int xKonum = 0;
int yKonum = 0;
int butonDurum = 0;
void setup() {
Serial.begin(9600);
pinMode(PinVRx, INPUT);
pinMode(PinVRy, INPUT);
pinMode(PinSW, INPUT_PULLUP);
}
void loop() {
xKonum = analogRead(PinVRx);
yKonum = analogRead(PinVRy);
butonDurum = digitalRead(PinSW);
Serial.print("X: ");
Serial.print(xKonum);
Serial.print(" | Y: ");
Serial.print(yKonum);
Serial.print(" | Buton: ");
Serial.println(butonDurum);
delay(100);
}
Aşağıdaki görselden de serial monitöre gelen değerler görülebilir. Joystick'e hiç dokunmadığımızda 0 olması beklene x ve değerlerinde küçük sapmalar (kalibrasyon hataları) olabileceğini de unutmayın.
