Arduino ardumoto Nasıl kullanılır ?
Arduino ile DC motor kontrolü ve ardumoto kullanımı hakkında Türkçe (ingilizce de dahil) pek fazla kaynak bulamayınca projelerinizde özelliklede çizgi izleyen robot yapımında sizlere yardımcı olması amaçlanan bir makale olacaktır.
Ardumoto,başka bir adıyla ardumoto motor driver shield bir motor shield çeşidi olarak karşımıza çıkıyor ve arduino uno ile uyumludur. Ardumotor L298P motor sürücü entegresi kullanmaktadır. Klasik motor sürücü kartlarına göre farklılıkları olan ardumotor motor sürücü kartı 4 adet pin(3,11,12,13) ile iki farklı DC motorun rpm(hız) ve yön kontrollerini sağlayabiliyor. VIN girişinden Max 18V olacak şekilde harici güç bağlayabiliriz. 3. pin Motor A’nın rpm kontrolünü 12. pin ise yön kontrolünü yapar. Motor B’nin ise 11 pin rpm 13 pin ise yön kontrolünü yapmaktadır. (Not: Bu pinler kart üzerinde otomatik seçilmiştir yerleri değiştirilemez.) B led Motor B hareketleri esnasında yanıp sönmektedir. Aynı şekil A led de Motor A için aynı işlevi yapmaktadır. Fritzing üzerinde bir ardumoto ile iki DC motorun bağlantı şemasını çizelim.
DC Motor Bağlantı
İki adet motorun bağlantısını bu şekilde yaptıktan sonra geriye kalan pinleri istediğimiz sensörü kontrol için kullanabiliriz. ardumoto Çizgi izleyen, Engelden kaçan gibi robotlar için kullanımı oldukça ideal olan bir karttır.Şimdi bir uygulama ile Ardumoto kullanımını anlatalım. Bir kod bloğunu paylaşacağım. Bu kod bloğu hem motorları doğru bağlanıp bağlanmadığını hem de sistemin tam anlamı ile nasıl çalıştığınızı anlamamız için yardımcı olabilecek.
Son olarak ardumoto FİYAT konusunda da projelerimizde kullanabileceğimiz bir kart olarak karşımıza çıkıyor.
#########################################--------------------------###################################
int pwm_a = 3; //Motorların çıkıları olan 3 ve 4 için pwm kontrolü. dijital 3 pinde
int pwm_b = 11; //Motorların çıkıları olan 1 ve 2 için pwm kontrolü. dijital 11 pinde
int dir_a = 12; //Motorların çıkışları olan 1 ve 2 için yön kontrolü, dijital 12 pinde
int dir_b = 13; //Motorların çıkışları olan 3 ve 4 için yön kontrolü, dijital 13 pinde
void setup()
{
pinMode(pwm_a, OUTPUT); //Kontrol pinlerini çıkış olacak şekilde ayarla
pinMode(pwm_b, OUTPUT);
pinMode(dir_a, OUTPUT);
pinMode(dir_b, OUTPUT);
analogWrite(pwm_a, 100); //Her iki motoru da (100/255 = 39)% görev döngüsünde (yavaş) çalışacak şekilde ayarla
analogWrite(pwm_b, 100);
}
void loop()
{
digitalWrite(dir_a, LOW); //Motor yönleri, 1 low, 2 high
digitalWrite(dir_b, LOW); //Motor yönleri, 3 high, 4 low
delay(1000);
analogWrite(pwm_a, 255); //Her iki motoruda (hızlı) olacak şekilde ayarla
analogWrite(pwm_b, 255);
delay(1000);
digitalWrite(dir_a, HIGH); //Ters motor yönü, 1 high, 2 low
digitalWrite(dir_b, HIGH); //Ters motor yönü, 3 low, 4 high
delay(1000);
analogWrite(pwm_a, 100); //Her iki motoru da (100/255 = 39)% görev döngüsünde (yavaş) çalışacak şekilde ayarla
analogWrite(pwm_b, 100);
delay(1000);
}
Yazımızda kullanılan ürünümüze şu adresten ulaşabilir, robocombo farklı ile hızlı ve güvenli alışverişin tadını çıkarabilirsiniz...
Bu yazımızda ardumoto motor shield hakknıda bilgiler verdik.Bir sonraki yazımızda görüşmek üzere...
Daha fazlası için Robocombo blog sayfasını ziyaret edebilirsiniz.