Arduino Projeleri

Arduino Servo Motor ile Otomatik Kapı Simülasyonu Nasıl Yapılır?

Bu beşinci Arduino projesinde, hassas açı kontrolü sağlayan servo motoru kullanarak açılıp kapanan bir kapı simülasyonu yapıyoruz. Servo.h kütüphanesiyle motor kontrolünün temellerini öğrenin.

1Projenin 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 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ı Pozisyon0 derece
2
Açılma Hareketi0° → 90°
3
Açık Pozisyon90 derece
4
Kapanma Hareketi90° → 0°

2Gerekli 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 UnoMikrodenetleyici — projenin beyni.
SG90 veya MG995 Servo Motor1 adet — hareket aktüatörü.
Jumper KablolarıServo ile Arduino arasında bağlantı için.

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.

Arduino 5V GND D9 (PWM) Servo Motor Kırmızı (Güç) Kahve/Siyah (GND) Turuncu (Sinyal)

Arduino ile servo motor bağlantı şeması — Güç, Toprak ve PWM Sinyal (D9) hatları

Bağlantı Kontrol Listesi

🔴
Güç (Kırmızı Kablo)Arduino 5V Pini (Güç Beslemesi)
⚫
Toprak (Kahve/Siyah Kablo)Arduino GND Pini (Topraklama)
🟠
Sinyal (Turuncu/Sarı Kablo)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.

Robotik dünyasına adım atmak için ilk adımı atın!

Eğitim materyallerimizi ve projelerimizi keşfederek hemen öğrenmeye başlayın. Blok tabanlı kodlamaya başlayın.

Başla

3Kodlama 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.

Arduino Program Kodu

otomatik_kapi_servo.ino
// Otomatik kapı simülasyonu (servo motor ile)

// Servo motor kütüphanesini programa dahil et
#include <Servo.h>

// Servo nesnesi oluştur (koda "myServo" adıyla hitap edeceğiz)
Servo myServo;

// Servo motorun bağlı olduğu sinyal pinini tanımla
const int servoPin = 9;

// Pozisyon değişkenleri (derece)
const int kapaliAci = 0;      // Kapalı pozisyon
const int acikAci = 90;       // Açık pozisyon
const int beklemeSuresi = 3000; // 3 saniye bekleme

void setup() {
  // Servo motoru tanımlanan pine bağla
  myServo.attach(servoPin);

  // Başlangıç pozisyonu: kapalı (0 derece)
  myServo.write(kapaliAci);
  delay(500); // motorun yerine gitmesi için kısa bir bekleme
}

void loop() {
  // Adım 1: Kapıyı aç (0'dan 90'a hareket ettir)
  myServo.write(acikAci);

  // Adım 2: Kapı açık kalsın
  delay(beklemeSuresi); // 3 saniye açık bekle

  // Adım 3: Kapıyı kapat (90'dan 0'a hareket ettir)
  myServo.write(kapaliAci);

  // Adım 4: Kapı kapalı kalsın
  delay(beklemeSuresi); // 3 saniye kapalı bekle

  // loop() döngüsü otomatik olarak tekrar başlar (kapı tekrar açılır)
}

4Detaylı 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.

Bu proje ile servo motorların temel çalışma mantığını öğrenmiş oldunuz. Açı değerlerini ve bekleme sürelerini değiştirerek farklı kapı hızları deneyebilir, hatta bir buton veya mesafe sensörü ekleyerek kapıyı komutla açılan gerçek bir otomasyon sistemine dönüştürebilirsiniz.

?Sıkça Sorulan Sorular

Servo motor kaç dereceye kadar dönebilir?

Standart hobi servo motorları (SG90, MG995 gibi) genellikle 0 ile 180 derece arasında hareket edebilir. Bu projede kapı simülasyonu için 0 ve 90 derece kullanılmıştır.

Servo motor için neden ayrı bir güç kaynağı gerekebilir?

Arduino'nun 5V pini sınırlı akım sağlar. Tek bir küçük servo (SG90) genelde sorun çıkarmaz, ancak birden fazla servo veya daha güçlü modeller (MG995 gibi) kullanıldığında akım yetersiz kalabileceğinden ortak GND'li harici bir güç kaynağı önerilir.

Servo.h kütüphanesini ayrıca indirmem gerekir mi?

Hayır. Servo.h, Arduino IDE ile birlikte gelen standart kütüphanelerden biridir; ek bir kurulum yapmadan #include <Servo.h> satırıyla doğrudan kullanabilirsiniz.

Robotik dünyasına adım atmak için ilk adımı atın!

Eğitim materyallerimizi ve projelerimizi keşfederek hemen öğrenmeye başlayın. Blok tabanlı kodlamaya başlayın.

Başla