Önceki yazımızda 5 Volt’luk 28BYJ-48 step motorun ULN2003 motor sürücü modülü aracılığıyla nasıl kullanıldığından ve step motorların temellerinden bahsetmiştik.
Bu yazıda 5 Volt’luk 28BYJ-48 step motoru ULN2003’e göre daha verimli bir step motor sürücü olan A4988 ile nasıl kullandığımızı anlatacağız.
A4988, BJT tipi klasik transistörler kullanan ULN2003’ün aksine verimli FET tipi transistörler kullanması nedeniyle hem daha az ısınırken, hem de motora daha fazla akım ve gerilim sağlayabiliyor. Bu özelliği ve üzerine yapıştırılan minik soğutucu sayesinde devasa step motorlarda bile kullanılabiliyor.
Aşağıda A4988 step motor modülünün 5 Volt’luk 28BYJ-48 step motora bağlantısını görüyoruz.
Aşağıdaki sketch step motoru önce bir yöne, sonra diğer yöne döndürüyor.
Arduino’da iyi olmak için öncelikle elektronikte iyi olmak gerekir. Türkiye’nin en iyi temel elektronik eğitim seti ARDUINO ÖNCESİ TEMEL ELEKTRONİK EĞİTİM VE DENEY SETİ‘ni keşfedin. Gereksiz bilgilerden arındırılmış basit ve eğlenceli anlatımla ELEKTRONİK öğrenin ve Arduino’ya METE HOCA farkıyla güçlü başlayın!
Sketch kodunu kopyalamak için pencerenin sağ üst köşesindeki butona tıklayabilir veya buraya tıklayarak ZIP dosyası olarak indirebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
/* A4988 Step Motor Sürücü Modülü Arduino ile Nasıl Kullanılır? A4988 Step Motor Sürücü Modülünün detaylı açıklaması ve örnek projelerini web sitemizde bulabilirsiniz. Mete Hoca https://www.metehoca.com/ */ int EN = 2; // EN(ENABLE) pini int STEP = 6; // STEP(ADIM) pini int DIR = 5; // DIR(YÖN) pini void setup(){ pinMode(EN, OUTPUT); // EN pinini çıkış olarak ayarlıyoruz pinMode(DIR, OUTPUT); // DIR pinini çıkış olarak ayarlıyoruz pinMode(STEP, OUTPUT); // STEP pinini çıkış olarak ayarlıyoruz digitalWrite(EN, LOW); // EN pinini LOW yapıyoruz ki modül çalışmaya başlasın } void loop(){ digitalWrite(DIR, LOW); // Motor yönünü ileri olarak ayarlıyoruz for(int x = 0; x < 1000; x++){ // Motorumuzu 1000 adım ileri döndürüyoruz digitalWrite(STEP, HIGH); delay(1); digitalWrite(STEP, LOW); delay(1); } delay(500); // Yön değişimi öncesinde biraz bekleyelim digitalWrite(DIR, HIGH); // Motor yönünü geri olarak ayarlıyoruz for(int x = 0; x < 1000; x++){ // Motorumuzu 1000 adım geri döndürüyoruz digitalWrite(STEP, HIGH); delay(1); digitalWrite(STEP, LOW); delay(1); } delay(500); // Yön değişimi öncesinde biraz bekleyelim } |