Robot kollar nasıl bu kadar hassas hareket ediyor? Veya oyuncak arabanızın tekerleği nasıl tam istediğiniz açıda dönüyor? Cevap: Servo Motor. Bu motorlar, verdiğiniz komuta göre 0 ile 180 derece arasında hassas pozisyon alabilen akıllı aktüatörlerdir.

1. İçinde Ne Var? (Sadece Bir Motor Değil)

Servo motorun kutusunu açsanız şaşırırsınız. İçinde sadece bir DC motor yoktur; bir dişli kutusu, bir potansiyometre ve bir mini kontrol devresi vardır. Tam bir kapalı kutu sistemidir.

Servo Anatomisi
DC Motor Kontrolcü Dişli Kutusu Pot Geri Bildirim
Nasıl Çalışır? Siz "90 dereceye git" dersiniz. Motor döner. İçerideki potansiyometre açıyı ölçer. 90'a gelince kontrolcü motoru durdurur. Buna "Kapalı Döngü Kontrol" (Closed Loop) denir.

2. Kablo Renklerinin Dili

Servo motorlarda evrensel bir renk kodu vardır. Yanlış bağlarsanız motor çalışmaz veya zarar görür.

🟠 Sinyal (Signal)

Renk: Turuncu, Sarı veya Beyaz

Arduino'nun PWM pinlerine (~) bağlanır. Komut buradan gider.

🔴 Güç (VCC)

Renk: Kırmızı

Genellikle 5V'a bağlanır. (Büyük servolar için harici güç gerekir).

⚫ Toprak (GND)

Renk: Kahverengi veya Siyah

Arduino'nun GND pinine bağlanır.

3. Bağlantı Şeması (SG90 Micro Servo)

En popüler model olan mavi renkli SG90 servo motoru Arduino'ya bağlayalım.

ARDUINO UNO 5V GND D9 (~) SG90

4. Yazılım (Silecek Örneği)

Arduino'nun içinde yüklü gelen Servo.h kütüphanesini kullanacağız. Ekstra kurulum yapmanıza gerek yok. Bu kod, motoru 0'dan 180'e, sonra tekrar 0'a götürür (Araba sileceği gibi).

Servo_Sweep.ino C++
#include <Servo.h>

Servo motorum;  // Servo nesnesi oluşturduk

void setup() {
  motorum.attach(9);  // Servonun takılı olduğu pin (D9)
}

void loop() {
  // 0 dereceden 180 dereceye git
  for (int aci = 0; aci <= 180; aci += 1) { 
    motorum.write(aci);              // Motora açıyı gönder
    delay(15);                       // Mekanik hareket için bekle
  }
  
  // 180 dereceden 0 dereceye dön
  for (int aci = 180; aci >= 0; aci -= 1) { 
    motorum.write(aci);              
    delay(15);                       
  }
}
        

5. Motor Titriyor mu? (Jitter Sorunu)

Eğer servo hareket ederken Arduino kapanıp açılıyorsa veya motor titriyorsa, USB portunun gücü yetmiyor demektir. SG90 (Küçük servo) USB ile çalışabilir ama MG995 (Büyük metal dişli) servolar için harici pil (5V-6V) kullanmalı ve pillerin eksi ucunu Arduino GND ile birleştirmelisiniz.

Bazı ucuz servolar mekanik olarak tam 0 veya tam 180 dereceye gidemez. Zorlarsanız "zırıldama" sesi gelir ve ısınır. Kodu 10 ile 170 derece arasında tutmak daha sağlıklıdır.