JOYSTICK MODÜLÜ
Joystick modülü X ve Y olmak üzere 2 eksene sahiptir. Ayrıca ortasında da bir adet buton bulunur. Joystick ileri-geri, sağ-sol yönlendirmeleriyle kullanılmaktadır. X ve Y ekseninden okuduğu değerleri analog çıkış olarak verirken, butondan okuduğu değerleri dijital çıkış olarak verir.
Nerede Kullanılır?
Arduino robotik kodlama projelerinde sıkça kullanılmaktadır. Özellikle yaptığınız bir robotu kontrol etmek için, servo veya dc motor kontrollerinde, robot kol uygulamalarında joystick modülünü kullanabilirsiniz.
Çalışma Voltajı | 5V DC |
Data Çıkışı | 2 Analog ( X - Y ) , 1 Dijital (Buton) |
En | 57.73mm |
Boy | 46.73mm |
Vida Delik Çapı | 3.1-2mm |
Bu projede joystick modülünün X, Y değerleri ve buton durumları okunarak seri porta yazdırılacaktır. Projede joystick modülü ile Arduino Uno Breadboard kullanılmıştır.
Joystick Modülü | Arduino Uno Breadboard |
- | GND |
+ | 5V |
SW | D2 |
VRx | A0 |
VRy | A1 |
Örnek Proje Arduino Kodu
/* ALPGEN Robotics */// Joystick Modülü Kullanımı// 14.05.2021 // Soru ve Yardım İçin: proje@alpgenrobotics.com// www.alpgenrobotics.com *//intxPin=A0; // A0-A5 analog pinlerinden herhangi birine bağlanabilir.intyPin=A1; // A0-A5 analog pinlerinden herhangi birine bağlanabilir.intbutonPin=2; // Joystick buton pini arduino bağlantısı (Joystick SW çıkışı)intxPozisyonu=0; // xPozisyonu başlangıç değeri 0 tanımlandıintyPozisyonu=0; // yPozisyonu başlangıç değeri 0 tanımlandıintbutonDurum=0; // butonDurum başlangıç değeri 0 tanımlandıvoidsetup() // Başlangıç Ayarlamaları{
Serial.begin(9600); // Seri haberleşme hızı 9600 baudrate ayarlandı
pinMode(xPin,INPUT); // xPin giriş olarak ayarlandı
pinMode(yPin,INPUT); // yPin giriş olarak ayarlandı
pinMode(butonPin,INPUT); // butonPin giriş olarak ayarlandı}voidloop() // Sürekli Tekrar Edecek Olan Döngü{
xPozisyonu=analogRead(xPin); // Modülün A0'dan alınan değer = xPozisyonu
yPozisyonu=analogRead(yPin); // Modülün A1'dan alınan değer = yPozisyonu
butonDurum=digitalRead(butonPin); // Modülün D2'den alınan değer = butonDurum
Serial.print("X Pozisyonu: "); // Seri monitöre "X Pozisyonu:" yazdırıldı
Serial.print(xPozisyonu); // Seri monitöre joystiğin x değeri yazdırıldı
Serial.print(" | Y Pozisyonu: "); // Seri monitöre " | Y Pozisyonu:" yazdırıldı
Serial.print(yPozisyonu); // Seri monitöre joystiğin y değeri yazdırıldı
Serial.print(" | Buton Durum: "); // Seri monitöre " | Buton Durum:" yazdırıldı
Serial.println(butonDurum); // Seri monitöre joystiğin butonDurum değeri yazdırıldı
delay(100); // 100ms gecikme}