Skip to Content
Motorlar ve SürücülerL298N Motor Sürücü Kullanımı

L298N Motor Sürücü Kullanımı

L298N, iki DC motoru (veya bir step motoru) yön ve hız kontrolüyle sürebilen çift H köprüsü kartıdır. Hobi robotlarında en yaygın kullanılan sürücüdür.

Bu yazı kartın tüm bağlantılarını, kontrol mantığını ve sık yapılan hataları adım adım açıklar.

Kart Üzerindeki Bağlantılar

Güç girişleri

TerminalAçıklama
+12VMotor beslemesi girişi (7 – 35 V)
GNDOrtak toprak
+5VLojik besleme — jumper durumuna göre giriş veya çıkış

Motor çıkışları

TerminalAçıklama
OUT1, OUT2A motoru
OUT3, OUT4B motoru

Kontrol pinleri

Pinİşlev
ENAA motoru hız kontrolü (PWM)
IN1, IN2A motoru yön kontrolü
IN3, IN4B motoru yön kontrolü
ENBB motoru hız kontrolü (PWM)

5V Jumper — En Kritik Ayar

Kart üzerinde +5V terminalinin yanında bir jumper bulunur. Yanlış kullanımı kartı veya Arduino’yu yakabilir.

Jumper TAKILI (varsayılan)

Kart üzerindeki 78M05 regülatörü aktiftir. +12V girişinden aldığı gerilimi 5 V’a düşürür ve +5V terminalinden çıkış verir.

  • Kullanım: Motor beslemesi 7 – 12 V arasındaysa.
  • +5V terminalinden Arduino’yu besleyebilirsiniz.
  • ⚠ Motor beslemesi 12 V’un üzerindeyse regülatör aşırı ısınır ve bozulur. Jumper’ı çıkarın.

Jumper ÇIKARILMIŞ

Dahili regülatör devre dışıdır. +5V terminali artık bir giriştir ve buraya harici 5 V vermeniz gerekir.

  • Kullanım: Motor beslemesi 12 V üzerindeyse veya ayrı bir 5 V kaynağınız varsa.
  • Arduino’nun 5V pinini L298N’in +5V terminaline bağlayın.
  • GND’leri mutlaka birleştirin.

Özet kural: Motor beslemesi 12 V’tan büyükse jumper’ı çıkarın ve +5V’a harici besleme verin.

Yön Kontrol Mantığı

Her motor için iki giriş pini vardır ve dört olası kombinasyon şu sonuçları verir:

IN1IN2A motoru
HIGHLOWİleri
LOWHIGHGeri
LOWLOWSerbest (coast)
HIGHHIGHFren (brake)

ENA pini ise motorun hızını belirler: analogWrite(ENA, 0–255).

ENA LOW ise IN1/IN2 ne olursa olsun motor çalışmaz.

ENA / ENB Jumperları

Kart üzerinde ENA ve ENB pinlerinde de birer jumper bulunur.

  • Jumper takılıyken: Enable pini sürekli 5 V’a bağlıdır. Motor her zaman tam hızda çalışır, PWM ile hız ayarı yapılamaz.
  • Jumper çıkarılmışsa: Pin serbesttir, Arduino’nun PWM pinine bağlayarak hız kontrolü yapabilirsiniz.

Hız kontrolü istiyorsanız bu jumperları çıkarmanız gerekir. Motor sadece tam hızda çalışıyorsa ilk bakılacak yer burasıdır.

Arduino Bağlantısı

L298NArduino Uno
ENAD10 (PWM)
IN1D9
IN2D8
IN3D7
IN4D6
ENBD5 (PWM)
GNDGND

Motor beslemesi +12V ve GND terminallerine bağlanır.

Tek Motor Kontrolü

const int ENA = 10; const int IN1 = 9; const int IN2 = 8; void setup() { pinMode(ENA, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); } void ileri(int hiz) { digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); analogWrite(ENA, hiz); } void geri(int hiz) { digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); analogWrite(ENA, hiz); } void dur() { digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); analogWrite(ENA, 0); } void fren() { digitalWrite(IN1, HIGH); digitalWrite(IN2, HIGH); analogWrite(ENA, 255); } void loop() { ileri(200); delay(2000); fren(); delay(500); geri(200); delay(2000); dur(); delay(1000); }

İki Motorlu Robot Kontrolü

// Sol motor const int ENA = 10; const int IN1 = 9; const int IN2 = 8; // Sag motor const int IN3 = 7; const int IN4 = 6; const int ENB = 5; // Motorlar arasi hiz farkini duzeltmek icin const float SOL_KALIBRASYON = 1.00; const float SAG_KALIBRASYON = 0.93; void setup() { int pinler[] = { ENA, IN1, IN2, IN3, IN4, ENB }; for (int i = 0; i < 6; i++) { pinMode(pinler[i], OUTPUT); } } void solMotor(int hiz) { bool ileriYon = hiz >= 0; int pwm = constrain(abs(hiz) * SOL_KALIBRASYON, 0, 255); digitalWrite(IN1, ileriYon ? HIGH : LOW); digitalWrite(IN2, ileriYon ? LOW : HIGH); analogWrite(ENA, pwm); } void sagMotor(int hiz) { bool ileriYon = hiz >= 0; int pwm = constrain(abs(hiz) * SAG_KALIBRASYON, 0, 255); digitalWrite(IN3, ileriYon ? HIGH : LOW); digitalWrite(IN4, ileriYon ? LOW : HIGH); analogWrite(ENB, pwm); } void ileriGit(int hiz) { solMotor(hiz); sagMotor(hiz); } void geriGit(int hiz) { solMotor(-hiz); sagMotor(-hiz); } void solaDon(int hiz) { solMotor(-hiz); sagMotor(hiz); } void sagaDon(int hiz) { solMotor(hiz); sagMotor(-hiz); } void dur() { solMotor(0); sagMotor(0); } void loop() { ileriGit(180); delay(2000); sagaDon(150); delay(700); ileriGit(180); delay(2000); dur(); delay(1000); }

solaDon ve sagaDon fonksiyonları motorları ters yönde çevirir; robot olduğu yerde döner (tank dönüşü). Yumuşak dönüş için bir motoru yavaşlatmak yeterlidir:

void yumusakSagaDon(int hiz) { solMotor(hiz); sagMotor(hiz / 3); }

Gerilim Kaybı — L298N’in Zayıf Noktası

L298N eski bipolar transistör teknolojisi kullanır. Her H köprüsünde iki transistör seri bağlı olduğu için motora giden gerilimde 1,4 – 2 V kayıp oluşur.

BeslemeMotora ulaşan
6 V~4 V
9 V~7 V
12 V~10 V

Pratik sonuçları:

  • 6 V’luk sarı motorları 6 V ile beslerseniz robot beklediğinizden yavaş olur.
  • Kaybedilen güç ısıya dönüşür; kart ısınır ve büyük soğutucusu bu yüzden vardır.
  • Çözüm olarak besleme gerilimini bir miktar yükseltmek gerekir (6 V motor için ~7,5–8 V).

Bu kayıptan rahatsızsanız TB6612FNG (0,5 V kayıp) veya DRV8871 kullanın.

Sık Karşılaşılan Sorunlar

BelirtiNeden
Motor hiç çalışmıyorGND’ler birleştirilmemiş; ENA/ENB jumperı yok ve pin LOW; motor beslemesi bağlı değil
Motor sadece tam hızda çalışıyorENA/ENB jumperı takılı — çıkarın
Motor çok yavaşL298N gerilim kaybı; besleme yetersiz; PWM değeri düşük
Kart aşırı ısınıyorMotor akımı 2 A’i aşıyor; besleme 12 V üzeriyken jumper takılı
Arduino resetleniyorMotor ve Arduino aynı kaynaktan besleniyor; besleme hattına 1000 µF kondansatör ekleyin, beslemeleri ayırın
Motorlar farklı hızda dönüyorNormal — yazılımsal kalibrasyon uygulayın
Bir motor hiç dönmüyorKlemens vidası gevşek; IN pinlerinden biri bağlı değil

L298N ile Step Motor Sürme

L298N bir bipolar step motoru da sürebilir. Bu durumda:

  • Motorun A fazı → OUT1, OUT2
  • Motorun B fazı → OUT3, OUT4
  • ENA ve ENB sürekli HIGH
  • IN1–IN4 adım dizisiyle sürülür

Ancak L298N’in akım limiti ayarı yoktur. Step motorlar sabit akımla sürülmek ister; L298N ile sürülen step motor ya zayıf kalır ya da aşırı ısınır.

Step motor için A4988 veya DRV8825 kullanın. Ayrıntılar A4988 ve DRV8825 Step Sürücü yazısındadır.

Özet

L298N, iki DC motoru yön ve hız kontrolüyle süren çift H köprüsü kartıdır. IN pinleri yönü, EN pinleri PWM ile hızı belirler.

Bu derste şunları öğrendik:

  • ENA/IN1/IN2 kontrol mantığını ve dört yön kombinasyonunu
  • 5V jumper’ının ne zaman takılı, ne zaman çıkarılmış olması gerektiğini
  • ENA/ENB jumperı takılıyken hız kontrolünün çalışmadığını
  • İki motorlu robot kontrol fonksiyonlarını ve kalibrasyonu
  • L298N’in ~2 V gerilim kaybını ve sonuçlarını
  • Sık karşılaşılan altı sorunun nedenini