top of page

L9110 İle 2 Adet DC Motor Kontrolü

L9110 2 kanallı DC motor sürücü modül kartıdır. Bu modül her biri 800mA olmak üzere sürekli akımı sürdürebilen iki bağımsız motor sürücü çipine sahiptir. Kart 2.5V ile 12V arasında çalıştırılabilir. Böylece kart bir çok mikrodenetleyicilerle kullanılabilir. H-köprü motor kontrol kartıdır. Modül aynı anda iki DC Motor veya tek fazlı 4 hat 2 tip Step Motor ile sürülebilir. Yerleşik LED, güç verildiğinde yanacaktır. Motor yönü için normal dijital yüksek-düşük çıkış pinlerini kullanabilirsiniz.

Bu projemizde DC Motorların aynı anda kontrolünü gözlemleyeceğiz. Kullanacağımız malzemler aşağıda verilmiştir.

  • Arduino UNO

  • 2 Adet DC Motor

  • L9110 Motor Sürücü

  • Jumper Kablo

Devremizin şematiği aşağıda verilmiştir.

Motor pinlerini tanımlayarak başlıyoruz.

const int A1A = 2;
const int A1B = 3;
const int B1A = 8;
const int B1B = 9;

void setup() içerisinde pinlerin çıkışlarını tanımlıyoruz.

void setup() {
  pinMode(B1A,OUTPUT);
  pinMode(B1B,OUTPUT);
  
  pinMode(A1A,OUTPUT);
  pinMode(A1B,OUTPUT);    
  delay(3000);
}

void loop() içerisinde "R" harfini sağ için, "L" harfini sol için ve "O" harfini durması için tanımlayıp bir düzen oluşturuyoruz.

void loop() {

  motorA('R');
  delay(2000);
   motorA('L');
  delay(2000);   
  motorA('O');
  delay(2000); 
    
  motorB('R');
  delay(2000);
   motorB('L');
  delay(2000); 
  motorB('O');
  delay(2000); 
   
  motorA('R');
  motorB('R');  
  delay(2000);
  motorA('L');
  motorB('L');     
  delay(3000);
  motorA('O');
  motorB('O');
  delay(5000);
   
}

A Motoru için fonksiyon oluşturup hareket edişlerini kodluyoruz.

void motorA(char d)
{
  if(d =='R'){
    digitalWrite(A1A,LOW);
    digitalWrite(A1B,HIGH); 
  }else if (d =='L'){
    digitalWrite(A1A,HIGH);
    digitalWrite(A1B,LOW);    
  }else{

    digitalWrite(A1A,LOW);
    digitalWrite(A1B,LOW);    
  }
}

Aynı işlemleri B Motoru içinde yapıyoruz.

void motorB(char d)
{

    if(d =='R'){
      digitalWrite(B1A,LOW);
      digitalWrite(B1B,HIGH); 
    }else if(d =='L'){
      digitalWrite(B1A,HIGH);
      digitalWrite(B1B,LOW);    
    }else{
     
      digitalWrite(B1A,LOW);
      digitalWrite(B1B,LOW);     
    }

}

Kodların tamamı aşağıda verilmiştir.

const int A1A = 2;
const int A1B = 3;

const int B1A = 8;
const int B1B = 9;

void setup() {
  pinMode(B1A,OUTPUT);
  pinMode(B1B,OUTPUT);
  
  pinMode(A1A,OUTPUT);
  pinMode(A1B,OUTPUT);    
  delay(3000);
}

void loop() {

  motorA('R');
  delay(2000);
   motorA('L');
  delay(2000);   
  motorA('O');
  delay(2000); 
    
  motorB('R');
  delay(2000);
   motorB('L');
  delay(2000); 
  motorB('O');
  delay(2000); 
   
  motorA('R');
  motorB('R');  
  delay(2000);
  motorA('L');
  motorB('L');     
  delay(3000);
  motorA('O');
  motorB('O');
  delay(5000);
   
}

void motorA(char d)
{
  if(d =='R'){
    digitalWrite(A1A,LOW);
    digitalWrite(A1B,HIGH); 
  }else if (d =='L'){
    digitalWrite(A1A,HIGH);
    digitalWrite(A1B,LOW);    
  }else{
    digitalWrite(A1A,LOW);
    digitalWrite(A1B,LOW);    
  }
}

void motorB(char d)
{

    if(d =='R'){
      digitalWrite(B1A,LOW);
      digitalWrite(B1B,HIGH); 
    }else if(d =='L'){
      digitalWrite(B1A,HIGH);
      digitalWrite(B1B,LOW);    
    }else{
     
      digitalWrite(B1A,LOW);
      digitalWrite(B1B,LOW);     
    }

}

Comments


Son Paylaşımlar

banner300900.gif
banner300900.gif
bottom of page