Joystick ile Servo Kontrol Etmek – Arduino Dersleri

Bilgiyi yaymak için paylaş!

Joystick ile Servo Kontrol Etmek

Joystickler hayatımızda uzun yıllardan beri bulunmaktalar. Çeşitli oyun konsollarında, hobi araçlarda, iş makinelerinde ve çeşitli alanlarda kullanılmaktadır. Joysticklerin temel amacı; bir elektronik cihazı ya da bir makineyi kontrol etmek için çok çeşitli alanlarda hayatımızda yer almasıdır. Joystickleri Arduino ve diğer elektronik beyinler ile kontrol etmek mümkündür. Piyasada joystick kullanımı üzerine birçok proje bulabilirsiniz. Diğer “kendin yap” projelerine göz atmak için tıklayınız.

Joysticklerin Çalışma Mantığı

joystick-ile-servo-kontrol-etmek

Joysticklerin içerisinde potansiyometre denilen iki adet elektronik parça bulunmaktadır. Potansiyometre fiziksel bir kuvvet uygulayarak elektriğin bir noktadan başka bir noktaya gitmesini zorlaştırır yani bir direnç oluşturur. Joystick’i hareket ettirdikçe farklı direnç değerleri okuruz.

Resimde gördüğünüz tipteki joysticklerde iki tane potansiyometre bulunur. Bunlardan bir tanesi joystick yukarı – aşağı yaptıkça bağlı olan potansiyometre bir değer üretir. Diğeri ise, sağ ve sol yaptıkça bir değer üretir. Bu değerleri programlanabilir bir elektronik beyine bağlarsak bu değerleri okur ve işleyebiliriz.

Joystickler bir çok uygulamada kullanılabilirler. Robot kol, drone, rc araba ve uçak gibi sayısız birçok örneğini çevremizde görmüşüzdür. Bu projede iki adet servoyu bir joystick ile kontrol edeceğiz.

Gerekli malzemeler

  • 1 adet Arduino Uno R3
  • 1 adet Joystick modülü
  • 2 adet Servo motor – sg90 ya da diğer modeller
  • 1 adet Bread Board
  • Yeteri kadar erkek – erkek jumper kablo
  • Arduino USB kablosu

Malzeme Görselleri

joystick-ile-servo-kontrol-etmek
Joyistick Modülü
joystick-ile-servo-kontrol-etmek
Erkek Erkek jumper
joystick-ile-servo-kontrol-etmek
Breadboard
joystick-ile-servo-kontrol-etmek
sg90 servo motor
joystick-ile-servo-kontrol-etmek
Arduino Uno R3
joystick-ile-servo-kontrol-etmek
Arduino Uno Usb Kablo

Devre Şeması

joystick-ile-servo-kontrol-etmek

Arduino Proje Kodu :

#include <Servo.h>  

int ServoYatayPin = 9;   
int ServoDikeyPin = 10;   
int YatayPotPin = A0;  
int DikeyPotPin = A1;  
int ServoY_Min = 0;  
int ServoY_Max = 180; 
int ServoD_Min = 0; 
int ServoD_Max = 180; 

Servo yatayServo;  
Servo dikeyServo;    

int yatayPotValue;         
int yatayServoPosition;    
int dikeyPotValue;         
int dikeyServoPosition;    

void setup()   
{
  yatayServo.attach(ServoYatayPin);   
  dikeyServo.attach(ServoDikeyPin);         
}

void loop()  
{
  yatayPotValue  = analogRead(YatayPotPin); 
  dikeyPotValue  = analogRead(DikeyPotPin);  
  yatayServoPosition  = map(yatayPotValue, 0, 1023, ServoY_Min , ServoY_Max); 
  dikeyServoPosition  = map(dikeyPotValue, 1023, 0, ServoD_Max , ServoD_Min);   
  yatayServo.write(yatayServoPosition);       
  dikeyServo.write(180-dikeyServoPosition);       
  delay(24);    
}

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir