📝 Projenin Amacı ve Servo Motor Mantığı
Otomasyon projelerinin vazgeçilmezi olan servo motorlar, LED'ler gibi sadece Açık/Kapalı (HIGH/LOW) sinyali yerine, hassas açı kontrolü sağlayan motorlardır. Bu projede, servo motoru kullanarak bir kapının kapalı (0 derece) ve açık (90 veya 180 derece) pozisyonlarını simüle edeceğiz.
Servo Motor Nedir?
Servo motorlar, bir konumdan diğerine hassas bir şekilde dönebilen motorlardır. Bir DC motorun aksine, onlara belli bir açı değeri (0 ile 180 derece arasında) gönderebilirsiniz ve motor o konuma gider ve orada kalır. Kontrolü için Arduino'nun özel Servo.h kütüphanesini kullanacağız.
Kapı Senaryosu
Kapı başlangıçta kapalıdır. Komut ile açılır, belli bir süre açık kalır ve ardından otomatik olarak kapanır. Bu döngü sürekli tekrar edecektir.
1. Kapalı Pozisyon: 0 derece
2. Açılma Hareketi: 0'dan 90 dereceye hareket
3. Açık Pozisyon: 90 derece
4. Kapanma Hareketi: 90'dan 0 dereceye hareket
I. Gerekli Malzemeler ve Detaylı Devre Kurulumu
Bu projede, LED'lerden farklı olarak hareket kontrolüne geçtiğimiz için bir servo motor kullanacağız.
- Arduino Uno: (Mikrodenetleyici)
- 1 Adet SG90 veya MG995 Servo Motor: (Hareket aktüatörü)
- Jumper Kabloları
Servo Motor Bağlantı Detayları
Servo motorların 3 adet kablosu bulunur: Güç (Kırmızı), Toprak (Kahverengi/Siyah) ve Sinyal (Turuncu/Sarı). Servo motorlar doğru akım beslemesi ve dijital sinyal ile kontrol edilir.
Bağlantı Kontrol Listesi
- Güç (Kırmızı Kablo): $\rightarrow$ Arduino 5V Pini (Güç Beslemesi)
- Toprak (Kahverengi/Siyah Kablo): $\rightarrow$ Arduino GND Pini (Topraklama)
- Sinyal (Turuncu/Sarı Kablo): $\rightarrow$ Arduino Dijital Pin 9 (PWM Sinyal Çıkışı)
Önemli Not: Güç Kaynağı
Birden fazla servo motor veya daha büyük motorlar kullanıyorsanız, Arduino'nun 5V pininin akımı yetersiz kalabilir. Bu durumda harici bir güç kaynağı (ortak GND ile) kullanmanız gerekir.
II. Kodlama ve Servo Kütüphanesi Kullanımı
Servo motor kontrolü, digitalWrite() yerine Servo.h kütüphanesindeki özel komutlarla yapılır. Bu kütüphaneyi programa dahil etmek için ilk satırı kullanmalıyız.
1. Arduino Program Kodu (Küçük Harf ve Sadeleştirilmiş)
2. Detaylı Komut Açıklamaları
- \#include <servo.h>: Bu satır, Arduino'ya motor kontrolü için gerekli olan Servo kütüphanesini kullanacağını bildirir. Bu kütüphane Arduino IDE'de standart olarak bulunur.
- servo myservo;: Bu, Servo motoru kontrol etmek için kod içinde kullanacağımız bir nesne (instance) oluşturur ve ona "myservo" adını verir.
- myservo.attach(servopin);: setup() kısmında bu komut, "myservo" nesnesini fiziksel olarak Arduino'nun 9 numaralı pinine bağlar. Bu, pinMode() komutunun servo motorlar için karşılığıdır.
- myservo.write(aci);: Bu temel komut, servo motorun milini belirtilen açı değerine (0-180 arası) anında hareket ettirir. Bu projenin kalbidir.
- delay(beklemesuresi);: Tıpkı trafik lambası projesinde olduğu gibi, bu komut da kapının açılıp kapandıktan sonra belirli bir süre beklemesini sağlar.