Search Code

Koodka Arduino ee Module-ka Kontoroolka L9110 Dual DC Motor

Koodka Arduino ee Module-ka Kontoroolka L9110 Dual DC Motor

Cashirkan, waxaan sahamin doonaa sida loo xakameeyo laba matoor oo DC ah iyadoo la adeegsanayo module-ka kontoroolka matoorka L9110 ee labada matoor ee Arduino. Mashruucani wuxuu kuu suurtagelinayaa inaad maamusho jihada iyo xawaaraha matoorka kasta, taasoo u oggolaanaysa codsiyo kala duwan sida robotics iyo automation. Markaad dhammayso hagahan, waxaad yeelan doontaa faham cad oo ku saabsan sida loo xiro qaybaha iyo sida loo qoro koodhka lagama maarmaanka u ah si matoorradaagu u shaqeeyaan si habsami leh. Haddii aad u baahan tahay caddayn, hubi inaad fiiriso fiidiyowga (fiidiyowga 00:00).

Qaybaha Qalabka La Sharaxay

Module-ka kontoroolka matoorka L9110 ee labada matoor wuxuu kuu oggolaanayaa inaad xakameyso laba matoor isku mar. Wuxuu leeyahay laba wareeg oo H-bridge ah, kuwaas oo kuu suurtagelinaya inaad beddesho polarity-ga danabka matoorka. Tani waxay ka dhigan tahay inaad si fudud u beddeli karto jihada matoorka kasta adigoo toogga ku beddelaya biinanka xakamaynta. Module-ku wuxuu leeyahay afar biin oo muhiim ah: laba mid kasta oo matoorka ah si loo xakameeyo jihada wareegga. Markaad hal biin sare u dhigtid midna hoose, matoorku wuxuu ku wareegaa hal jihada; beddelka xaaladaha biinanka waxay ka dhigi doonaan inuu ku wareego jihada ka soo horjeeda. Fursaddani waxay lama huraan u tahay codsiyada sida robotics, halkaas oo aad u baahan tahay xakamayn sax ah oo ku saabsan dhaqdhaqaaqa matoorka.

Faahfaahinta Xaashida Xogta

Soo saarahaSTMicroelectronics
Nambarka qaybtaL9110
Danabka Logic/IO2.5–5.5 V
Danabka sahayda2.5–12 V
Qulqulka soo-saarka (kanaal kasta)1 A
Qulqulka ugu sarreeya (kanaal kasta)2 A
Hagaha soo noqnoqoshada PWM10 kHz
Heerarka caqabadaha gelinta0.8 V (hoose), 2.0 V (sare)
Hoos u dhaca danabka / RDS(on) / dhergid0.3 V at 1 A
Xadka kulaylka150 °C
BaakadDIP-16
Qoraalo / noocyoBadanaa waxaa loo isticmaalaa mashruucyada robotics-ka yaryar.

  • Hubi inaad si fiican u qaboojiso si ay u shaqeyso si joogto ah.
  • Ka ilaali calaamadaha PWM inay ka hooseeyaan 10 kHz si waxqabadka ugu fiican.
  • Isticmaal capacitors-ka kala-goynta meelaha u dhow xiriirada korontada si loo yareeyo buuqa.
  • Ka digtoonow xiriirada polarity-ga ee rogan; waxay dhaawici karaan module-ka.
  • Had iyo jeer hubi xadka qulqulka qiimeysan si aad uga fogaato kulaylka xad-dhaafka ah.

Tilmaamaha Xirista

Si aad u xirto module-ka kontoroolka matoorka L9110 ee labada matoor ee Arduino, ka bilow adigoo ku xira biinanka korontada. Ku xir biinka VCC ee L9110-ka soo-saarka 5V ee Arduino-ka, oo ku xir biinka GND mid ka mid ah biinanka dhulka ee Arduino-ka. Marka xigta, matoorka A, ku xir biinka A1A biinka dhijitaalka ah ee 2 ee Arduino-ka iyo biinka A1B biinka dhijitaalka ah ee 3. Kadib, matoorka B, ku xir biinka B1A biinka dhijitaalka ah ee 8 iyo biinka B1B biinka dhijitaalka ah ee 9. Hubi in matoorrada si sax ah loogu xiro soo-saarkooda ku habboon ee module-ka L9110.
Arduino-wirign-for-L9110-motor-driver

Tusaalooyinka Koodhka & Sharaxaad

Shaqada setup-ka, waxaan u baahanahay inaan ku qeexno biinanka xakamaynta sida soo-saarayaal. Tani waxay lama huraan u tahay Arduino si uu si wax ku ool ah u xakameeyo jihada matoorka:
void setup() {
  pinMode(B1A,OUTPUT);// ku qeex biinka sida soo-saarka
  pinMode(B1B,OUTPUT);
  
  pinMode(A1A,OUTPUT);
  pinMode(A1B,OUTPUT);    
  delay(3000);
}
Qaybtan koodhka ah waxay dejisaa biinanka xakamaynta matoorka, iyadoo hubinaysa in Arduino uu u soo diri karo calaamado module-ka L9110. Loop-ka ugu weyn ee barnaamijka wuxuu xakameeyaa matoorrada isagoo u yeeraya shaqooyinka `motorA` iyo `motorB` iyadoo la adeegsanayo cabbirro kala duwan si loo beddelo jihada:
void loop() {
  motorA('R');// U wareeji matoorka A MIDIG
  delay(2000);
  motorA('L');// U wareeji matoorka A BIDIX
  delay(2000);   
  motorA('O');// DAMI matoorka A
  delay(2000); 
  ...
}
Qaybtan, matoorrada waxaa laga dhigayaa inay u wareegaan midig iyo bidix, iyadoo la adeegsanayo daahidyo dhexdooda si loo arko isbeddelka jihada. Shaqada `motorA` waxaa lagu qeexay inay xakamayso matoorka A iyadoo ku saleysan jihada la geliyo:
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);    
  }
}
Shaqadani waxay hubisaa jihada la bixiyay oo waxay dejisaa biinanka xakamaynta si waafaqsan si loo wareejiyo matoorka jihada la doonayo ama loo damiyo.

Muuujin / Waxa Laga Filanayo

Markaad wado koodhka, waxaad arki doontaa matoorrada oo isku beddelaya wareegga bidix iyo midig. Daahiduhu waxay kuu oggolaanayaan inaad si cad u aragto isbeddelka jihada. Ka digtoonow khaladaadka caadiga ah sida xiriirada rogan, kuwaas oo u horseedi kara dhaqan lama filaan ah ama dhaawac qaybaha. Intaas waxaa dheer, hubi in sahayda korontadaadu ku filan tahay matoorrada aad isticmaalayso (fiidiyowga 00:00).

Sawirro

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
Luqadda: 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

Waad u baahan tahay

Kheyraadka & Tixraacyada

Wali wax kaydsan ah oo weli ma jiro.

Faylasha📁

Waraaqa xogta (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

Faylka Fritzing