Site icon Mobilhanem

Arduino Servo Motor Kullanımı ve Servo Kütüphanesi

Temel Arduino Eğitimleri

Merhaba arkadaşlar,
Mobilhanem.com için hazırladığımız Arduino derslerine Servo Motor Kullanımı ile devam ediyoruz. Bu dersimizde Servo Motorları ve Arduino ile Servo Motorları kontrol edebileceğimiz Servo kütüphanesini inceleyeceğiz.

Arduino ile Servo Motor Kullanımı

Arduino ile Servo Motor kullanımı için Arduino’nun Servo.h kütüphanesini yararlanılabilmektedir. Servo kütüphanesini kullanmak bizler için kolaylıklar sağlamaktadır ancak bu bir gereklilik değildir. Servo Motorların kontrolü için ihtiyaç duyulan sinyali Arduino üzerinden bulunan PWM destekli pinler kullanılarakta üretebilir ve Servo Motor kontrolünü sağlayabilir. Biz bu dersimizde Servo kütüphanesini kullanarak nasıl Servo motorlarımızı kontrol edebileceğimizi inceleyeceğiz.

Servo Kütüphanesini kullanırken dikkat etmemiz gereken bazı durumlar vardır. Bu durumlardan ilki Arduino 0016 ve daha eski sürümlerde, Servo kütüphanesi sadece 9 ve 10 numaralı pinleri desteklemektedir. Eğer Arduino 0016 veya daha eski bir sürüm kullanmıyorsak Servo motorumuzu her hangi bir PWM pimine bağlayarak kullanabiliriz. Dikkat etmemiz gereken ikinci durum ise Servo kütüphanesini kullanırken 9 ve 10 numaralı PWM pinlerin analogWrite özelliğinin bir Servo bağlı olsun yada olmasın devre dışı kalmasıdır. Bu nedenle Servo kütüphanesi ile çalışırken bu durumu dikkate alarak mümkünse 9 ve 10 numaralı pinlere öncelik vermemizde fayda vardır.

Arduino Servo Motor Bağlantıları

Servo motorların güç, toprak ve kontrol sinyali için üç bağlantı noktası bulunmaktadır. Bu bağlantılar için kullanılan kabloların renkleri çeşitlilik gösterebililmektedir. Topraklama kablosu siyah veya kahverengi, güç kablosu kırmızı, kontrol sinyali için kullanılan kablo ise sarı, turuncu veya beyaz olabilmektedir.

Kullandığınız Servo’nun güç ihtiyacına göre Arduino kartınıza veya harici bir besleme kaynağına bağlayabilirsiniz. Biz bu dersimizde 5V gerilim ile çalışabilen bir Servo ile örneklerimizi gerçekleştireceğimiz için güç kaynağı olarak Arduino kartımızı kullanacağız.

Arduino Servo Kütüphanesi ve Fonksiyonları

Bu kütüphane Arduino kartları ile Servo motorların kontrolünün kolaylıkla sağlanabilmesi için geliştirilmiştir.

Arduino IDE’de bu kütüphanenin kullanımını gösteren iki örnek bulunmaktadır. Bu örneklere Arduino IDE’nizi kullanarak

Dosya -> Örnekler -> Servo

yolunu takip ederek ulaşabilirsiniz.

Dersimizin geri kalan kısmında bu örnekler hazırlanırken kullanılan fonksiyonları ve Servo kütüphanesinin diğer fonksiyonlarını incelemeye çalışacağız.

Servo Kütüphanesi Fonksiyonları

#include <Servo.h> // Servo kütüphanesinin eklenmesi

Servo myservo; // Kütüphane kullanılarak bir nesne oluşturulması.

Servo kütüphanesini kullanabilmemiz için yukarıdaki kod satırında olduğu gibi kütüphaneyi projemize eklememiz ve kontrol için bu kütüphaneden en az bir nesne oluşturmamız gerekmektedir. Bu işlemleri yaptıktan sonra aşağıdaki fonksiyonları kullanabiliriz.

 

 

Örnek

Aşağıdaki örnekte yukarıdaki bahsedilen fonksiyonların kullanımı gösterilmeye çalışılmıştır. Örnek kodlarının altında bulunan simülasyon eklentisinde bulunan Start Simulation butonuna kullanarak örneği çalıştırabilirsiniz.

/*
Bu örnek Servo kütüphanesinin kullanımı göstermek için oluşturulmuştur. 
*/

#include <Servo.h>

Servo servo;

void setup() {
}

void loop() {
  // attach fonksiyonu ile servo nesnemizi 9. pin ile ilişkilendiriyoruz. 
  servo.attach(9);
  /* 
   *  Arduino'nun kendi örneklerinde de olduğu gibi 9 numaralı pine bağlı olan
   *  servo moturumuzu birer write fonksiyonunu kullanarak 0'dan 180 dereceye 
   *  kadar 1'er derece artış ile döndürür. 
  */
  for (int i=0;i<=180;i++){
    servo.write(i);
    delay(20);
  }

  // servo nesnesinin önceden bağlı olduğu pin ile ilişkisini kesme
  servo.detach();


    
  /* 
   *  attach fonksiyonu ile servo nesnemizi bu kez 10. pin ile ilişkilendiriyoruz.
   *  Ayrıca varsayılan değerler olan 544ms ve 2400ms'i belirterek bu işlemi gerçekleştiriyoruz. 
   *  Bu örnek bir simülasyon üzerinde gösterilmek üzere hazırlandığı için varsayılan değerler 
   *  kullanılmıştır. 
   *  Gerçek servolar ile çalışırken servonuzun özellikleri doğrultusunda 
   *  min ve max değerlerin kullanılması gerekmektedir!!
  */   
  servo.attach(10,544,2400);
  /*
   * Bu örnekte 544-2400ms aralığı kullanıldığı için 1 derecelik hareket için yaklaşık olarak 
   * 10ms'lik değişime ihtiyaç duyulmaktadır. Bu nedenlede 0 dereceden 180 dereceye ilerleyiş 
   * write fonksiyonu kullanılırken olduğu gibi birer birer artarak değil onar onar artarak 
   * sağlanmıştır. 
  */
  for(int i=544;i<=2400;i+=10){
    servo.writeMicroseconds(i);
    delay(20);
  }
  servo.detach();
  delay(1000);


    
  servo.attach(9);
  for (int i=180;i>=0;i--){
    servo.write(i);
    delay(20);
  }
  servo.detach();
  
  servo.attach(10,544,2400);
  servo.writeMicroseconds(2400);
  for(int i=2400;i>=544;i-=10){
    servo.writeMicroseconds(i);
    delay(20);
  }
  servo.detach();
  delay(1000);
}

 

Bu dersimizde Arduino Servo kullanımını incelemeye çalıştık. Servo kütüphanesinin nasıl kullanılabileceğini, fonksiyonlarının neler ve hangi işlevlere sahip olduklarını anlatmaya çalıştık. Konuyla ilgili yorumlarınızı konu altından yapabilir, sorularınızı Mobilhanem Soru&Cevap bölümünden sorabilirsiniz. Bir sonraki içeriğimizde Mobilhanem.com‘da görüşmek üzere.

Tüm Arduino Dersleri için tıklayınız..

26
Exit mobile version