Joystick Nedir ve Arduino İle Nasıl Kullanılır?

Joystick Nedir?

Joystick, esasen kontrol çubuğu anlamında ,video oyunlarında konrol sistemini oluşturan, oyunu oynatan ve modeline göre giriş, çıkış ve algılama fonksiyonu olan kontrol aracıdır. Joystick denilince bir çok çeşit olduğunu görebilirsiniz.

Joystick Çeşitleri
Joystick Çeşitleri

Aslında bütün kolların kullanımı mantığı basit, sadece tasarım modelleri ve fonksiyonları farklı. Arduino ile kullanacağımız joystick en basit modelidir. Playstation kollarında olan oyun karakterimizi veya arabamızı yönlendiren analog joysticktir. Analog Joystick, biri dikey hareket (Y ekseni) ve diğeri yatay hareket (X ekseni) için olmak üzere birbirine bağlı iki potansiyometreye benzer. Joystick ayrıca bir seçme anahtarı ile birlikte gelir. Retro oyunlar, robot kontrolü veya RC arabalar için çok kullanışlı olabilir.Aşağıda resmi görülmektedir.

Analog Joystick
Analog Joystick

Analog Joystick Özellikleri

  • 5v ile çalışmaktadır.
  • 2 ekseni(x ve y) vardır.
  • 1 adet butonu vardır.
  • Boyutları: 26 x 34 x 32  mm
Joystick Şematiği
Joystick Eksenleri
JoystickArduino
VCC5V
GNDGND
VRxA0
VRyA1
SW2
Arduino İle Joystick Bağlantı Pinleri

Bağlantı pinlerini siz kendinize göre de değiştirebilirsiniz.

Joystick Hareket Temeli

Arduino Uno veya mikrodenetleyici olarak Atmega328 kullanan herhangi bir arduino kartı, 10 bitlik ADC çözünürlüğüne sahiptir. Bu nedenle her analog kanaldaki değerler 0 ile 1023 arasında değişebilir. Şimdi sırasıyla VRx’i A0’a ve VRy’yi A1’e bağlayan analog girişler aşağıdaki resimde gösterildiği gibi değerleri göstermelidir.

Joystick Konumu ve Analog Değerleri

Ç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 aynı şekilde olur.

Arduino İle Joystick Bağlantı Şeması

Joystickimizi kullanmak için aşağıdaki gibi bağlantılarımızı yapalım.

Arduino İle Joystick Bağlantı Şeması
Arduino İle Joystick Bağlantı Şeması

Arduino İle Joystick Kodu

Aşağıda kodumuz açıklamaları ile birlikte verilmiştir.

//x ekseni pini tanımlıyorruz
#define joyX A0

//y eksenini tanımlıyoruz
#define joyY A1

// buton pinimizi tanımlıyoruz.
#define buton 2
 
void setup() {

  //ser haberleşme hızımızı ayarlıyoruz
  Serial.begin(9600);
}
 
void loop() {
  // x ve y ekseninin değerlerini okuyoruz.
int  xValue = analogRead(joyX);
int  yValue = analogRead(joyY);
//buton değerimizi okuyoruz
int but=digitalRead(buton);

 
  //x, y ve butonumuzun değerlerini yazdırıyoruz.
  Serial.print(xValue);
  Serial.print("\t");
  Serial.print(yValue);
  Serial.print("\t");
  Serial.println(but);
}