L298N Motor Sürücü Kartı Kullanımı
Arduino ile L298N motor sürücü kartını kullanarak iki DC motoru ileri veya geri yönde kontrol etmeyi öğreneceğiz.
Bu yazımızda L298N motor sürücü kartının Arduino devre bağlantı şemasını, Arduino kodlarını ve çeşitli kullanım ipuçlarını inceleyeceğiz.
L298N motor sürücü kartı ile Arduino kullanarak DC motor kontrolü gerçekleştirebilirsiniz. Motor sürücü kartına bağlayacağınız iki motoru ileri veya geri yönde sürebilirsiniz.
ENA ve ENB pinleri kullanılarak motorların hız kontrolü de yapılabilir. ENA ve ENB üzerindeki jumperlar takılıysa motorlar tam güçte çalışır. Hız kontrolü yapmak için bu jumperlar çıkarılıp ENA ve ENB pinleri Arduino’nun PWM destekli pinlerine bağlanabilir.
L298N motor sürücü kartı motorlar için harici bir güç kaynağına ihtiyaç duyar. Motor beslemesi için 9V pil veya motorunuza uygun farklı bir güç kaynağı kullanılabilir.
Pilin artı kutbu motor sürücünün +12V girişine, eksi kutbu ise GND girişine bağlanır. Arduino ile motor sürücünün ortak referans kullanabilmesi için motor sürücünün GND girişinden Arduino GND pinine de bağlantı yapılmalıdır.
Motorları doğrudan Arduino pinlerinden beslemek doğru değildir. Motorlar yüksek akım çekebileceği için motor sürücü ve uygun harici güç kaynağı kullanılmalıdır.
Bir DC motorun çalışabilmesi için motora bağlı iki kontrol ucundan biri HIGH, diğeri LOW yapılmalıdır. İki pinin durumu ters çevrilirse motor ters yönde döner.
İki pin birden LOW yapılırsa motor durur. İki pin birden HIGH yapılması sürüş şekline göre frenleme etkisi oluşturabilir; temel uygulamalarda motoru durdurmak için iki pini LOW yapmak daha anlaşılırdır.
const int in1 = 8;
const int in2 = 9;
const int in3 = 10;
const int in4 = 11;
void setup() {
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void loop() {
// Motor 1 ileri
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
// Motor 2 ileri
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
}
const int in1 = 8;
const int in2 = 9;
const int in3 = 10;
const int in4 = 11;
void setup() {
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
motorlariDurdur();
}
void loop() {
ileriGit();
delay(2000);
motorlariDurdur();
delay(1000);
geriGit();
delay(2000);
motorlariDurdur();
delay(1000);
}
void ileriGit() {
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
}
void geriGit() {
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
}
void motorlariDurdur() {
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
Bu sürümde ileri gitme, geri gitme ve motorları durdurma işlemleri ayrı fonksiyonlara ayrıldı.