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 saaraha | STMicroelectronics |
|---|---|
| Nambarka qaybta | L9110 |
| Danabka Logic/IO | 2.5–5.5 V |
| Danabka sahayda | 2.5–12 V |
| Qulqulka soo-saarka (kanaal kasta) | 1 A |
| Qulqulka ugu sarreeya (kanaal kasta) | 2 A |
| Hagaha soo noqnoqoshada PWM | 10 kHz |
| Heerarka caqabadaha gelinta | 0.8 V (hoose), 2.0 V (sare) |
| Hoos u dhaca danabka / RDS(on) / dhergid | 0.3 V at 1 A |
| Xadka kulaylka | 150 °C |
| Baakad | DIP-16 |
| Qoraalo / noocyo | Badanaa 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.
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).
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
-
Amaazon
-
eBay
-
AliExpressPurchase L9110 motor driver from AliExpress-2s.click.aliexpress.com
Kheyraadka & Tixraacyada
Wali wax kaydsan ah oo weli ma jiro.
Faylasha📁
Waraaqa xogta (pdf)
-
L9110 Motor driver module datasheetL9110 motor driver module datasheet covering pinout, specifications, and application circuit for driving DC motors.
robojax_L9110_datasheet.pdf0.20 MB
Faylka Fritzing
-
L9110 H-bridge Motor driver module
L9110 H-bridge module.fzpz0.04 MB