Step motorlar, adımlarla hareket eden DC motorlardır görselde Faz adı verilen gruplar hâlinde organize edilmiş çoklu bobinleri vardır. Her faza sırayla enerji verildiğinde motor her seferinde
bir adım olacak şekilde döner. Çift kutuplu step motorlar, iki bobinden oluşur ve genellikle bobin
başına iki olmak üzere dört bağlantıya sahiptir. Tek kutuplu bir step motor elektriksel olarak iki
ayrı bobinden oluşur. Her bobinin ortadan bağlantısı olduğu için her bobinde üç bağlantı vardır.
Bobindeki orta uçların hepsi birleştiğinden bobin beş bağlantıya sahiptir.

Uygulama 9’da Kullanılan Step Motor ve Sürücü Kartın Özellikleri


28BYJ-48 Step Motor: 5 voltta çalışan 5 telli tek kutuplu bir step motordur. Motorun güç tüketimi
240 mA civarındadır. Motor tam adım modunda çalıştığında her adım 11,25°’lik bir dönüşe karşılık gelir. Bu durum devir başına 32 adım olduğu anlamına gelir (360°/11,25° = 32). Ayrıca motorda 1/64 redüksiyon dişli seti bulunur. (Aslında 1/63,68395) Bunun anlamı, devir başına aslında 32 x 63,68395 =~ 2038 adım demektir.

ULN2003 Sürücü Kartı: ULN2003, yedi darlington transistör çiftinden oluşan motor sürücü kartıdır. Her bir çift 500 mA ve 50 V’a kadar yükleri çalıştırabilir. Kartın, 28BYJ-48 step motor kablolarına uygun konnektörü vardır. Kartta, kontrol giriş hattında adım durumunu gösteren dört adet
LED bulunur. Görsel 3.28’de ULN2003 sürücü kartı pin yapısı görülmektedir.

IN1-IN4: Motoru sürmek için Arduino’daki dijital çıkış pinlerine bağlanır.
GND: Topraklama pini.
VCC: 5 V-12 V haricî besleme.
Motor Balants: Step motor konnektörün bağladığı yerdir (Tek yönlü bağlanabilir.).
Jumper: Jumper çıkarıldığında motora enerji gitmez.

Görseldeki uygulamada step motor önce saat yönünde bir tur, sonra saat yönünün tersinde
bir tur dönmektedir. Step motor başlığına çubuk benzeri bir aparat takılarak dönüşler daha iyi
gözlemlenir.

int x, adimSayisi = 2038, sure = 2;
void setup() {
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
}

void loop() {
  for (x = 0; x < adimSayisi/4; x++) {
    for (byte i = 8; i <= 11; i++) { //Sağa dön.
      digitalWrite(i, 1);
      delay(sure);
      digitalWrite(i, 0);
    }
  }
  for (x = 0; x < adimSayisi/4; x++) {
    for (byte i = 11; i >= 8; i--) { //Sola dön.
      digitalWrite(i, 1);
      delay(sure);
      digitalWrite(i, 0);
    }
  }
}

#include <Stepper.h>

const int adimSayisi = 200;  // Bir devirdeki adım sayısı

Stepper stepMotor(adimSayisi, 8, 9, 10, 11);

void setup() {
  stepMotor.setSpeed(60); //Hız 60 rpm ayarlandı.
  Serial.begin(9600);
}

void loop() {
  Serial.println("Sağa dön.");
  stepMotor.step(adimSayisi);
  delay(500);

  Serial.println("Sola dön.");
  stepMotor.step(-adimSayisi);
  delay(500);
}

Categories:

Tags:

No responses yet

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Dersler