Search Code

Lambar Arduino don L9110 Dual DC Motor Controller Module

Lambar Arduino don L9110 Dual DC Motor Controller Module

A cikin wannan koyawa, za mu bincika yadda ake sarrafa motocin DC guda biyu ta amfani da modul ɗin sarrafa motar L9110 guda biyu tare da Arduino. Wannan aikin zai ba ka damar sarrafa alkibla da saurin kowace mota, wanda zai ba da damar aikace-aikace masu yawa kamar robotics da automation. A ƙarshen wannan jagorar, za ka sami cikakkiyar fahimta kan yadda ake haɗa kayan aikin da rubuta lambar da ake buƙata don samun motocin ka suna aiki cikin sauƙi. Idan kana buƙatar ƙarin bayani, ka tabbata ka duba bidiyon (a cikin bidiyo a 00:00).

Bayanin Kayan Aiki

Modul ɗin sarrafa motar DC L9110 guda biyu yana ba ka damar sarrafa motoci biyu a lokaci ɗaya. Yana da da'irori na H-bridge guda biyu, waɗanda ke ba ka damar juya polarity na wutar motar. Wannan yana nufin za ka iya sauya alkiblar kowace mota cikin sauƙi ta hanyar kunna fil ɗin sarrafawa. Modul ɗin yana da filaye huɗu masu mahimmanci: biyu don kowace mota don sarrafa alkiblar juyawa. Lokacin da ka saita fil ɗaya high da ɗayan low, motar tana juyawa a wata alkibla; juya yanayin fil ɗin zai sa ta juyawa a alkibla ta gaba. Wannan sassauci yana da mahimmanci ga aikace-aikace kamar robotics, inda kake buƙatar sarrafa motsin mota daidai.

Bayanan Datasheet

Mai ƘirƙiraSTMicroelectronics
Lambar sashiL9110
Wutar Logic/IO2.5–5.5 V
Wutar samarwa2.5–12 V
Ƙarfin fitarwa (kowace tashar)1 A
Ƙarfin kololuwa (kowace tashar)2 A
Jagorar mitar PWM10 kHz
Ƙofofin shigar da dabaru0.8 V (low), 2.0 V (high)
Ragewar wutar / RDS(on) / saturation0.3 V a 1 A
Iyakokin zafi150 °C
KunshinDIP-16
Bayanan kula / bambance-bambanceAna amfani da shi sosai a ƙananan ayyukan robotics.

  • Ka tabbatar da ingantaccen heat-sinking don ci gaba da aiki.
  • Ka kiyaye siginonin PWM ƙasa da 10 kHz don ingantaccen aiki.
  • Yi amfani da capacitors na decoupling kusa da haɗin wutar don rage amo.
  • Ka kiyaye haɗin polarity da aka juya; suna iya lalata modul ɗin.
  • Koyaushe ka duba iyakokin ƙarfin da aka ƙididdige don guje wa zafi mai yawa.

Umarnin Haɗawa

Don haɗa modul ɗin sarrafa motar DC L9110 guda biyu tare da Arduino, fara da haɗa fil ɗin wutar. Haɗa fil ɗin VCC akan L9110 zuwa fitowar 5V akan Arduino, kuma haɗa fil ɗin GND zuwa ɗaya daga cikin fil ɗin ƙasa na Arduino. Na gaba, don motar A, haɗa fil ɗin A1A zuwa fil ɗin dijital 2 akan Arduino da fil ɗin A1B zuwa fil ɗin dijital 3. Sa'an nan, don motar B, haɗa fil ɗin B1A zuwa fil ɗin dijital 8 da fil ɗin B1B zuwa fil ɗin dijital 9. Ka tabbata an haɗa motocin daidai zuwa fitowar su na musamman akan modul ɗin L9110.
Arduino-wirign-for-L9110-motor-driver

Misalan Lamba & Bayani

A cikin aikin setup, muna buƙatar ayyana fil ɗin sarrafawa a matsayin fitarwa. Wannan yana da mahimmanci don Arduino ya sarrafa alkiblar motar yadda ya kamata:
void setup() {
  pinMode(B1A,OUTPUT);// ayyana fil a matsayin fitarwa
  pinMode(B1B,OUTPUT);
  
  pinMode(A1A,OUTPUT);
  pinMode(A1B,OUTPUT);    
  delay(3000);
}
Wannan ɓangaren lambar yana saita fil ɗin sarrafa motar, yana tabbatar da cewa Arduino na iya aika siginoni zuwa modul ɗin L9110. Babban madauki na shirin yana sarrafa motocin ta hanyar kiran ayyukan `motorA` da `motorB` tare da sigogi daban-daban don sauya alkibla:
void loop() {
  motorA('R');// Juya motar A zuwa DAMA
  delay(2000);
  motorA('L');// Juya motar A zuwa HAGU
  delay(2000);   
  motorA('O');// Kashe motar A
  delay(2000); 
  ...
}
A cikin wannan ɓangaren, ana sa motocin su juya dama da hagu, tare da jinkiri a tsakanin don lura da canje-canjen alkibla. Aikin `motorA` an ayyana shi don sarrafa motar A bisa ga alkiblar da aka shigar:
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);    
  }
}
Wannan aikin yana duba alkiblar da aka bayar kuma yana saita fil ɗin sarrafawa daidai don juya motar a alkiblar da ake so ko kashe ta.

Nuni / Abin da Za Ka Yi Tsammani

Lokacin da ka kunna lambar, ya kamata ka ga motocin suna canzawa tsakanin juyawar hagu da dama. Jinkirin yana ba ka damar lura da canje-canjen alkibla a fili. Ka kiyaye daga matsalolin gama-gari kamar haɗin da aka juya, waɗanda zasu iya haifar da hali marar tsammani ko lalacewar kayan aikin. Bugu da ƙari, ka tabbata cewa samar da wutar ka ya isa ga motocin da kake amfani da su (a cikin bidiyo a 00:00).

Hotuna

L9110_motor_driver_module-1
L9110_motor_driver_module-1
L9110_motor_driver_module-12
L9110_motor_driver_module-12
L9110_motor_driver_module-3
L9110_motor_driver_module-3
Arduino-wirign-for-L9110-motor-driver
Arduino-wirign-for-L9110-motor-driver
107-Arduino code for an L9110 dual DC motor controller module
Harshe: C++
/*
 * Display number on a seven-segment display with Arduino
 * Written by Ahmad Shamshiri for Robojax.com
Date modified: Jun 11, 2018 at 17:20 in Ajax, Ontario, Canada
Watch video instructions for this code: https://youtu.be/-g6Q9lSHDzg

Code is provided for free AS IS without warranty. 
You can share this code as long as you keep the above note intact.
 */

const int A1A = 2;//define pin 2 for A1A
const int A1B = 3;//define pin 3 for A1B

const int B1A = 8;//define pin 8 for B1A
const int B1B = 9;//define pin 9 for B1B




void setup() {
  pinMode(B1A,OUTPUT);// define pin as output
  pinMode(B1B,OUTPUT);
  
  pinMode(A1A,OUTPUT);
  pinMode(A1B,OUTPUT);    
  delay(3000);
}

void loop() {

  motorA('R');// Turn motor A to RIGHT
  delay(2000);
   motorA('L');// Turn motor A to LEFT
  delay(2000);   
  motorA('O');// Turn motor A OFF
  delay(2000); 
    
  motorB('R');// Turn motor B to RIGHT
  delay(2000);
   motorB('L');// Turn motor B to LEFT
  delay(2000); 
  motorB('O');// Turn motor B OFF
  delay(2000); 
   
  motorA('R');// Turn motor A to RIGHT
  motorB('R'); // Turn motor A to RIGHT 
  delay(2000);
  motorA('L');// Turn motor A to LEFT
  motorB('L');// Turn motor B to LEFT     
  delay(3000);
  motorA('O');// Turn motor A OFF
  motorB('O');// Turn motor B OFF
  delay(5000);
   
}

/*
 * @motorA
 * Activation rotation of motor A
 * d is the direction
 * R = Right
 * L = Left
 */
void motorA(char d)
{
  if(d =='R'){
    digitalWrite(A1A,LOW);
    digitalWrite(A1B,HIGH); 
  }else if (d =='L'){
    digitalWrite(A1A,HIGH);
    digitalWrite(A1B,LOW);    
  }else{
    //Robojax.com L9110 Motor Tutorial
    // Turn motor OFF
    digitalWrite(A1A,LOW);
    digitalWrite(A1B,LOW);    
  }
}// motorA end


/*
 * @motorB
 * Activation rotation of motor B
 * d is the direction
 * R = Right
 * L = Left
 */
void motorB(char d)
{

    if(d =='R'){
      digitalWrite(B1A,LOW);
      digitalWrite(B1B,HIGH); 
    }else if(d =='L'){
      digitalWrite(B1A,HIGH);
      digitalWrite(B1B,LOW);    
    }else{
    //Robojax.com L9110 Motor Tutorial
    // Turn motor OFF      
      digitalWrite(B1A,LOW);
      digitalWrite(B1B,LOW);     
    }

}// motorB end

Abin da zaka iya bukata

Albarkatun da kuma shafukan da za a duba

Babu kayan aiki tukuna.

Fayiloli📁

Takardar bayanai (pdf)

  • L9110 Motor driver module datasheet
    L9110 motor driver module datasheet covering pinout, specifications, and application circuit for driving DC motors.
    robojax_L9110_datasheet.pdf 0.20 MB

Fayil Fritzing