Arduino Arduino Joystick İle Step Motor Kontrolü By Muhammet Özcan Posted on 28 Mayıs 2018 4 min read 0 0 13,530 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr 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 X113647Stepper-master 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ü FPGA ile Step Motor Kontrolü STM32F4 Discovery Step Motor Uygulaması