Arduino’nun dijital pinleri milamper mertebesinde akım verir. Redüktörlü bir DC motor ise kalkışta yüzlerce miliamper, hatta amper çeker. Pin ile motor arasına doğrudan kablo çekmek pin sürücüsünü yorar, USB’yi düşürür veya kartı resetler. L298N bu yüzden vardır: mikrodenetleyiciden gelen 0/5 voltluk lojik sinyali, ayrı bir güç kaynağından beslenen motora H-köprü üzerinden aktarır.
L298 entegresi datasheet’te onlarca volta ve birkaç ampere kadar konuşulur. Piyasadaki kırmızı PCB modüller genellikle kanal başına yaklaşık 2 amper, iki kanal, soğutucu ve çoğu kopyada 5 voltluk bir regülatör taşır. İki DC motor bağımsız sürülebilir. 4WD arabada sol iki motor bir kanala, sağ iki motor diğer kanala paralel bağlanır; kart hâlâ iki kanal gibi kodlanır.
H-köprü dört anahtardan oluşur. Çapraz iki anahtar iletkenken akım motordan bir yönde akar; diğer çapraz çift iletkenken yön ters döner. L298N’de bu seçim IN1 ve IN2 (kanal A) ile IN3 ve IN4 (kanal B) pinleridir. ENA ve ENB kanalları açar. Bu pinlere PWM verilirse motorun ortalama gerilimi, dolayısıyla hızı değişir.
Gerekli malzemeler
- Arduino Uno
- L298N çift motor sürücü kartı
- 6–12 volt redüktörlü DC motor (bir veya iki adet)
- Motor için ayrı güç: pil yuvası veya adaptör
- Jumper kablo
Pinler
OUT1 ve OUT2 motor A’ya, OUT3 ve OUT4 motor B’ye gider. Kart üzerindeki +12V (bazen VS) motor beslemesidir; 9 voltluk bir araba kiti varsa 9 volt buraya gelir, Uno’nun 5V pinine değil. GND toprak hattıdır. +5V pini birçok klonda regüle çıkıştır; jumper konumuna göre giriş veya çıkış gibi davranabilir, şemayı okumadan Arduino 5V’sine körlemesine bağlamayın.
ENA ve ENB’nin yanında küçük jumper varsa ve jumper takılıysa o kanal tam hızda aktiftir. Hız kontrolü istiyorsanız jumper’ı çıkarıp ENA’yı Uno’nun PWM pinine (yanında ~ olan 3, 5, 6, 9, 10 veya 11) bağlarsınız.
Uno ile tek motor, PWM ile hız
IN1’i 8. pine, IN2’yi 9. pine, ENA’yı 10. pine alın. Motor OUT1–OUT2’ye gitsin. Motor gücünün eksi ucu, L298N GND’si ve Uno GND’si aynı noktada birleşsin. Ortak toprak unutulursa motor titrer, sketch doğru görünür, saatler kaybolur.
IN1 yüksek IN2 alçak iken motor bir yöne döner; tersi diğer yöndür. İkisi alçakken kanal durur. ENA üzerinde `analogWrite` 0–255 arası hızdır.
const int IN1 = 8;
const int IN2 = 9;
const int ENA = 10;
void setup() {
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENA, OUTPUT);
}
void loop() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENA, 200);
delay(2000);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(ENA, 120);
delay(2000);
analogWrite(ENA, 0);
delay(1000);
}Bu sketch kütüphane istemez. Motor dönmüyorsa önce ENA jumper’ına, sonra ortak GND’ye, sonra 12V girişinde gerilim olup olmadığına bakın. Soğutucunun ılık olması yükte normaldir; tekerlek kilitliyken (stall) kartı dakikalarca bırakmak normal değildir.
İkinci motor IN3, IN4, ENB ve OUT3/OUT4 ile aynı hikâyedir. 28BYJ-48 step motor bu kartın işi değildir; o ULN2003 ister.
Uno pinleri ve `digitalWrite` nasıl kodlanır yazısında, mesafe ile duran araba için HC-SR04 yazısında duruyor. Sürücü: L298N.