Search Code

Koodu Arduino fun Modulu Oludari Motor DC Meji L9110

Koodu Arduino fun Modulu Oludari Motor DC Meji L9110

Nínú ẹ̀kọ́ yìí, a óò ṣàwárí bí a ṣe lè ṣàkóso àwọn mọ́tọ̀ DC méjì nípa lílo ẹ̀rọ̀ amúṣiṣẹ́ L9110 dual motor controller module pẹ̀lú Arduino. Iṣẹ́ yìí yóò jẹ́ kí o lè ṣàkóso ìtọ́sọ́nà àti ìyára ọ̀kọ̀ọ̀kan mọ́tọ̀, tí yóò gbà ọ́ láàyè fún àwọn ìlò púpọ̀ bíi róbọ́tìkì àti ìmúṣe fúnra rẹ̀. Ní ìparí ìtọ́sọ́nà yìí, o óò ní òye pípé nípa bí a ṣe ń so àwọn ẹ̀yà pọ̀ àti kíkọ kóòdù tí ó pọn dandan láti mú kí àwọn mọ́tọ̀ rẹ ṣiṣẹ́ dáradára. Bí o bá nílò ìpàlápàlà, rí i pé o wo fídíò náà (nínú fídíò ní 00:00).

Àlàyé Ohun Èlò

Ẹ̀rọ̀ L9110 dual DC motor controller module gbà ọ́ láàyè láti ṣàkóso àwọn mọ́tọ̀ méjì ní ìgbà kan náà. Ó ní àwọn H-bridge circuits méjì, tí ó jẹ́ kí o lè yí polarity fún folti mọ́tọ̀ padà. Èyí túmọ̀ sí pé o lè yí ìtọ́sọ́nà ọ̀kọ̀ọ̀kan mọ́tọ̀ padà ní rọrùn nípa títẹ àwọn pin ìṣàkóso. Ẹ̀rọ̀ náà ní àwọn pin pàtàkì mẹ́rin: méjì fún ọ̀kọ̀ọ̀kan mọ́tọ̀ láti ṣàkóso ìtọ́sọ́nà yíyí. Nígbà tí o bá gbé pin kan ga àti èkejì rẹ̀ rẹ̀lẹ̀, mọ́tọ̀ yóò yí ní ìtọ́sọ́nà kan; yíyí àwọn ipò pin padà yóò mú kí ó yí ní ìtọ́sọ́nà òdìkejì. Ìrọ̀rùn yìí ṣe pàtàkì fún àwọn ìlò bíi róbọ́tìkì, níbi tí o ti nílò ìṣàkóso pípé lórí àwọn ìṣísẹ̀ mọ́tọ̀.

Àwọn Àlàyé Datasheet

OlùṣeSTMicroelectronics
Nọ́mbà ẹ̀yàL9110
Foltí Logic/IO2.5–5.5 V
Foltí ìpèsè2.5–12 V
Ìwọ̀n ìjàde (fún ikanni)1 A
Ìwọ̀n tó pọ̀jù (fún ikanni)2 A
Ìtọ́sọ́nà ìgbohùnsáfẹ́fẹ́ PWM10 kHz
Àwọn ìpele ìwọ̀n ìṣàkóso0.8 V (rẹ̀lẹ̀), 2.0 V (ga)
Ìrẹ̀wẹ́sì folti / RDS(on) / ìkún0.3 V ní 1 A
Àwọn ìwọ̀n ooru150 °C
ÀpótíDIP-16
Àwọn àkíyèsí / àwọn oríṣiríṣiWọ́n ń lò ní ọ̀pọ̀lọpọ̀ nínú àwọn iṣẹ́ róbọ́tìkì kéékèèké.

  • Rí i pé o fi heat-sink tó yẹ fún iṣẹ́ tí ń lọ lọ́wọ́.
  • Mú àwọn àmì PWM wà lábẹ́ 10 kHz fún iṣẹ́ tó dára jùlọ.
  • Lo àwọn capacitors ìyọkúrò níbi àwọn ìsopọ̀ agbára láti dín àríwo kù.
  • Ṣọ́ra fún àwọn ìsopọ̀ polarity tí ó yí padà; wọ́n lè ba ẹ̀rọ̀ náà jẹ́.
  • Ṣàyẹ̀wò àwọn ìwọ̀n ìwọ̀n tí a kà nígbà gbogbo láti yẹra fún gbígbóná janjan.

Àwọn Ìtọ́sọ́nà Ìsopọ̀

Láti so L9110 dual DC motor controller module pọ̀ pẹ̀lú Arduino, bẹ̀rẹ̀ nípa sísopọ̀ àwọn pin agbára. So pin VCC lórí L9110 pọ̀ sí ìjàde 5V lórí Arduino, kí o sì so pin GND pọ̀ sí ọ̀kan nínú àwọn pin ilẹ̀ Arduino. Nígbà tí o bá ṣe bẹ́ẹ̀, fún mọ́tọ̀ A, so pin A1A pọ̀ sí pin onímọ̀ 2 lórí Arduino àti pin A1B pọ̀ sí pin onímọ̀ 3. Nígbà náà, fún mọ́tọ̀ B, so pin B1A pọ̀ sí pin onímọ̀ 8 àti pin B1B pọ̀ sí pin onímọ̀ 9. Rí i pé àwọn mọ́tọ̀ ti sopọ̀ dáradára sí àwọn ìjàde wọn lórí ẹ̀rọ̀ L9110.
Arduino-wirign-for-L9110-motor-driver

Àwọn Àpẹẹrẹ Kóòdù & Ìtọ́sọ́nà

Nínú iṣẹ́ ìṣètò, a nílò láti ṣàlàyé àwọn pin ìṣàkóso gẹ́gẹ́ bí àwọn ìjàde. Èyí ṣe pàtàkì fún Arduino láti ṣàkóso àwọn ìtọ́sọ́nà mọ́tọ̀ dáradára:
void setup() {
  pinMode(B1A,OUTPUT);// ṣàlàyé pin gẹ́gẹ́ bí ìjàde
  pinMode(B1B,OUTPUT);
  
  pinMode(A1A,OUTPUT);
  pinMode(A1B,OUTPUT);    
  delay(3000);
}
Àkọsílẹ̀ kóòdù yìí ṣètò àwọn pin ìṣàkóso mọ́tọ̀, tí ó ń rí i dájú pé Arduino lè fi àwọn àmì ránṣẹ́ sí ẹ̀rọ̀ L9110. Lúùpù àkọ́kọ́ ti ètò náà ń ṣàkóso àwọn mọ́tọ̀ nípa pípe àwọn iṣẹ́ `motorA` àti `motorB` pẹ̀lú àwọn paramita ọ̀tọ̀ọ̀tọ̀ láti yí àwọn ìtọ́sọ́nà padà:
void loop() {
  motorA('R');// Yí mọ́tọ̀ A sí ọ̀tún
  delay(2000);
  motorA('L');// Yí mọ́tọ̀ A sí òsì
  delay(2000);   
  motorA('O');// Pa mọ́tọ̀ A
  delay(2000); 
  ...
}
Nínú àyọkà yìí, àwọn mọ́tọ̀ ń yí sí ọ̀tún àti òsì, pẹ̀lú àwọn ìdúró ní àárín láti ṣàkíyèsí àwọn ìyípadà ìtọ́sọ́nà. Iṣẹ́ `motorA` ni a ṣàlàyé láti ṣàkóso mọ́tọ̀ A nípa lílo ìtọ́sọ́nà tí a fún un:
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);    
  }
}
Iṣẹ́ yìí ṣàyẹ̀wò ìtọ́sọ́nà tí a fún un, kí o sì ṣètò àwọn pin ìṣàkóso ní ìbámu pẹ̀lú rẹ̀ láti yí mọ́tọ̀ ní ìtọ́sọ́nà tí a fẹ́ tàbí láti pa á.

Ìfihàn / Ohun Tí O Lè Retí

Nígbà tí o bá ṣiṣẹ́ kóòdù náà, o yẹ kí o rí àwọn mọ́tọ̀ tí ń yí padà láàárín ìyípadà òsì àti ọ̀tún. Àwọn ìdúró náà jẹ́ kí o lè ṣàkíyèsí àwọn ìyípadà ìtọ́sọ́nà kedere. Ṣọ́ra fún àwọn àṣìṣe tí ó wọ́pọ̀ bíi àwọn ìsopọ̀ tí a yí padà, tí ó lè yọrí sí ìwà àìretí tàbí ìbàjẹ́ àwọn ẹ̀yà. Ní àfikún, rí i dájú pé ìpèsè agbára rẹ tó fún àwọn mọ́tọ̀ tí o ń lò (nínú fídíò ní 00:00).

Aworan

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

Orisun & itọkasi

Ko si awọn orisun sibẹsibẹ.

Fáìlìs📁

Fọọmu data (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

Fayile Fritzing