Arduino İle Step Motor Kullanımı

Devre şeması aşağıdadır.  Motor sürücüdeki 4 adet IN girişini arduinoda 8 9 10 11 pinlerine aşağıdaki görüldüğü gibi bağlıyoruz. Daha sonra besleme için GND ve VCC bağlantılarını yapmamız gerekiyor. Kırmızı kablo VCC(+5V) , mavi kablo ise GND(-)’yi temsil etmektedir.

Step motorlar, hassas hareket gerektiren projelerde sıkça kullanılan motor türlerindendir. CNC makineleri, 3D yazıcılar, robot kolları gibi birçok uygulamada karşımıza çıkar. Bu yazıda, Arduino kullanarak step motor sürmeyi öğreneceğiz.

Step Motor Nedir?

Step motorlar, elektrik sinyalleriyle adım adım hareket eden motorlardır. Diğer motor türlerinden farklı olarak, belirli bir açısal hassasiyetle dönebilirler. Bu özellikleri sayesinde pozisyon kontrolü gerektiren sistemlerde tercih edilirler.

Step Motor Çeşitleri

Unipolar Step Motorlar: Tek yönlü akım ile çalışan motorlardır. Daha basit sürücülerle kontrol edilebilirler.

Bipolar Step Motorlar: İki yönlü akım gerektiren motorlardır. Daha güçlüdürler ancak sürülmesi daha karmaşıktır.

Arduino ile Step Motor Kontrolü

Arduino ile step motor kontrolü için genellikle ULN2003 veya A4988 gibi sürücü devreleri kullanılır. Bu devreler, motorun Bobinlerine doğru voltajı sağlayarak hareketi kontrol eder.

Gerekli Malzemeler

Arduino (Uno, Mega veya başka bir model)

28BYJ-48 Step motor

ULN2003 sürücü kartı

Jumper kablolar

5V güç kaynağı (USB veya adaptör)

Bağlantılar

Step motoru ve sürücüyü Arduino’ya bağlamak için aşağıdaki adımları takip edebilirsiniz:

ULN2003

Arduino

IN1-8

IN2-9

IN3-10

IN4-11

VCC-5V

GND-GND

Arduino Kodu

Aşağıdaki kod, step motorun ileri ve geri hareket etmesini sağlar:

#include <Stepper.h>

#define STEPS 2048 // Motorun tam tur için adım sayısı
Stepper stepMotor(STEPS, 8, 10, 9, 11);

void setup() {
    stepMotor.setSpeed(10); // Motorun hızını belirleyin (RPM cinsinden)
    Serial.begin(9600);
}

void loop() {
    Serial.println("İleri dönüyor...");
    stepMotor.step(2048); // 1 tam tur ileri
    delay(1000);
    
    Serial.println("Geri dönüyor...");
    stepMotor.step(-2048); // 1 tam tur geri
    delay(1000);
}

Sonuç

Bu yazıda, Arduino ile step motorun nasıl sürüleceğini öğrendik. Daha karmaşık projelerde hız ve konum kontrolü için DRV8825 veya A4988 gibi daha gelişmiş sürücüler kullanılabilir. Umarım bu bilgiler projelerinizde faydalı olur!

int sure = 3; //Her adımda bekleme süresi
#define IN1 11 //Motor
#define IN2 10 //Sürücü
#define IN3 9  //Pin
#define IN4 8  //Bağlantıları
void setup() {
  pinMode(IN1, OUTPUT); //Pinleri
  pinMode(IN2, OUTPUT); //Çıkış
  pinMode(IN3, OUTPUT); //Olarak
  pinMode(IN4, OUTPUT); //Tanımladık
}
void loop() {
  // 512 Adım Tam Tur 360 Derecedir.
  SaatYonu(512); //Saat Yönü 512 Adım
  delay(1000);
  SaatTersYonu(512);//Saat Ters Yönü 512 Adım
  delay(1000);
}
void SaatYonu(int adimSayisi) {
  for (int i = 0; i < adimSayisi; i++) {
    digitalWrite(IN4, HIGH);
    delay(sure);
    digitalWrite(IN4, LOW);
    digitalWrite(IN3, HIGH);
    delay(sure);
    digitalWrite(IN3, LOW);
    digitalWrite(IN2, HIGH);
    delay(sure);
    digitalWrite(IN2, LOW);
    digitalWrite(IN1, HIGH);
    delay(sure);
    digitalWrite(IN1, LOW);
  }
}
void SaatTersYonu(int adimSayisi) {
  for (int i = 0; i < adimSayisi; i++) {
    digitalWrite(IN1, HIGH);
    delay(sure);
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);
    delay(sure);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, HIGH);
    delay(sure);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, HIGH);
    delay(sure);
    digitalWrite(IN4, LOW);
  }
}

Buna da gözat

Pull-Up / Pull-Down direnç

Buton, iterek üzerine basıldığında elektrik akımının geçmesine izin veren elemandır. Normalde butondan akım geçmez. Butona …