Arduino ve ULN2003A ile 28BYJ-48 Step Motor Kontrolü

👤 Yazar: ozcan 📅 Tarih: 10.07.2026 16:51 👁️ Görüntüleme: 44

Arduino ve ULN2003A ile 28BYJ-48 Step Motor Kontrolü

Projelerimizde standart DC motorları ve servo motorları kontrol etmeyi öğrendik. Sırada, robotik kollar, 3D yazıcılar ve CNC makineleri gibi çok hassas (adım adım) hareket gerektiren projelerin kalbi olan step motorlar var! Bu rehberde, hobiciler arasında en popüler olan 28BYJ-48 step motorunu ve onunla birlikte gelen ULN2003A motor sürücü kartını Arduino ile nasıl kontrol edeceğimizi adım adım inceleyeceğiz.

Gerekli Malzemeler

  • Arduino Uno
  • 28BYJ-48 Step Motor
  • ULN2003A Step Motor Sürücü Kartı
  • 5V DC Harici Güç Kaynağı (Pil adaptörü veya güç modülü)
  • Jumper Kablolar

1. Step Motor ve ULN2003A Bağlantı Şeması

Step motorun kendi soketini doğrudan sürücü kartındaki beyaz yuvaya oturtun. Ardından sürücü kartından Arduino'ya yapılacak bağlantıları şemadaki gibi sırasıyla gerçekleştirin. Arduino'nun pin dizilimi tam olarak şu şekildedir:

Arduino ULN2003A Step Motor Bağlantı Şeması

ULN2003A Sürücü Pini Arduino UNO Pini
IN1 Pin 8
IN2 Pin 9
IN3 Pin 10
IN4 Pin 11
Sürücü Güç Girişi (+) Harici 5V Güç Kaynağının Artı (+) Kutbu
Sürücü Güç Girişi (-) Harici 5V Güç Kaynağının Eksi (-) Kutbu VE Arduino GND Pini (Ortak Şase)

Önemli Güç Notu: Step motorlar Arduino üzerinden beslendiğinde anlık yüksek akım çekerek Arduino'nun reset atmasına veya ısınmasına neden olabilir. Bu yüzden bağlantı şemasındaki gibi motor sürücü kartını harici bir 5V DC kaynakla beslemek ve harici kaynağın eksisini (GND) Arduino GND'si ile birleştirmek en sağlıklı yöntemdir.


2. Arduino Kod Blokları

Bu proje için harici bir kütüphane indirmemize gerek yoktur, Arduino'nun içerisinde gömülü olarak gelen resmi Stepper.h kütüphanesini kullanacağız. Aşağıdaki kodu doğrudan kopyalayıp kartınıza yükleyebilirsiniz:

#include <Stepper.h>

// 28BYJ-48 step motorunun tam bir tur (360 derece) dönmesi için gereken adım sayısı
const int adimSayisi = 2048;  

// Kütüphane pin sıralamasını (IN1, IN3, IN2, IN4) şeklinde ister.
// Bağlantıya göre: IN1=8, IN2=9, IN3=10, IN4=11 pinleridir.
Stepper stepMotoru(adimSayisi, 8, 10, 9, 11);

void setup() {
  // Motorun dönüş hızını dakikada 10 devir (RPM) olarak ayarlıyoruz
  // (28BYJ-48 için ideal hız aralığı 10-15 RPM arasıdır)
  stepMotoru.setSpeed(10);
}

void loop() {
  // ---- 1. ADIM: Saat Yönünde 1 Tam Tur Dönme ----
  stepMotoru.step(adimSayisi); 
  delay(1000); // 1 saniye bekle
  
  // ---- 2. ADIM: Saat Yönünün Tersine Yarım Tur Dönme ----
  // Eksi (-) değer vermek motorun ters yönde dönmesini sağlar
  stepMotoru.step(-adimSayisi / 2); 
  delay(1000); // 1 saniye bekle
}

Kritik Bilgi: Neden Kodda Pin Sıralaması Farklı?

Kodu incelerken Stepper stepMotoru(adimSayisi, 8, 10, 9, 11); satırında pinlerin 8, 9, 10, 11 şeklinde sıralı yazılmadığını fark etmişsinizdir. Arduino'nun standart Stepper kütüphanesi, motor bobinlerini doğru faz sırasıyla tetiklemek için bağlantıyı **IN1, IN3, IN2, IN4** düzeninde eşleştirmenizi bekler. Eğer burayı 8, 9, 10, 11 şeklinde düz yazarsanız motorunuz dönmek yerine olduğu yerde titrer.


Sık Karşılaşılan Sorunlar ve Çözümleri

1. Motor Dönmüyor, Sadece Titriyor Veya Sürücüdeki Işıklar Karışık Yanıyor

Çözüm: Yukarıdaki "Kritik Bilgi" bölümünde bahsettiğimiz pin sırasını kontrol edin. Kod satırında sırasıyla 8, 10, 9, 11 yazılı olduğundan emin olun. Hala dönmüyorsa kabloların tam oturup oturmadığını ve ULN2003A üzerindeki kırmızı LED'lerin sırayla göz kırpıp kırpmadığını kontrol edin.

2. Motor Çok Yavaş Dönüyor, Hızlandırmak İsterken Tamamen Duruyor

Çözüm: 28BYJ-48 motoru içerisinde yüksek oranda dişli barındıran (Redüktörlü) bir motordur. Bu yüzden torku yüksek ancak maksimum hızı düşüktür. setSpeed() değerini 20 veya 30 gibi çok yüksek değerler yaparsanız motor bu hıza yetişemez ve kilitlenir. Bu motor için en stabil hız değeri 10 ila 14 arasıdır.

💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
↑ Sayfa Başı
📞 İletişim ✉ E-Posta Gönder 🟥 YouTube
© 2026 Yenidir.com
Yenidir CMS V0.1