22 Haziran 2015 Pazartesi

L298N ile Yarış Başlıyor

Merhaba arkadaşlar

Bugün sizlerle L298N Motor sürücüsünü inceleyeceğiz.

Eminim bir çoğumuz motorun arkasına pil bağlayıp bir şeyler yapmışızdır. Bugün ise onu bir shield  ve arduino sayesinde programlamayı öğreneceğiz ileriye doğru uzaktan kumanda edeceğiz. 

298N SHİELD PİN(BACAKLALRI)


  1.  DC motor 1 "+" yada step motor A+
  2.  DC motor 1 "-" yada step motor A-
  3.  12V jumper'i eğer jumperi kaldırır isek 35V'a  kadar besliyebiliriz. Eğerki jumper takılı ise 12V ile besleyiniz.
  4.  Jumper takılı ise 12V girişi takılı değilse 12-35V arası giriş.
  5. GND
  6. 5V Girişi isterseniz jumper takılı ise Arduinoyu buradan besliyebilirsiniz.
  7. 1. Motorun pwm bacağı (Enable)
  8. İN_A1
  9. İN_A2
  10. İN_B1
  11. İN_B2
  12. 2. Motorun pwm bacağı (Enable)
  13. DC motor 2 "+" yada step motor B+
  14. DC motor 2 "-" yada step motor B-

Kullanılacak malzemeler

  • Arduino geliştirme kartı
  • L298N Shield
  • 2 adet dc Motor
  • Jumper kablolar (dişi-erkek* erkek-erkek)

Bağlantı Şeması


Kullanılacak Kodlar

// L298N ile arduino arasındaki bağlantı
// 1. Motor
int enA = 10;
int in1 = 9;
int in2 = 8;
// 2. Motor 
int enB = 5;
int in3 = 7;
int in4 = 6;
void setup()
{
  // Tüm motor pinlerini OUTPUT olarak ayarladık
  pinMode(enA, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
}
void demoBir()
{
  // bu fonksiyo  iki kotoruda düzgün bir hızla gitmesini sağlıyacak
  // 1. motoru çalıştır
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  //motorun hızını 0-255 arası bir hız ayarla
  analogWrite(enA, 200);
  // 2. Motoru çalıştır
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  // motorun hızını 0-255 arası bir hız ayarla
  analogWrite(enB, 200);
  delay(2000);
  // şimdi motorun yönünü değiştirelim
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);  
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH); 
  delay(2000);
  // motorları durdur
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);  
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
}
void demoIki()
{
  // motorların ikisinide durmuş bir halden yavaşca hızlandırıp
  // son hızına kadar çıkaracağız
  // motorları çalıştır
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);  
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH); 
  // motoru 0 hızdan maksimum hıza çıakr
  for (int i = 0; i < 256; i++)
  {
    analogWrite(enA, i);
    analogWrite(enB, i);
    delay(20);
  } 
  // motorları maksimum hızdan 0 hıza düşür
  for (int i = 255; i >= 0; --i)
  {
    analogWrite(enA, i);
    analogWrite(enB, i);
    delay(20);
  } 
  // motorları durdur
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);  
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);  
}
void loop()
{
  demoBir();        //sürekli demo1 ve demo2 yi uygulaması için buraya yazdık
  delay(1000);
  demoIki();
  delay(1000);
}

----------------------------------------------------------------------------------------------------------------------

Herkese iyi çalışmalar dilerim dostlar.

Hiç yorum yok:

Yorum Gönder