Adafruit Motor Shield Genel Bakış
Pin yapısına baktığımızda şekilde de görüldüğü üzere 4 adet dc motor, 2 adet servo motor ve 2 adet step motor sürebiliyor. Yani sadece dc motor sürmek için tasarlanmamış. Bu yönüyle de oldukça avantajlıdır. Arduino uno üzerine taktığımızda arduinonun pinleri kapandığından ek olarak arduinodan çıkış almamız gerektiği durum olursa shield üzerinde ek pinler bulunmaktadır. Yani bu pinler normal arduino pinleri olarak kullanılır. Şekilde de görüldüğü gibi analog 0’dan 5’e kadar ve dijital 0’dan 13’e kadar ek pinler yer alır. Ayrıca besleme pinleri de ayrı bir çıkıştan verilmiştir. Bu modellerin bazı shieldlerde ek olarak djital pinler bulunmuyor. Bu durumda ise shield i pinlere takarken ek bir kablo ile aynı pinden çıkış alabilirsiniz. 5-12v arası çalışma voltajına sahiptir. Her kanal 600 mah akım vermektedir.
Adafruit Shield Kütüphane Fonksiyonları
Bilindiği üzere bu kart kütüphane kullanmaktadır. Kütüphaneyi buradan indirebilirsiniz.
Kütüphaneyi çağırmak için #include <AFMotor.h> yazabilir veya kütüphane ekle menüsünden çağırabilirsiniz.
Arduino’ya başlangıç için ve programlama temellerinin anlaşılması için yapılacak en basit örnekler ledlerle yapılan örneklerdir. Ledler hem kullanımı kolay hem ucuz hemde gereksinimi düşük olan elemanlardır. Bu yazımızda arduino’daki temel kodları ledler üzerinde yapılacak farklı örneklerle göstermeye çalışacağız.
ÖRNEK KOD;
//////////////////////////////////////////////
// Arduino Projeleri İçin; //
// //
// https://ozkantastan.blogspot.com.tr/ //
/////////////////////////////////////////////
#include <AFMotor.h>
// Arduino Projeleri İçin; //
// //
// https://ozkantastan.blogspot.com.tr/ //
/////////////////////////////////////////////
#include <AFMotor.h>
AF_DCMotor motor1(1, MOTOR11_64KHZ); // 1. motor 64KHz pwm
AF_DCMotor motor2(2, MOTOR12_64KHZ); // 2. motor 64KHz pwm
void setup() {
Serial.begin(9600); // Serial monitörde test edelim
Serial.println("Motor test!");
motor.setSpeed(200); // motor hızımız belirlendi
}
void loop() {
motor2.run(FORWARD); // motoru ileri çalıştır
delay(1000);
motor2.run(BACKWARD); // motoru geri çalıştır
delay(1000);
motor2.run(RELEASE); // dur
delay(1000);
}