Arduino Uygulamaları-11 Step Motor (28 BYJ-48) Kontrolü
Merhabalar bugün Bipolar Step Motor'umuzu nasıl kontrol edeceğiz ve step motorlar nedir kısaca ondan bahsedeceğiz.
Step motorlar İki fazlı grubunda 2 gruba ayrılır. Bipolar ve Unipolar. Bipolar olanlar genelde 4 kablo, Unipolarolanlarda genelde 5-6 kablodan bağlantısını gerçekleştirir. Bizim Projemizde kullandığımız Bipolar step motor. Bu motorlarda her iki yönden de akım akabildiği için her iki yöne de çevirebiliriz, bu sayede de biz kod kısmında da göreceğiz saat yönünde ya da tersi yönde motoru hareket ettirebileceğiz. Bipolar motorun çalışma mantığına gelecek olursak;
Aşağıdaki şekilde de görüldüğü gibi bobinlere sarılmış bakır kablolar kutuplanarak içerdeki rotoru çevirir ve bu kutuplanmayı aslında kontrol edebildiğimiz için burda daha hassas çalışma fırsatı verir bize.

Kontrol kartında bulunan entegre ve transistörler sayesinde motoru her 2 yönde de vereceğimiz adım sayısı ve derece kadar döndürmek mümkün bu sayede hassas ve kararlı çalıştığı için 3D yazıcılarımızda, CNC ve Lazer Tezgahlar vs gibi mm'lik hassasiyetin önemli olduğu işlerimizde, projelerimizde bu motoru kullanabiliriz. Tezgahların kontrolünde daha güçlü motorlar kullanılır. Unipolar çalışan Nema23'ler ya da Nema17'ler bu bağlamda daha faydalı olacaktır. Gelelim devremize;
-->Devrenin Malzemeleri
- Arduino Uno
- 28 BYJ-48 Redüktörlü Step Motor ve ULN2003A Kontrol Kartı
- 5V Buzzer
- Güç Soketi
- Çeşitli Jumper Kablolar
-->Devrenin Montajı
Step motorun çektiği akım ve kontrolünü direkt olarak Arduino'dan yapamayacağımız için motorla birlikte gelen ULN2003APG Modülünü Step motorun 4lü kablosuyla modül üzerindeki beyaz sokete takıyoruz. Daha sonra sırasıyla
IN1-->11(Arduino)
IN2-->10(Arduino)
IN3-->9(Arduino)
IN4-->8(Arduino)
Bağlantıları bu şekilde yaptıktan sonra Buzzer'ı da Digital 2 girişine bağlıyoruz.
Ben motorun beslemesini dışardan verdim siz isteseniz Arduino kartı üzerinden alabilirsiniz.
-->Devrenin Çalışma Mantığı
Genel olarak kısa bir şekilde anlatacak olursak; Step motoru saat yönünde döndürdüğümüz zaman aynı zamanda buzzer da ötüyor, Saat yönünün tersinde döndüğü zaman ise buzzer çalışmıyor.
Kodlamasını Arduino->Örnekler kısmındaki "step_oneRevolution" örneğini kullanarak geliştirdik.
-->Devrenin Kodlaması
/* bu örnek arduino'nun içinde bulunan stepper örneklerindendir.
- extra olarak
- buzzer ekledik
*/
include <Stepper.h>
const int stepsPerRevolution = 200; // devir başına adım sayısını değiştirebilirsiniz.
int buzzer=2; //Buzzer'ın + bacağının bağlı olduğu Arduino pini
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);//Arduino'da tanımladığımız pinler
void setup() {
pinMode(buzzer, OUTPUT); //Buzzer'ın bağlı olduğu pini çıkış olarak ayarladık.
myStepper.setSpeed(60); // dönüş hızını belirleriz 60 rpm:
Serial.begin(9600); // serial portu ayarlıyoruz:
}
void loop() {
digitalWrite(buzzer,HIGH);//Buzzer motor saat yönünde dönerken güç göndererek ses çıkarmasını sağladık.
Serial.println("saat yonunde");//Serial ekrana "saat yönününde" yazdır:
myStepper.step(stepsPerRevolution);// bir yönde dönüşünü ayarlarız:
delay(500);//0.5sn
digitalWrite(buzzer, LOW);//Buzzer motor saat yönü tersinde dönerken gücünü keserek susmasını sağladık.
Serial.println("saat yonunun tersi");//Serial ekrana "saat yönünün tersi" yazdır:
myStepper.step(-stepsPerRevolution);// diğer yönde dönüşünü ayarlarız:
delay(500);//0.5sn
}