Arduino Uno ile L298N Motor Sürücü Kullanımı Nasıl Yapılır?
Bu projede, Arduino Uno ve L298N Motor Sürücü Kullanımı yaparak bir DC Motorun nasıl kontrol edileceğini göreceğiz. Bir DC Motorunu kontrol etmenin farklı yolları vardır, fakat L298N Motor Sürücüsünü kullanan Arduino DC Motor Kontrolü birçok nedenden dolayı oldukça popüler hale gelmektedir.
Gerekli Malzemeler:
- Arduino Uno R3 DIP Klon
- L298N Motor Sürücü
- 10K Potansiyometre
- 12V 1000 RPM Redüktörlü DC Motor
- Kırmızı Buton
L298N Motor Sürücü Özellikleri
L298N DC Step Motor Sürücü 4.8V-46V arasındaki iki motoru sürmek için hazırlanmış bir motor sürücü kartıdır. İki kanallı bu motor sürücü kanal başına 2A akım vermektedir.
Kart üzerinde L298N motor sürücü entegresi kullanılmıştır. Sumo, mini sumo, çizgi izleyen robotlarda ve çok çeşitli motor kontrol uygulamalarında kullanılabilir.
Birbirinden bağımsız olarak iki ayrı motoru kontrol edebilir. Kanal başına 2A akım verebilmektedir. Üzerinde dahili regülatörü vardır. Yüksek sıcaklık ve kısa devre koruması vardır. Motor dönüş yönüne göre yanan ledler vardır. Kart üzerinde dahili soğutucu vardır. Akım okuma (current sense) pinleri dışa verilmiş haldedir.
- 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)
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!
L298D için herhangi bir kütüphane eklememe gerek var mı?
Merhaba,
L298D için herhangi bir kütüphane eklemenize gerek yoktur.
Merhaba motoru labview üzerinden kontrol etmek istiyorum programda bir degisiklik yapmak gerekiyor mu? biraz acil olursa sevinirim tesekkurler
Merhaba,
Programda bir değişiklik yapmadan kullanabilirsiniz.
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.
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?
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);
}
daha büyük motorlar çalıştırabilmek için ne yapmak gerekir
İ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