Herkese Selamlar Dostlarım! Robo90’dan Eray Ben!
Bugün sizlerle beraber basit gözükse de yeni başlayanlar için zorlayıcı olabilen A4988 ve Arduino kullanarak Nema-17 step motor kullanımını öğreneceğiz.
Step Motor Nedir?
Sorusuna bir cevap verelim, (Merak etmeyin size fazla detay verip kafa karıştırmayacağım.)
Step Motor, adından da anlaşılacağı gibi adım mantığı ile çalışan üzerindeki milin açısını adımlar halinde değiştirebilen elektromekanik aletlerdir. İç yapısında 2 adet bobin bulunan ve çoğunlukla hassas işlemlerde kullanılan bir motordur. Şekli itibari ile biraz kabadır. Örnek olarak aşağıya bir kaç model bırakıyorum.

Motor Seçimi
Piyasada birçok modeli bulunan step motorlar arasında birçoğumuzun 3D yazıcılarda da aşina olduğu Nema17 modeline odaklanacağız. Hemen aşağıda fotoğrafını eklediğim bu model, üzerinde konuşacağımız arkadaşın ta kendisi!

Kulağa oldukça basit geliyor. Arduino’ya bir step motor bağlayıp çalıştırıyorsun. Ne var ki bunda! Dostlarım, o iş pek de öyle basit değil 😅. Step Motorlar yapıları gereği birçok motor gibi sürücüler ile beraber çalışmakta. Bazen bu sürücüler sizi kanser edebiliyor. Gelin kanser olmadan işe başlayalım! Projemize uygun bir Nema serisi motor seçmekle başlayabiliriz.
Benim kullandığım motor www.robo90.com üzerinden temin ettiğim, 17HS3401 Model numaralı Nema 17 Step Motor. Bu yazıda öğreneceğimiz şeyler genel olarak Nema17 motorları için geçerli ancak spesifik bir Nema17 kullanıyorsanız motorunuzun kendi sitesinden detaylarına bakmayı unutmayın.

Bu motor, benim kullanacağım proje için oldukça uygun. 4 pin olması, düşük iç direnci, 5V-24V arası çalışma gerilimi ile oldukça makul bir halde. Motorumuz hazır olduğuna göre bir de sürücü seçmemiz gerekiyor.
Neden A4988?
Bu aşamada size yaşadığım bir sorunu anlatmak istiyorum, Ben ilk olarak “L293B” motor sürücü ile beraber step motoru sürmeye çalıştım ve başardım da, Step motor çalışıyordu. İstediğim hareketleri yerine getiriyordu fakat bir sorunum vardı. L293B inanılmaz ısınıyordu. Tahminimce bunun sebebi Step motor içerisindeki bobinlerin direnci. L293B’nin kendisi de bu iş için üretilmiş bir ürün değil. Daha çok DC motor sürmek için kullanılan bir entegre kendisi. Ben sadece elimde hazırda bu sürücü olduğundan şansımı denemek istedim. Şu sorunun cevabını da vermiş oldum. L293B/D ile Step motor kullanılır ama ısı sorunundan mantıklı olmayabilir.

Bu hatalı denemenin ardından, step motorlar için özel üretilmiş bir modül seçerek yola devam etmeye karar verdim. Seçtiğim modül “A4988” oldu. Uygun fiyatlı ve boyutunun küçüklüğü kendisini oldukça mantıklı bir hale getiriyor. Rengine aldanmayın, bazı modellerinde yeşil renkteki karta sahip olabiliyor. Sürücümüz hazır olduğuna göre şimdi bağlantılara geçebiliriz.
A4988, Arduino ve Step Motor Nasıl Bağlanmalıdır?
Evet! En çok karıştırılan ve en zorlayıcı olabilecek yere gelmiş bulunmaktayız. İnternet üzerinde bir çok bağlantı gösteriliyor. Kafanız karıştıysa doğru adrestesiniz burada bu sorunu çözeceğiz.

Biraz araştırma ve deneme sonucu internet üzerinde çok güzel bir görsel buldum. Burada aslında tüm çıkışları görebiliyoruz. Ancak burada biliyor olmamız ve dikkat etmemiz gereken bir kaç nokta var. Sizlere İlk anlatmak istediğim şey “MS” pinleri;
Görsele dikkat ettiyseniz “MS” ile başlayan 3 tane pin görüyoruz.
Bu pinler step motorun bir adımda kaç derecelik bir hareket yapacağını belirlememizi sağlayan pinler. Hemen görseller ile açıklayayım!

Her motora 200 Adımlık bir hareket yolladığınızda karşılaşacağınız sonuç çok büyük ihtimalle bu tarz olacaktır. Peki bu “MS” Pinlerini nasıl kontrol ediyoruz? İşte şu şekilde;
MS1 | MS2 | MS3 | Adım Durumu |
Low | Düşük | Low | Tam Adım 1/1 |
Yüksek | Low | Düşük | Yarım Adım 1/2 |
Low | Yüksek | Low | Çeyrek Adım 1/4 |
Yüksek | Yüksek | Low | Sekizde Bir 1/8 |
Hıgh | Hıgh | Hıgh | On altıda Bir 1/16 |
Eğer bu pinleri Arduino Dijital pinlerine bağlayıp tabloda gördüğünüz konfigürasyonları uygularsak step motorun adımlarında ince ayarlar yapabiliriz. Ben şu anlık buna ihtiyacım olmadığından tüm pinleri 5V hattına bağlayacağım. Bu da tüm adımları 1/16 olarak kullanacağım anlamına gelir.
A4988 üzerinde bir de ufacık bir potansiyometre bulunur. Bu potansiyometre step motorun bobin bacaklarına gidecek maksimum akımı sınırlamamızı sağlar. Eğer akım sınırlaması yapmazsak ya güç kaynağını ya da step motorun bobinlerine çok büyük ihtimalle zarar veririz. Peki, akım sınırlamasını neye göre yapacağız? Bunu hesaplamanın çok zor olmayan bir yolu var dostlarım.
A4988 Hakkında Diğer Bilmemiz Gerekenler!
Diğer bilmemiz gereken durum SLP ve RST pinleri. Bu pinleri bir switch gibi düşünebilirsiniz eğer birbirlerine bağlanırlarsa sürücü aktif olur. Bağlanmazlarsa sürücüyü kullanamazsınız. Ben genellikle araya ufak bir jumper atarak birbirlerine bağlıyorum
STEP pini, adından da anlaşılacağı üzere motora kaç adım hareket etmesi gerektiğini söyleyen sinyal pini ben Arduino üzerinde 2 numaralı pine bağladım.
DIR pini ise Direction yani yön pini step motora adımları hangi yöne doğru atması gerektiğini söyleyen arkadaş. Bunu da Arduino üzerinde 3 numaralı pine bağladım.
A4988 Nasıl Beslenmeli?
Eğer siz de step motoru Arduino üzerinden beslemeyi düşündüyseniz aramıza hoş geldiniz! 😅 Dostlarım sakın öyle bir hata yapmayın! Step motor çok yüksek akımlar çekebilir, Arduino ise sadece 200mA çıkış akımına sahiptir. Eğer A4988’in VMOT pinini Arduino üzerinden 5V pinine bağlarsanız 3 saniye içerisinde Arduino üzerindeki regülatörlerden duman çıktığını göreceksiniz.
Böyle bir durum yaşamamak için mutlaka ve mutlaka harici bir güç kaynağı kullanmalısınız. Ben burada 12V 2A bir güç kaynağını bağladım. VMOT Pinini bu kaynağın + hattına GND pinini ise – hattına bağlıyorum.
A4988 üzerinde bir de VDD ve 2.GND pinleri olduğunu görebilirsiniz. VDD pini sürücünün çalışması için gerekli olan enerjiyi sağlar. GND hattı ise Sürücünün toprak hattının Arduino ile birleşmesi için kullanılır.
VDD pinini 5V hattına, GND pinini ise gene Arduino üzerindeki GND hattına bağlıyorum.
A4988 ya da Nema17 Çalışmıyor, Bozuk Ürün Yollamışlar!!
Diyorsanız eğer çok büyük ihtimalle motorun bobin bacaklarını yanlış bağladınız. Bendeki motor üzerinde 6 tane pin bulunuyor. Biz sadece 4 tanesini kullanacağız. Motorunuzun içerisinden bir soketli kablo çıktıysa onu motorunuza bağlayın. Bobin bacaklarını öğrenmek için 2 seçeneğiniz var. İlk seçenek multimetre yardımı ile kısa devre ayarında pinleri kontrol etmek. İkinci seçenek ise motoru temin ettiğiniz siteyi kontrol etmek. Ben multimetre ile kontrol etmeyi tercih etmiştim. Bazen temin ettiğiniz sitede dahi yanlış yazabiliyor. Daha açıklayıcı olması açısından aşağıya bir görsel bırakıyorum.

Bağlantılarımızı yaptığımıza göre sıra geldi Arduino Yazılımını yazmaya.
A4988 için Arduino Kodu Nasıl Olmalıdır?
Ben ilk olarak kütüphanelerimizi dahil ederek işe başlıyorum. Kütüphane olarak severek kullandığım ve bir çok özelliği de içerisinde barındıran “<AccelStepper.h>” Kütüphanesini kullanacağım. Kendisi motorun hızlanma ve yavaşlama (ivmelenme) gibi ayarları kontrol edebildiğimiz kullanımı kolay bir arkadaş.
#include <AccelStepper.h> //kütüphanemizi dahil ediyoruz
AccelStepper stepper(1, 2, 3); // 2 step pini 3 ise dir pini
void setup()
{
stepper.setMaxSpeed(1000); // Maksimum hız
stepper.setAcceleration(250); // Hızlanma değeri
}
void loop()
{
stepper.move(20); // Step motoru 20 adım ileri gitmeye hazırla
stepper.runToPosition(); //Step motoru belirlenen adım ileri gönder.
}
1 Yorum
libraryler paylaşılmalı bence bulmak zor oluyor
teşekkürler