Ardunio Uno ile TB6560 Motor Sürücü ve Nema 23 Kontrolü

Arduino ile bir sürü proje gerçekleştirilmektedir. Bunlardan birisi de hiç kuşkusuz Nema 23 motorunun sürülmesidir. Özellikle 3d yazıcı ve CNC tezgahlarında bu motorun sürülmesi önem arz etmektedir. Yabancı kaynaklar ile ilgili bir sürü döküman olmasına karşın ülkemizde bilgi paylaşımının eksikliği öngörülerek böyle bir çalışma yapılması öngörülmüştür. Özellikle arduino uygulamalarında bir sürü uygulama kendi internet sitesi üzerinde paylaşılmıştır. Burada mikrokontrolörden ziyade asıl önemli kısım motor ve sürücü seçimi ile ilgili olmaktadır. Bilindiği üzere step motorlar sağlam motorlardır. Özellikle yüksek tork gerektiren uygulamalarda tercih edilebilir. Eğer step motorlarda enkoder devresi de var ise servo motor gibi kullanmakta mümkün olabilir. Servo motorlarda çevrim sayısı sayesinde motorun hız ve konum bilgisi mikrokontrole gitmektedir. Böylece servo motorun hareket kabiliyeti gözlemlenebilmektedir. Tıpkı servo motor uygulamasında olduğu gibi step motorda da enkoder devresi bulunursa motorun hangi adımda olduğu rahatlıkla bulunabilmektedir.

Nema 23 step motoru 1.4 Nm’lik bir tork değerine, 650 gr ağırlığına sahip olup, 8 kablo bulunmaktadır ve 2 kutuplu bir motordur. TB6560 motor sürücüsü ile rahatlıkla sürülebilmektedir. Bunun yanında L298 ve lmd18200t sürücüleri ile de motor sürülebilir. TB6560 hazır sürücü modülü olduğu için bu devrede tercih edildi. Ancak baskı devre aşamasında muhtemelen lmd18200t sürücü entegresi tercih edilecektir. TB6560 sürücü modülü 3A’e kadar motoru sürebilmektedir. Nema 23 için güç kaynağından 24 V’lük bir besleme ile kart beslemesi yapıldı. Motor boşta iken 0,4 A akım çekmektedir. 100% çalışma oranı(duty cycle) ile motor nominal olarak 1 A akım çektiği görülmüştür. Ancak burada motor dayanıklı olmasının yanında çok hızlı olmadığı gözlemlendi. Arduino uno, TB6560 ve Nema 23 step motoru ile kurulan breadboard devresi aşağıdaki gibidir:

Arduino Uno+ TB6560 + NEMA 23

Buradaki bağlantılar doğru yapıldığında sistemimiz sorunsuz çalışacaktır. Arduino IDE uygulamasında bulunan “stepper_speedControl” örnek uygulaması derlenip arduino’ya yüklenebilir. Bu devreyi çalıştıracak olan Arduino kodu;

#include <Stepper.h>

const int stepsPerRevolution = 200; // Her bir çevrim icin donusun sabitlenmesi. //Motor 200 adim oldugu icin yapildi. 

// Baslangic icin 8. pinden 11. pine kadar motora ayriliyor. Biz devremizde 8. ve 9. //pinleri kullandik. Sadece 8 ve 9 olarak da tanimlanabilir.
Stepper myStepper(stepsPerRevolution, 8,9,10,11);

int stepCount = 0; // adimlarin numarasi

void setup() {
}

void loop() {
// potansiyometreden okunan deger.
int sensorReading = analogRead(A0);
// %100 calisma orani icin potansiyometrenin degerinin ayarlanmasi //saglanmaktadir.
int motorSpeed = map(sensorReading, 0, 1023, 0, 100);
// motor hizi ayarlaniyor:
if (motorSpeed > 0) {
myStepper.setSpeed(motorSpeed);
// adim 1/100 donusumu:
myStepper.step(stepsPerRevolution/100);
}
}

Görüldüğü gibi basit bir kod dizilimi ile rahatlıkla motor sürülebilmektedir. Bu devremize ilişkin video Youtube kanalında mevcuttur. Dilerseniz link üzerinden ulaşabilirsiniz.

Gerekli Malzemeler

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

%d blogcu bunu beğendi: