Arduino Joystick ile İki Servo Motor Kontrolü

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.

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ı

arduino-ile-servo-motor-kullanimi-link

arduino-ile-servo-motor-kullanimi-link

Ş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

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

 

joystick-ile-iki-servo-motor-kontrol-arduino-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.

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

arduino-programı-kart-ve-port-seçimi

Kodları arduinoya yükleyin.

arduino-kodlarını-arduino-karta-nasıl-yüklenir

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.

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…

www.kodlakafa.com

Bir sonraki dersimizde görüşmek dileğiyle…

Etiketler:

Yorumlar
  1. oguzhan dedi ki:

    abi yaptım çalışmadı

    1. amediaadmin dedi ki:

      Bağlantı pinlerini kontrol edin kodu kopyalayıp tekrar deneyin lütfen.

  2. Tolga demir dedi ki:

    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

    1. amediaadmin dedi ki:

      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.

  3. Hasan Kaya dedi ki:

    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?

    1. amediaadmin dedi ki:

      Tabiki kullanılabilir. Müsait bir zamanda paylaşırım.

  4. Aqa dedi ki:

    Selam.Arduino ile uzakdan frekansla srrvo motor kullanma kodu varmı?☺️