Arduino Ders 22: Joystick

Arduino Uygulaması

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.

Arduino L298N motor sürücü kullanımı

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.

L298N motor sürücü kartı Arduino bağlantı şeması görseldeki gibi yapılabilir. IN1 ve IN2 birinci motoru, IN3 ve IN4 ikinci motoru kontrol etmek için kullanılır. Bu örnekte IN1, IN2, IN3 ve IN4 sırasıyla Arduino’nun 8, 9, 10 ve 11 numaralı pinlerine bağlanmıştır.

Arduino L298N motor sürücü bağlantı şeması

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ı.

Yorum Gönder

Daha yeni Daha eski