4

Merhabalar, servo motorlar 0 ile 180 derece arasında bir açıda döndürebildiğimiz elektronik bileşenlerdir. İhtiyacımız olan güce göre çeşitli büyüklükte ve plastik ve metal dişlilere sahip modelleri bulunmaktadır. Bu yazıda Servo motorları Arduino ile nasıl bağlantı sağlayacağımızı ve istediğimiz açı değerinde servo motoru nasıl çevireceğimizi göreceğiz.

Arduino servo motor kontrolü için PWM pinlerinden yararlanıyoruz. Bu pinlerin yanında dalga (~) işaret bulunmaktadır. Servo motoru bu pinlerle kullanabilirsiniz. Servo motorun 3 adet bağlantı kablosu bulunmaktadır. Projelerde ve prototiplerde kullanılan hem yaygın hem de ekonomik olan SG-90 servo motorunda renkleri kahverengi, kırmızı ve turuncu olmaktadır. Bu kabloların özellikleri kahverengi (GND), kırmızı (5v), Turuncu (Dijital PWM Pin) sinyal pini olarak belirlenmiştir.

Nasıl Bağlantı Sağlarız?

Genelde kullanılan SG-90 servo motorun kablo renkleriyle devremizdeki servo motor temsili ile karşılaştırdığımızda sarı renkli kablo sg-90 da Turuncu, kırmızı renk yine kırmızı, siyah renk ise kahverengi kablo ile eşlenmiştir. Bağlantımızı yukarıdaki devreye göre sağladıktan sonra kodumuzu yazmadan Servo kütüphanesini Arduino IDE’ye eklememiz gerekiyor.

Arduino IDE’ye Kütüphane Ekleme

Arduino IDE’ye kütüphane ekleme işlemini 3 farklı yöntem ile gerçekleştirebiliriz. bu yöntemler;

  1. Arduino IDE kütüphane yükleme yöneticisi ile eklemek
  2. Arduino IDE içerisinden Zip dosyası olarak eklemek
  3. Doğrudan kütüphane klasörüne ekleme

Biz Arduino IDe kütüphane yükleme yöneticisi üzerinden servo kütüphanesini ekleyeceğiz. Diğer yöntemleri de Arduino ile uğraştıkça farklı sensör ve modüllerle çalışırken ihtiyaç duyduğunuzda deneyimleme şansını bulacaksınız.

Arduino IDE menüsünden TASLAKLAR / Library Ekle / Libraryleri Düzenle seçeneğini seçiyoruz.

Açılan penceyenin arama kısmına Servo yazarak servo kütüphanemizi kurabiliyoruz.

Arduino İle Servo Motor Kontrolü Uygulaması

#include <Servo.h>  // Servo kütüphanesini projemize ekledik.

Servo servoM;  // Servo nesnemizi oluşturduk, ismini servoM yaptık.
int pos = 0;    // pos değişkenini oluşturup 0’a eşitledik.

void setup() {
  servoM.attach(9);  // Servoyu 9nolu pin’e bağladığımızı belirttik.
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // For döngüsü ile 0 ile 180 derece arası gitmesini sağladık.
                                        // her bir adımda 1 derece artacak şekilde ayarladık.
    servoM.write(pos);              // Servo açı değeri olarak belirlediğimiz pos değişkenini servoya yazdırdık.
    delay(15);                       // servonun hedeflenen açıya gidebilmesi için 15 ms bekleme ekledik.
  }
  for (pos = 180; pos >= 0; pos -= 1) { // for döngüsü ile 180 ile 0 derece arası gitmesini sağladık.
    servoM.write(pos);              // Servo açı değeri olan pos değişkenini servo’ya yazdırdık.
    delay(15);                       // Servonun açı değerine gidebilmesi için 15 ms. bekleme ekledik.
  }
}
Ahmet Kemal YILDIZ
Eskişehir Osmangazi Üniversitesi Bilgisayar ve Öğretim Teknolojileri Öğretmenliği mezunu bir Bilişim Teknolojileri ve Yazılım Dersi Öğretmeniyim. Bilişim Teknolojileri ve Yazılım dersi ile ilgili ders etkinlikleri, kaynak materyaller, örnek etkinlikler ve ilgi duyduğum birçok konu hakkında vakit buldukça buradan blogluyorum. :)

    #6 Potansiyometre ile LED Parlaklığını Ayarlamak

    önceki yazı

    #8 Potansiyometre İle Servo Motor Kontrolü

    Sonraki Yazı

    Bu Yazılar da İlgini Çekebilir!

    4 Yorumlar

    1. Hocam iyi günler. Bu devreyi ve kodları dört servo motora nasıl eşitleyebiliriz ? Teşekkürler.

      1. Her eklediğiniz servo motor için yeni bir servo tanımlamanız gerekiyor. https://www.ahmetkemalyildiz.com.tr/8-potansiyometre-ile-servo-motor-kontrolu/ bu yazıda 2 servo motor için bir örneği yorumda belirtmiştim, dilerseniz inceleyebilirsiniz.

        1. Hocam power HD r30 yüksek voltaj 333hz 3adet servo ile mh90s 50hz servoyu potansiyometre ile kontrol etmek istiyorum servolari frekansları farklı olmasındandır bilmiyorum ama karasizliklar ve titreşimler alıyorum bu sorun için bir çözüm yolu varmidir

    2. iyi günler
      servo motorlari karşılıklı bir mile bağlayıp ortak güç oluşturmam gerekiyor yanı servo motorlar bir mil ile bir birine bağlı olacak ve dolayısı ile bir tanesi her zaman diğerine göre ters çalışacak. ne yaptıysam başta ters dönüp sonrasında düzelme olayını çözemedim yardımcı olursanız sevinirim

    Yorum yap

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

    Daha Arduino