ArduinoEğitim

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

Arduino Uno ile L298N Motor Sürücü Kullanımı

Bu projede, Arduino Uno ve L298N Motor Sürücü kullanarak bir DC motorun hızını ve yönünü nasıl kontrol edebileceğimizi adım adım inceleyeceğiz. DC motor kontrolü için farklı yöntemler olsa da, L298N sürücü; kolay kullanımı, uygun maliyeti ve güçlü yapısı sayesinde en çok tercih edilen çözümlerden biridir.


L298N Motor Sürücü Nedir?

L298N, iki adet DC motoru bağımsız olarak sürebilen çift kanallı (dual H-bridge) bir motor sürücü kartıdır. Arduino gibi mikrodenetleyicilerden gelen düşük akımlı sinyalleri kullanarak yüksek akım çeken motorları kontrol etmemizi sağlar.


Gerekli Malzemeler

  • Arduino Uno R3 (DIP Klon)
  • L298N Motor Sürücü Kartı
  • 10K Potansiyometre
  • 12V 1000 RPM Redüktörlü DC Motor
  • Buton
  • Harici güç kaynağı (12V önerilir)
  • Bağlantı kabloları

L298N Motor Sürücü Özellikleri

  • 4.8V – 46V çalışma gerilimi
  • Kanal başına maksimum 2A akım
  • Çift motor sürme kapasitesi (2 kanal)
  • Dahili 5V regülatör
  • Yüksek sıcaklık koruması
  • Kısa devre koruması
  • Motor yönüne göre LED göstergeler
  • Dahili soğutucu (heatsink)
  • Akım ölçümü için Current Sense pinleri

Bu özellikleri sayesinde L298N; sumo robotlar, çizgi izleyen robotlar, robot kollar ve otomasyon projelerinde sıkça tercih edilir.


L298N Pin Yapısı

Motor sürücünün temel pinleri:

  • IN1, IN2 → Motor yön kontrolü
  • ENA → Motor hız kontrolü (PWM)
  • OUT1, OUT2 → Motor bağlantısı
  • 12V → Motor besleme girişi
  • GND → Toprak
  • 5V → Regüle çıkış (bazı durumlarda giriş olarak da kullanılabilir)

Bağlantı Şeması (Mantık)

Motor Bağlantısı:

  • Motor uçları → OUT1 ve OUT2

Arduino – L298N Bağlantısı:

  • IN1 → Arduino D8
  • IN2 → Arduino D9
  • ENA → Arduino D10 (PWM)
  • GND → GND
  • 12V → Harici güç kaynağı

Potansiyometre:

  • Orta pin → A0
  • Diğer pinler → 5V ve GND

Buton:

  • Bir ucu → Arduino D7
  • Diğer ucu → GND

Çalışma Mantığı

Buton ile motor başlatma/durdurma veya yön değiştirme yapılabilir..

IN1 ve IN2 pinleri, motorun dönüş yönünü belirler:

IN1 = HIGH, IN2 = LOW → Saat yönü

IN1 = LOW, IN2 = HIGH → Saat yönü tersi

ENA pini, PWM sinyali ile motor hızını ayarlar.

Potansiyometre, analog değer üretir ve bu değer PWM’e çevrilerek hız kontrolü yapılır.

l298n-motor-surucu-kullanimi
  • Boyutları: 57mm x 43mm
  • Ağırlık: 29gr
  • Pin Bağlantıları:
  • ENA: Sol motor kanalını aktif etme pini
  • ENB: Sağ motor kanalını aktif etme pini
  • IN1: Sol motor 1. girişi
  • IN2: Sol motor 2. girişi
  • IN3: Sağ motor 1. girişi
  • IN4: Sağ motor 2. girişi
  • OUT1: Sol motor 1. çıkışı
  • OUT2: Sol motor 2. çıkışı
  • OUT3: Sağ motor 1. çıkışı
  • OUT4: Sağ motor 2. çıkışı
  • GND: Toprak bağlantısı
  • VS: Besleme voltaj girişi(4.8V-46V)
  • VSS: Kart besleme girişi (6V-12V)
l298-dc-motor-surucu-arduino-baglanti-semasi

Bağlantıları şemaya uygun yaptıktan sonra kodumuzu Arduino uno kartımıza yükleyip test edebiliriz.

int mot1 = 8;
int mot2 = 9;
int en1 = 10;
int dir = 6;
bool state = true;
int nob = A0;
int val=0;
void setup()
{
// pin ayarları
pinMode(mot1,OUTPUT);
pinMode(mot2,OUTPUT);
pinMode(en1,OUTPUT);
pinMode(dir,INPUT_PULLUP);
}
void loop()
{
// 10K potans oku
val = analogRead(nob);
// Okunan değerin 4/1 ini hız olarak yansıt
analogWrite(en1, val / 4);
// butona basılmışsa dur
if(digitalRead(dir)==LOW)
{
state=!state;
while(dir==LOW);
delay(300);
}
// eğer durmuşken butona basılmışsa çalış
if(state)
{
digitalWrite(mot1,HIGH);
digitalWrite(mot2,LOW);
}
else
{
digitalWrite(mot1,LOW);
digitalWrite(mot2,HIGH);
}
}

 

Direnc.net Blog sayfamızda sürekli olarak yeni içerikler paylaşmaya devam edeceğiz. Lütfen sormak istediğiniz soruları yorum olarak bize gönderin!

İlgili Makaleler

9 Yorum

  1. Merhaba motoru labview üzerinden kontrol etmek istiyorum programda bir degisiklik yapmak gerekiyor mu? biraz acil olursa sevinirim tesekkurler

  2. Pwm hızlarını butonlar ile kontrol etmem gerekiyor mesela 1. motor için hızlandır yavaşlattır ikinci motor için de aynı.Stop butonu da tanımlamam gerekiyor.Bir de pwm hızlarını göstermesi için lcd bağlamam lazım.Lütfen yardımcı olurmusunuz. Diploma için kalan tek ödevim.

  3. l298n kullanarak 1 buton ile 1 dc motor kontrol edilecek. butona basıldığında dc motor çalışacak, 2.defa basıldığında hızlanacak,3.defa basıldığında duracak.tek buton ile bunu nasıl yapabilirim?

  4. Merhaba motor sürücüye 12 V verip Arduino’ya 5 V verdim. Motor sürücünün bir tekine motor bağlayıp süre ayarı ile çalıştırmak istiyorum. Bu koddaki hata ne acaba? (pin 3 ü IN3 e,PIN4 ü boşa, motorun +,- sini OUT3 ve OUT4 e bağladım.)
    int motortrigger=3;
    void setup() {
    pinMode(motortrigger,OUTPUT);
    }
    void loop() {
    delay (5000);
    digitalWrite(motortrigger,HIGH);
    delay (1000);
    digitalWrite(motortrigger,LOW);
    }

  5. İyi günler, iki motor sürüyorum ama düz gitmiyor illa bir tanesi yavaş dönüyor, iki motor aynı pin değişikliği yaptığımda değiyor nasıl çözebilirim

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu