Arduino Joystick ile İki Servo Motor Kontrolü

Sıfırdan arduino derslerinin bu dersinde arduino ile joystick kullanarak iki servo motor kontrol etmek için gerekli arduino devre şemasını ve joystick iki servo kontrol arduino kodlarını inceleyeceğiz.
Arduino ile Joystick kullanımı yazılarımız 4 bölümden oluşacaktır.
- Arduino ile Joystick Kullanımı
- Arduino Joystick ile Led Kontrolü-Joystick ile 4 Led Yakma
- Arduino Joystick ile İki Servo Motor Kontrolü –> Şu anda bu yazıdasınız…
- Arduino Joystick ile L298N Motor Hız Kontrolü
Bu yazıda joystick iki eksendeki hareketini kullanarak arduinoya bağlı iki servo motoru kontrol edeceğiz. Bu uygulama uzaktan kumandalı araba veya dronlardaki temel motor yönlendirme bilgilerini içerdiğinden ileri düzeyde uzaktan kumandalı araba veya drone yapmak isteyenler için önemli bir konudur.
Daha önceki dersimizde servo motorların özellikleri ve arduino ile servo motor kullanımını detaylı bir biçimde incelemiştik. Bu yazımıza aşağıdaki linkten ulaşabilirsiniz.
Arduino ile Servo Motor Kullanımı
Şimdi arduino devresini inceleyelim.
Joystick ile İki Servo Kontrolü Arduino Devresi
Joystick ile servo motor kontrol uygulaması için malzeme listesi;
1 adet arduino uno, 1 adet joystick modül, 2 adet servo motor, 4 adet dişi-erkek jumper kablo, 8 adet erkek-erkek jumper kablo.
Aşağıdaki devre şemasını inceleyerek joystick servo motor kontrol devrenizi oluşturun.

arduino-joystick-ile-iki-servo-motor-kontrol-devresi

joystick-ile-iki-servo-motor-kontrol-arduino-devresi
Şimdi gerekli arduino kodlarını oluşturalım.
Joystick ile İki Servo Kontrolü Arduino Kodları
Kodlara geçmeden önce bilmemiz gereken püf nokta; joystick modülünden okunan X ve Y değerinin 0 ile 1023 arasında olduğu, fakat servo motorun ise 0 ile 180 derece arasında dönebildiği bilgisidir. Bu nedenle joystick değerlerini servo motor için uygun hale getirmemiz gerekiyor. Bu işlem için map komutunu kullanmalıyız.
Arduino ile Map Komutu Nasıl Kullanılır?
Map komutu birbirine benzemeyen değerleri benzer hale getirmek için kullanılan bir arduino kodudur.
Aşağıdaki kalıpla kullanılır.
YeniDeger=map(EskiDeger, EskiDeger_min,EskiDeger_max,YeniDeger_min,YeniDeger_max);
Bu uygulama için örneğin joystick X ekseninden okunan değeri xPozisyon değişkenine aktardığımızı farzedelim. Bu 0 ile 1023 arasındaki xPozisyon değişken değerini 0 ile 180 derece servo motor aralığına benzetmek için map komutunu aşağıdaki gibi yazmalıyız.
ServoDeger=map(xPozisyon,0,1023,0,180);
Bu hatırlatmadan sonra bir önemli konu ise arduino ile servo motor kullanabilmek için Servo.h kütüphanesini kullanmamız gerekiyor. Bu kütüphane arduino program kurulumunda otomatik olarak kütüphane klasörüne eklenen bir kütüphane dosyasıdır. Servo kütüphanesi ile arduinoya bağladığımız servo motorları tanımlayıp istediğimiz açı değerlerine döndürmek için bazı kodları kullanabiliriz.
Örneğin; Servo motor_ismi; komutu ile motorlarımıza isim verebiliriz. void setup( ) içinde motor_ismi.attach(pin_numarası); komutu ile isim verdiğimiz servo motoru bağladığımız arduino pin numarasını belirtiyoruz. Son olarak motor_ismi.write(açı_değeri); komutu ile motora 0 ile 180 arasında açı değeri göndererek motoru hareket ettirebiliyoruz.
Bu hatırlatmalardan sonra kodları yazmaya geçebiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <Servo.h> int xPin = A0; int yPin = A1; Servo motor1; Servo motor2; int xPozisyon = 0; int yPozisyon = 0; void setup() { pinMode(xPin, INPUT); pinMode(yPin, INPUT); motor1.attach(5); motor2.attach(6); } void loop() { xPozisyon = map(analogRead(xPin),0,1023,0,180); yPozisyon = map(analogRead(yPin),0,1023,0,180); motor1.write(xPozisyon); motor2.write(yPozisyon); } |
Kodları arduino kartına yüklemeden önce kart ve port seçiminin doğru yapıldığından emin olun.

arduino-programı-kart-ve-port-seçimi
Kodları arduinoya yükleyin.

arduino-kodlarını-arduino-karta-nasıl-yüklenir
Kodlar arduinoya yüklendikten sonra joystick topuzunu hareket ettirerek servo motorların hareketini gözlemleyebilirsiniz.
Arduino ile Joystick kullanımı ile ilgili diğer yazılarımız için aşağıdaki linkleri takip edebilirsiniz.
- Arduino ile Joystick Kullanımı
- Arduino Joystick ile Led Kontrolü-Joystick ile 4 Led Yakma
- Arduino Joystick ile L298N Motor Hız Kontrolü
Konu ile ilgili görüş, öneri ve düşüncelerinizi yorumlar bölümünden bize ulaştırabilirsiniz.
Yeni yazılardan anında haberdar olmak için arduinomedia facebook hesabını takip etmeyi unutmayın.
https://www.facebook.com/arduinomedia/
Diğer tüm arduino modül kullanımları ve örnek arduino projeleri için kardeş sitemizi incelemeyi unutmayın…
Bir sonraki dersimizde görüşmek dileğiyle…
abi yaptım çalışmadı
Bağlantı pinlerini kontrol edin kodu kopyalayıp tekrar deneyin lütfen.
1 arduıno UNO ile 3 farklı servo motor kontrol edilebilir mi. Ancak üç motoru farklı anlarda çalıştırmak istiyorum.
Mesela 1. Butona basınca 1. Motor 180 derece gidip geri gelecek.
2. Butona basınca 2. Motor 180 derece gidip gelecek gibi. Kolay gelsin
I2C PWM/Servo Sürücü Shield şeklinde arama yapabilirsiniz. Bu ürünler ile servolari senkronize olarak hareket ettirmek mümkün. Robot örümcek gibi projeleri bunlarla yapıyorlar.
2 joystik kullanılabilir mi? Mesela 1. joystick 1. servoyu, 2. joystick 2. servoyu şeklinde. Kullanılabiliyorsa bununla alakalı bir kod paylaşır mısınız?
Tabiki kullanılabilir. Müsait bir zamanda paylaşırım.
Selam.Arduino ile uzakdan frekansla srrvo motor kullanma kodu varmı?☺️