Step (adım) motorlar hareketi adım adım kontrol edilebilen motorlardır. Bu özelliği sayesinde bir çok uygulamada kullanılmaktadır. Arduino projelerinin bir çoğunda step motorlar kullanılmaktadır. Step motorlar sürücü kartları ile birlikte satılmaktadır.
Step motor arduino’ya nasıl bağlanır?
Öncelikle step motorun kablosunun ucunu sürücü karttaki yuvasına yerleştirin. Şemada görüldüğü üzere sürücü kartın;
IN1 pinini Ardunio 8 numaralı pine,
IN2 pinini Ardunio 9 numaralı pine,
IN3 pinini Ardunio 10 numaralı pine,
IN4 pinini Ardunio 11 numaralı pine,
+ pinini Arduino 5V pinine
– pinini Arduino GND pinine bağlayın.
Tüm bağlantılarımız bu kadar. Şimdi sıra geldi arduino kodlarını yazmaya.
Adım 1: Öncelikle step motor kontrolü için gerekli olan VirtualWire kütüphane dosyasını Arduino’nun kurulu olduğu klasördeki Libraries (Kütüphaneler) klasörünün içine kopyalamanız gerekiyor.
Arduino step motor kütüphanesini indirmek için tıklayın…
Arduino kütüphane dosyası yükleme ile ilgili makaleyi okumak için TIKLAYIN…
Step motor arduino kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <X113647Stepper.h> const int stepsPerRevolution = 32 * 32; X113647Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); void setup() { myStepper.setSpeed(1000); } void loop() { myStepper.step(stepsPerRevolution); delay(50); myStepper.step(-stepsPerRevolution); delay(50); } |
Kodları açıklayacak olursak;
#include <X113647Stepper.h> kodu ile step motor kütüphane dosyasını arduino kodlarına dahil ettik.
const int stepsPerRevolution = 32 * 32; kodu ile step motorun döneceği adım sayısını belirledik. Eğer step motorun daha fazla tur dönmesini isterseniz buradaki sayıları arttırabilirsiniz.
X113647Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); kodu ile step motoru arduinonun 8,9,10 ve 11 numaralı pinlerine bağladığımızı belirttik.
myStepper.setSpeed(100); kodu ile step motorun dönüş hızını ayarladık. Proje ihtiyaçlarına göre step motor bu kod ile daha hızlı veya yavaş sürülebilir.
myStepper.step(stepsPerRevolution);
delay(50);
myStepper.step(-stepsPerRevolution);
delay(50);
kodları ile de step motorun önce bir yönde sonra da ters yönde dönmesini sağladık.
Projenin durumuna göre eğer ileri ve geri dönüş adımları farklı olacaksa const int stepsPerRevolution = 32 * 32; değişkeninden bir tane daha oluşturularak ileri farklı adım sayısında, geri farklı adım sayısında hareket sağlanabilir.
Örneğin; Step motor ileri gittiğinin iki katı geri gitmesini isterseniz şu şekilde bir kod yazabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <X113647Stepper.h> const int ileri = 32 * 32; const int geri = 32 * 64; X113647Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); void setup() { myStepper.setSpeed(1000); } void loop() { myStepper.step(ileri); delay(50); myStepper.step(-geri); delay(50); } |
Arduino ile step motor kontrolü ile ilgili soru, görüş ve önerilerinizi aşağıdaki yorumlar bölümünden yazarak bize ulaşabilirsiniz.
Çinden aldığım planet dişli bulunan bir nema 17 step motorum var. Sürücü olaral arduino uno ve easy driver var. 24 saatte 1 tur atacak şekilde hızını nasıl ayarlarım. Teşekkür ederim