29 Aralık 2023 Cuma

Arduino ile step motoru kullanımı

Bir motor çeşidi olan step motoru dönüşünü adım adım yapmaktadır. Her step motorun bir tam turunu tamamlaması için belirli adım sayısı vardır. Bu adım sayısı özelliği motorun marka modeline göre değişmektedir. Bizim bu derste kullanacağımız step motoru 28 BYJ-48 kodlu step motorudur.

Bu motoru Arduino kartlar ile çalıştırmak için bir de sürücü kartına ihtiyaç vardır. Yukarıdaki yeşil renkli kart step motorunun gücünü ve yönetimini yürüten bir sürücü karttır. Step motoru kablolarını soketi ile birlikte bağladıktan sonra bu sürücü kart üzerinde bulunan IN1, IN2, IN3 ve IN4 pinlerini kablo ile Arduino kartına bağlıyoruz.

Bağlantıları yaptıktan sonra gelelim Arduino ile yapılacak kodlama işlemine. Step motorunu Arduino ile çalıştırmak için bir kütüphane gereklidir. Arduino programında bu kütüphane mevcuttur. Stepper adlı kütüphaneyi ilk olarak Arduino kodlarına ekliyoruz ve aşağıdaki kodları ekleyerek temel anlamda step motorunu Arduino ile çalıştırıyoruz.

#include <Stepper.h>
//motoru çalıştıracak sürücü kartı üzerindeki pinleri
//arduinoda kaç numaralı pinlere bağladığımızı
//aşağıdaki değişken isimleri ile tanımlıyoruz.
// int tam sayı olduğunu belirtir in1 gibi isimler ise
//bizim verdiğimiz değişken isimleri. sürücü kartın üzerinde öyle yazıyor diye
int in1 = 11;
int in2 = 10;
int in3 = 9;
int in4 = 8;

int tamtur = 2000; //step motorunun tam tur sayısı.
//yani step motoru 360 dereceyi 2000 adımda tamamlar
//istersek bu sayıyı değitirebiliriz. enfazla 5625 değerinde çalışır.
//daha yüksek değerler hep 5625de çalışır

Stepper step_motorum = Stepper(tamtur, in2, in4, in1, in3);
//step motor kütüphanesi ile step motoru hazırlama kodu
//yukarıda step motora step_motorum adını verdik.
// aşağıdaki kodlarda motoru bu isimde kullanacağız

void setup() {
  // gerekli bir hazırlık yok yukarıda step motor kütüphanesi kodları herşeyi hazırladı
}
void loop() {
 step_motorum.setSpeed(10);  // Hızı dakikada 10 devir olarak ayarlıyoruz
 step_motorum.step(tamtur); //tamtur yani 2000 adım dönsün
 delay(1000);//dönme işleminden sonra diğer dönme işlemine geçmeden önce 1 saniye beklesin
 step_motorum.setSpeed(5);  // Hızı dakikada 5 devir olarak ayarlıyoruz
 step_motorum.step(-tamtur/2); // tamtur değerinin yarısı yani 1000 adım ters töne dönsün
 delay(1000);
 step_motorum.setSpeed(19);  // Bu motor en fazla 19 devir/dakika olarak çalışır
 step_motorum.step(500); //500 adım dönsün
 delay(1000);
}

Yukarıdaki örnekte kodların yanlarında ve alt satırlarında açıklama satırları ile kodları ve işin mantığını anlatmaya çalıştım. Kodların açıklamasız hali ise aşağıda bulunmaktadır.

Burada dikkat edilecek husus en başta step motora verdiğimiz step_motorum ismi ile step motorunun işlevlerini kullanmak. 

setSpeed işlevi ile step motora dakikada dönme hızı ayarlıyoruz.

step işlevi ile de step motorunun adıma atmasını yani dönmesini sağlıyoruz. 

#include <Stepper.h>
int in1 = 11;
int in2 = 10;
int in3 = 9;
int in4 = 8;

int tamtur = 2000;
Stepper step_motorum = Stepper(tamtur, in2, in4, in1, in3);

void setup() {
 
}
void loop() {
 step_motorum.setSpeed(10);  
 step_motorum.step(tamtur);
 delay(1000);
 step_motorum.setSpeed(5);
 step_motorum.step(-tamtur/2);
 delay(1000);
 step_motorum.setSpeed(19);  
 step_motorum.step(500);
 delay(1000);
}

Hiç yorum yok:

Yorum Gönder