
Merhaba arkadaşlar bu yazımızda Arduino ile joystick yardımıyla step motorun ileri-geri kontrolünü yapacağız.
Step Motorlar, bir başka deyişle adım motorları açısal konumu adımlar hâlinde değiştiren, hassas uygulamalarda tercih edilen motorlardır. Step motorlar, bipolar ve unipolar olmak üzere iki çeşittir. Bipolar step motorlar 4 kablolu, ünipolar step motorlar ise 4,5,6 veya 8 kabloludur.
Kullanılan Malzemeler
- Arduino Uno
- 28BYJ-48 Step Motor ve ULN2003 Sürücü Kartı
- Arduino XY Joystick Modülü
- Jumper Kablo
- BreadBoard
28BYJ-48 Step Motor Yapısı
28BYJ-48, 4 kablolu,boyut olarak küçük ve ucuz bir step motordur. Çalışma voltajı 5-12V’dır. ULN2003 Step Motor Sürücüsü ile uyumlu çalışabilmektedir. Özellikle Arduino ile yapılan Robotik projeler için çok uygundur.
28BYJ-48 Step Motor 4 uca sahiptir. Aşağıdaki resimde Yarım Adımlı step sürmek için hangi uçları Aktif yapmamızı gösteren grafik görülmektedir. Uçlardan sırasıyla önce 1, daha sonra 1 ve 2.uç ve bu şekilde devam ederek 8 aşama da tamamlanmaktadır.
Devre Şeması
Gerekli olan Kütüphane
static const int Pin0 = 5;
static const int Pin1 = 6;
static const int Pin2 = 7;
static const int Pin3 = 8;
int step = 0;
const int x = A0;
int x_eksen;
void setup() {
pinMode(Pin0, OUTPUT);
pinMode(Pin1, OUTPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);
}
void loop() {
x_eksen = analogRead(A0);
switch(step) {
case 0:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, HIGH);
break;
case 1:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, HIGH);
break;
case 2:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, LOW);
break;
case 3:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, LOW);
break;
case 4:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
break;
case 5:
digitalWrite(Pin0, HIGH);
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
break;
case 6:
digitalWrite(Pin0, HIGH);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
break;
case 7:
digitalWrite(Pin0, HIGH);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, HIGH);
break;
}
if(x_eksen>550) step++;
if(x_eksen<50) step–;
if(step>7) step=0;
if(step<0) step=7;
delay(1);
}
Programı yukarıdan kopyalayabilir ya da buradan ulaşabilirsiniz.
Aşağıda sitemizde bulunan diğer step motor kontrol uygulamalarına bakarak step motor hakkında daha detaylı bilgiye sahip olabilirsiniz.
PIC16F84A ile Step Motor Kontrolü
PIC|ULAK ile Bilgisayardan Step Motor Kontrolü
STM32F4 Discovery Step Motor Uygulaması