Örnekler ve Projeler

L298N Motor Sürücüsünü Kullanarak Arduino DC Motor Kontrolü

Bu projemizde Arduino ve L298N Motor Driver kullanarak bir DC Motorun nasıl kontrol edileceğini göreceğiz. Bir DC Motoru kontrol etmenin farklı yolları vardır ancak L298N Motor Sürücüsünü kullanan Arduino DC Motor Kontrolü birçok nedenden dolayı oldukça popüler hale gelmektedir.

DC Motor, yeni başlayanların ve hobilerin karşılaştığı en basit motordur. Çalıştırması çok basit: motorun iki ucunu bir pilin iki terminaline bağlayın ve işte! Motorunuz dönmeye başlar.

Kabloları değiştirirseniz, yani polariteyi tersine çevirirseniz, motor ters yönde dönecektir. Bu kadar basit.

Basit bir DC Motorun dönüş hızını kontrol etmek istiyorsanız, PWM DC Motor Kontrolü adı verilen bir teknik var. Bu teknik tarafından üretilen Darbe Genişliği Modülasyonu veya PWM sinyali, DC Motora iletilen ortalama voltajı kontrol etmemizi sağlayacaktır.

DC Motorun PWM ile Hız Kontrolü

PWM tekniği kullanılarak DC Motora uygulanan voltajın ortalama değeri, gücün çok yüksek bir oranda açılıp kapatılarak kontrol edilir. Bu geçişin frekansı birkaç on kilo Hertz mertebesinde olacaktır.

Şimdi, DC Motora uygulanan ortalama voltaj , PWM Sinyalinin Görev Döngüsü olarak adlandırılan şeye bağlı olacaktır. Bir PWM Sinyalinin Görev Döngüsü, sinyalin AÇIK veya YÜKSEK olduğu sürenin sinyalin toplam süresine, yani AÇIK ve KAPALI zamanlarının toplamından başka bir şey değildir.

Görev Döngüsü genellikle yüzde olarak ifade edilir ve aşağıdaki şekil , sırasıyla %0, %25, %50, %75 ve %100 farklı görev döngülerine sahip bir 12V kaynağının farklı PWM Sinyallerini temsil eder.

Artık bir DC Motora sağlanacak ortalama voltajı kontrol ettiğimize göre, bu voltajı motora nasıl uygularız? İşte Transistör kullanımı geliyor.

Bu örnekte Arduino gibi herhangi bir kaynaktan gelen PWM Sinyali, bir MOSFET’in kapısına verilebilir ve PWM Sinyalinin görev döngüsüne bağlı olarak DC Motorun hızı değişecektir.

Aşağıdaki görüntü, Arduino’dan bir PWM çıkışının bir MOSFET’e verildiği ve 12V DC Motorun MOSFET üzerinden bağlandığı basit bir devre şemasını göstermektedir.

Bu devrenin kodu aşağıda verilmiştir. Bu kodu kullanarak, Arduino bir DC Motorun hızını solma şeklinde değiştirecektir, yani hızı kademeli olarak zirveye çıkaracak ve ardından hızı kademeli olarak durduracak şekilde azaltacaktır.

int PWMPin = 10;
int motorSpeed = 0

void setup() 
{
  
}

void loop() 
{
  
  for (motorSpeed = 0 ; motorSpeed <= 255; motorSpeed += 10) 
  {
    analogWrite(PWMPin, motorSpeed);
    delay(30);
  }

  for (motorSpeed = 255 ; motorSpeed >= 0; motorSpeed -= 10) 
  {
    analogWrite(PWMPin, motorSpeed);
    delay(30);
  }
}

Bu devre motorun hızını kontrol etmek için iyidir ancak dönüş yönünü değiştirmek için etkili bir yol değildir. Her seferinde motorun uçlarını ters çevirmeden dönüş yönünü değiştirmek için H-Bridge adı verilen özel bir devre kullanmanız gerekir.

H-Bridge kullanarak DC Motor Kontrolü

H-Bridge, transistörler (BJT veya MOSFET) gibi dört anahtarlama elemanından oluşan ve kabloları değiştirmeden motoru her iki yönde de çalıştırabilen basit bir elektronik devredir.

“H-Bridge” ismi, merkezde “H” harfini oluşturan dört transistör ve bir motordan oluşan bağlantının görünüşünü ifade eder.

Dört transistör ve bir motor kullanan basit bir H-Bridge bağlantısı aşağıda gösterilmiştir. Aynı anda iki özel transistörü etkinleştirerek, motordaki akımın akışını ve dolayısıyla dönüş yönünü kontrol edebiliriz.

Yukarıdaki devredeki iki kontrol girişi A ve B, motorun dönüş yönünü belirleyecektir. A DÜŞÜK ve B YÜKSEK ise, Q1 ve Q4 transistörleri açılır ve akımın motordan belirli bir yönde akmasına izin verir.

Kontrol girişi A YÜKSEK ve B DÜŞÜK yapılırsa, Q2 ve Q3 transistörleri açılır ve motordaki akımın akışı ve dolayısıyla dönüş yönü tersine çevrilir.

Hız kontrolü için PWM tekniği ve yön kontrolü için H-Bridge bağlantısı gibi özellikleri birleştirerek, bir DC Motor üzerinde tam bir kontrole sahip olabilirsiniz.

Etkili bir H-Bridge bağlantısı yapmak için transistör kullanmak sıkıcıdır. Bu amaçla piyasada özel H-Bridge Motor Sürücü IC’si mevcuttur ve iki yaygın IC, L293D ve L298N’dir.

Daha önceki bir projede L293D kullanarak bir DC Motorun hızının nasıl kontrol edileceğini zaten görmüştük. Bu projemizde daha gelişmiş L298N Motor Sürücüsü üzerine odaklanacağız ve PWM tekniğini kullanarak L298N Motor Sürücüsü kullanarak Arduino DC Motor Kontrolünü göreceğiz. 

L298N Motor Sürücüsü Hakkında Kısa Bir Not

L298N Motor Sürücüsü IC, iki tam köprü sürücüsüne sahip 15 uçlu yüksek voltajlı, yüksek akımlı bir Motor Sürücüsü IC’sidir. L298N IC’nin mantık seviyeleri standart TTL ile uyumludur ve IC, DC Motorlar, Step Motorlar, Röle vb. gibi farklı endüktif yükleri sürmek için kullanılabilir.

Aşağıdaki resim, Multiwatt Paketteki (Çok Kurşunlu Güç Paketi) L298N IC’nin Pin Şemasını göstermektedir.

L298N Motor Sürücüsü IC, bir çift tam köprü sürücü IC olduğundan, ayrı girişlerle aynı anda iki motoru kontrol edebilirsiniz. Lojik besleme gerilimi 5V’tur ancak motor besleme gerilimi 45V’a kadar çıkabilir. Kanal başına tepe çıkış akımı 2A’dır.

Genel olarak, L298N Sürücüsü, iki DC Motoru kontrol etmek için gerekli tüm bileşenleri ve konektörleri içeren modüller olarak mevcuttur. Böyle bir modül aşağıda gösterilmiştir. Bu modülde birkaç önemli bileşeni açıklayacağım.

L298N Motor Sürücü Modülü, iki motoru bağlamak için iki adet 2 pimli vidalı terminal bloğundan oluşur. Ayrıca, iki etkinleştirme girişini ve dört giriş pimini (her motor için iki tane) bağlamak için altı pimli erkek başlığı vardır.

Motora besleme voltajını vermeniz gereken 3 pimli vidalı bir terminal bloğu vardır. Kullanılan motorlar 12V veya daha düşük olarak derecelendirilmişse, 12V besleme bu vidalı terminal üzerinden verilir ve yerleşik 5V regülatör, L298N IC’ye 5V mantık beslemesi sağlar.

Bu regüle edilmiş 5V’a 3 pinli vidalı terminal bloğundaki üçüncü pin üzerinden de erişebilirsiniz. 12V’a kadar besleme gerilimleri için 3 pinli vidalı terminalin yanında sağlanan jumper takılı olmalıdır, çünkü bu jumper yerleşik regülatörü etkinleştirecektir. 3 pinli vidalı terminalin üçüncü pininden gelen 5V çıkış, sadece jumper devreye girdiğinde, yani besleme voltajı 12V olduğunda kullanılabilir. Bu 5V çıkış, Arduino Kartınıza güç sağlamak için kullanılabilir.

Besleme voltajı 12V’den büyükse, regülatöre zarar verebileceğinden jumper’ı çıkarın. Bu durumda, L298N IC’ye 5V’luk mantık beslemesi, 3 pimli vidalı terminalin üçüncü pimi üzerinden verilir.

L298N kullanarak Arduino DC Motor Kontrolü

Şimdi Arduino ve L298N IC kullanarak bir DC Motorun hızını ve yönünü kontrol ettiğimiz basit bir devre göreceğiz. Bu proje için birkaç ek bileşene ihtiyacınız var ve tam liste aşağıda verilmiştir. L298N Projesi kullanılarak Arduino DC Motor Kontrolünde, PWM Signal ve L298N (H-Bridge) kombinasyonunu kullanarak basit bir DC Motorun hem fonksiyonlarını yani hızını hem de dönüş yönünü kontrol edeceğiz.

Devre şeması

Gerekli Bileşenler

  • Arduino UNO
  • L298N Motor Sürücü Modülü
  • 12V DC Motor  
  • 100KΩ Potansiyometre  
  • Basmlı Buton 
  • 12V Güç Kaynağı  
  • Bread Board
  • Bağlantı Telleri  
int mot1 = 8;
int mot2 = 9;
int en1 = 10;
int dir = 6;
bool state = true;
int nob = A0;
int val=0;



void setup() 
{
  pinMode(mot1,OUTPUT);
  pinMode(mot2,OUTPUT);
  pinMode(en1,OUTPUT);
  pinMode(dir,INPUT_PULLUP);
  
}

void loop() 
{
  
  val = analogRead(nob);   
  
  analogWrite(en1, val / 4);
  
  if(digitalRead(dir)==LOW)
  {
     state=!state;
     while(dir==LOW);
     delay(300);
  }
  if(state)
  {
    digitalWrite(mot1,HIGH);
    digitalWrite(mot2,LOW);
  }
  else
  {
    digitalWrite(mot1,LOW);
    digitalWrite(mot2,HIGH);
  }
  

}

Uygulamalar 

  • L298N Motor Sürücü kullanarak Arduino DC Motor Kontrolü projesi birçok gelişmiş projenin başlangıç ​​adımı olabilir. 
  • Hemen hemen tüm robotların tekerlekleri vardır ve bu tekerleklere bağlı motorları kontrol etmemiz gerekir. Bu nedenle, herhangi bir Arduino tabanlı robot, L298N kullanarak bu tür motor kontrolünü uygulayabilir. 
  • L298N Motor Sürücünün Robotik Uygulamalarından bazıları El Hareketi Kontrollü Robot, Çizgi İzleyen Robot , Engelden Kaçınan Robot vb.

Bu makale buradan çevrilmiştir.

Related posts

RGB APDS-9960 Kullanan Ziyaretçi Sayacı

Ömer Ersin

MAX6675 K-Termokupl – Dijital Dönüştürücü IC kullanan Arduino PID Sıcaklık Kontrol Cihazı

Ömer Ersin

Arduino ile tehlike anında cep telefonumuzdan arama veya mesaj gönderimi.

Ömer Ersin