Servo motorlar, belirli açılar arasında hassas hareket gerektiren projelerde oldukça yaygın olarak kullanılır. Arduino ile servo motor kontrolü hem basit hem de etkili bir yöntem sunar. Robotik sistemlerden otomatik kapı mekanizmalarına kadar birçok alanda tercih edilir.
Bu rehberde Arduino ile SG90 servo motor nasıl bağlanır, nasıl programlanır ve örnek uygulamalarla nasıl çalıştırılır adım adım anlatılmıştır.
Gerekli Malzemeler
- Arduino Uno (veya uyumlu bir kart)
- SG90 veya MG90S mini servo motor
- Breadboard
- Jumper kablolar
- 5V harici güç kaynağı (birden fazla motor için önerilir)
Servo Motor Nedir?
Servo motorlar, içinde bir dişli kutusu ve pozisyon kontrol devresi barındıran motorlardır. Genellikle 0° ile 180° arasında dönebilirler ve 3 bağlantı kablosuna sahiptir:
- Kahverengi/Siyah: GND (Toprak)
- Kırmızı: 5V (Güç beslemesi)
- Turuncu/Sarı: Sinyal (Kontrol sinyali)
Bağlantı Şeması
Servo motorun Arduino’ya bağlantısı şu şekilde yapılır:
- Sinyal (Turuncu/Sarı) → Arduino Dijital Pin 9
- 5V (Kırmızı) → Arduino 5V pini
- GND (Kahverengi/Siyah) → Arduino GND pini
Not: Birden fazla servo motor kullanacaksanız, Arduino'nun 5V çıkışı yetersiz kalabilir. Bu durumda harici bir 5V güç kaynağı kullanmanız tavsiye edilir.
Arduino Servo Motor Kod Örneği
Arduino IDE içinde bulunan Servo.h kütüphanesi ile servo motorları kolayca kontrol edebilirsiniz.
#include <Servo.h>
Servo myServo; // Servo nesnesi tanımlanıyor
void setup() {
myServo.attach(9); // Servo 9 numaralı pine bağlanıyor
}
void loop() {
myServo.write(0); // 0 derece konumu
delay(1000); // 1 saniye bekleme
myServo.write(90); // 90 derece konumu
delay(1000);
myServo.write(180); // 180 derece konumu
delay(1000);
}
⚙️ myServo.write(açı) komutu, servo motoru belirttiğiniz dereceye döndürür.
⏱️ delay() fonksiyonu ise hareketten sonra bekleme süresini ayarlar.
Faydalı Uygulama Fikirleri
- Butonla kontrol edilen kapı veya kol mekanizması
- Potansiyometre ile açı ayarı
- Ultrasonik sensör ile mesafeye göre yön değiştirme
- Basit robot kol yapımı
Bonus: Potansiyometre ile Servo Kontrolü
Aşağıdaki örnek, potansiyometreyi çevirerek servo motorun açısını ayarlamanıza olanak tanır:
#include <Servo.h>
Servo myServo;
int potPin = A0; // Potansiyometre A0 pinine bağlı
void setup() {
myServo.attach(9);
}
void loop() {
int potValue = analogRead(potPin); // 0 - 1023 arası değer
int angle = map(potValue, 0, 1023, 0, 180); // Değeri 0-180 dereceye ölçekle
myServo.write(angle);
delay(15);
}
Bu yöntemle fiziksel olarak servo açısını elle ayarlayabilir, mekanik sistemlerde hassas kontrol sağlayabilirsiniz.
Sonuç
Servo motorlar, Arduino projelerinde hem basit hem de etkili bir çözüm sunar. Servo.h kütüphanesi sayesinde birkaç satır kodla motorun istenilen açılarda hareket etmesini sağlamak mümkündür. İster basit bir aç/kapa mekanizması, ister robot kol gibi karmaşık projeler olsun, servo motor kontrolü projelerinize değer katacaktır.