Joystick ler aslında basit olarak iki adet potansiyometreden meydana gelmektedir. Joystick modülleri arduino ile beraber kolayca kullanılabilir ve çeşitli projeler geliştirilebilir. Joystick modülü ile robot kollar, kumandalı araçlar v.b. kontrol edilebilir. Bu projede joystick modülünü kullanarak servo motor kontrolü yapacağız. Bu proje aslında robot kol kontrolünün de temelini oluşturmaktadır.

Kullanılacak Malzemeler:

Arduino

2 eksenli XY joystick modülü

Servo motor

Joystick modülü pin yapısı
Joystick modülü pin yapısı
Joystick modülü
Joystick modülü

 

 

 

 

 

 

 

 

 

     Joystick modülünü arduinoya ya kolayca bağlayabiliriz. Joystick deki +5V ve GND arduino da aynı yerlere bağlanmalıdır. VRx ve VRy pinleri X ve Y eksenlerindeki 2 adet potansiyometredir. Potansiyometreler analog giriş olcağı için arduino nun analog input  pinlerine bağlanmalıdır. Joystick deki SW pini ise digital bir pindir ve joystick e basılıp basılmadığı bilgisini saklar. Bu uygulamada bu pini kullanmayacağız.

      Bu uygulamada 2 adet servo motoru kontrol edeceğiz. Servo motorlardan biri joystick in x eksenindeki hareketi ile, diğeri ise y eksenindeki hareketi ile 0-180 derece arası dönecektir.

Aşağıda uygulamamızın devre şeması ve arduino kodları verilmektedir.

joystick modül arduino- jostick-servo

#include <Servo.h>    // Servo kütüphanesi
 
Servo myservo1;       // 2 adet servo motor kullanıldı
Servo myservo2;

int pozisyon_x=0;     // Joystick lerden okunan analog değerler bu değişkenlerde tutulacak
int pozisyon_y=0;
const int x_pin=0;   // Joystick in x ve y eksenleri 0 ve 1. pinlere bağlanacak
const int y_pin=1;


void setup() {
  myservo1.attach(9);   //  Servolar arduinonun 9 ve 10. pinlerine bağlanacak
  myservo2.attach(10);
  Serial.begin(9600);   // Seri haberleşme başladı
}

void loop() {
  pozisyon_x = analogRead(x_pin);    //0. pinden analog veri okundu          
  pozisyon_x = map(pozisyon_x, 0, 1023, 0, 180); //0-1023 değeri 0-180 değerine çekildi
  myservo1.write(pozisyon_x);        // Elde edilen 0-180 arası açı değeri servoya gönderildi           
  delay(15);                       // Servonun uygun konuma gelmesi için kısa bir gecikme
 
  pozisyon_y = analogRead(y_pin);     //1. pinden analog veri okundu         
  pozisyon_y = map(pozisyon_y, 0, 1023, 0, 180);  //0-1023 değeri 0-180 değerine çekildi
  myservo2.write(pozisyon_y);          // Elde edilen 0-180 arası açı değeri servoya gönderildi  
  delay(15);                          // Servonun uygun konuma gelmesi için kısa bir gecikme
   
  Serial.print("Servo 1: "); 
  Serial.print(analogRead(pozisyon_x));  // Servoların kaçar derece döndükleri seri monitörde görüntülenecek
  Serial.print("\n");           // Alt satır
  Serial.print("Servo 2: "); 
  Serial.print(analogRead(pozisyon_x));
  Serial.print("\n");  
  delay(1000);
  
  
}

Kaynak : http://www.instructables.com/id/Arduino-2-Servos-Thumbstick-joystick/

 

1 Yorum

CEVAP VER

Please enter your comment!
Please enter your name here