Code ya Arduino mpo ya module ya contrôleur ya moteur DC double L9110
Na boyekoli oyo, tokotalela ndenge ya kokamba ba moteur ya DC mibale na kosalela module ya contrôleur ya moteur mibale L9110 na Arduino. Projet oyo ekopesa yo nzela ya kokamba direction mpe vitesse ya moteur na moto na moto, mpo na kosalela yango na ba applications ndenge na ndenge lokola robotique mpe automatisation. Na suka ya boyekoli oyo, okomona polele ndenge ya kosangisa ba composants mpe kokoma code oyo esengeli mpo na kotambwisa ba moteur na yo na ndenge ya malamu. Soki osengeli na ndimbola, tala video (na video na 00:00).
Explication ya Hardware
Module ya contrôleur ya moteur mibale L9110 ekoki kokamba ba moteur mibale na mbala moko. Ezali na ba circuits ya H-bridge mibale, oyo epesaka yo nzela ya kobalola polarité ya tension ya moteur. Boye okoki kobongola direction ya moteur na moto na moto na kosalela ba pins ya contrôle. Module ezali na ba pins minei ya ntina: mibale mpo na moteur na moto na moto mpo na kokamba direction ya rotation. Soki okotia pin moko na likolo mpe mosusu na se, moteur ekobaluka na direction moko; kobalola ba états ya ba pins ekosalisa yango ebaluka na direction oyo ekeseni. Flexibilité oyo ezali na ntina mingi mpo na ba applications lokola robotique, epai osengeli na contrôle ya malamu ya ba mouvements ya moteur.Détails ya Datasheet
| Fabricant | STMicroelectronics |
|---|---|
| Numéro ya partie | L9110 |
| Tension ya logique/IO | 2.5–5.5 V |
| Tension ya alimentation | 2.5–12 V |
| Courant ya sortie (na canal) | 1 A |
| Courant ya pointe (na canal) | 2 A |
| Directive ya fréquence PWM | 10 kHz |
| Seuils ya logique ya entrée | 0.8 V (se), 2.0 V (likolo) |
| Chute ya tension / RDS(on) / saturation | 0.3 V na 1 A |
| Limites thermiques | 150 °C |
| Package | DIP-16 |
| Notes / variantes | Esalelamaka mingi na ba projets ya robotique ya mike. |
- Kokanola ete esengeli kosalela heat-sinking mpo na fonctionnement ya libela.
- Kokanola ete ba signaux PWM ezala na se ya 10 kHz mpo na performance ya malamu.
- Salela ba condensateurs ya découplage pembeni ya ba connexions ya puissance mpo na kokitisa bruit.
- Keba na ba connexions ya polarité oyo ebalolami; ekoki kosala module ebeba.
- Tangela ntango nyonso ba limites ya courant oyo epesamaki mpo na kokitisa échauffement.
Instructions ya câblage
Mpo na kosangisa module ya contrôleur ya moteur mibale L9110 na Arduino, banda na kosangisa ba pins ya puissance. Singa pin ya VCC na L9110 na sortie ya 5V na Arduino, mpe singa pin ya GND na moko ya ba pins ya terre ya Arduino. Na sima, mpo na moteur A, singa pin ya A1A na pin ya digitale 2 na Arduino mpe pin ya A1B na pin ya digitale 3. Na sima, mpo na moteur B, singa pin ya B1A na pin ya digitale 8 mpe pin ya B1B na pin ya digitale 9. Kanola ete ba moteur esengeli kosangisama malamu na ba sorties na bango na module ya L9110.
Ba exemples ya code mpe explication
Na fonction ya setup, tosengeli kopesa ba pins ya contrôle lokola ba sorties. Oyo ezali na ntina mingi mpo na Arduino mpo na kokamba ba directions ya moteur na ndenge ya malamu:void setup() {
pinMode(B1A,OUTPUT);// définir pin lokola sortie
pinMode(B1B,OUTPUT);
pinMode(A1A,OUTPUT);
pinMode(A1B,OUTPUT);
delay(3000);
}
Code oyo etiyaka ba pins ya contrôle ya moteur, mpo na kopesa Arduino nzela ya kotinda ba signaux na module ya L9110.
Boucle principale ya programme ekambaka ba moteur na kobenga ba fonctions `motorA` mpe `motorB` na ba paramètres ndenge na ndenge mpo na kobongola ba directions:
void loop() {
motorA('R');// Balola moteur A na droite
delay(2000);
motorA('L');// Balola moteur A na gauche
delay(2000);
motorA('O');// Zimisa moteur A
delay(2000);
...
}
Na eteni oyo, ba moteur esalaka ebaluka na droite mpe na gauche, na ba délais kati na kati mpo na kotala ba changements ya direction.
Fonction `motorA` esalemaki mpo na kokamba moteur A kolanda direction oyo epesamaki:
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);
}
}
Fonction oyo etalaka direction oyo epesamaki mpe etiyaka ba pins ya contrôle na ndenge oyo esengeli mpo na kobongola moteur na direction oyo elingami to mpo na kozimisa yango.
Démonstration / Nini okomona
Soki okotambwisa code, okomona ba moteur ezali kobaluka na mbala na mbala kati na gauche mpe droite. Ba délais epesaka yo nzela ya kotala polele ba changements ya direction. Keba na ba pièges ya mbala mingi lokola ba connexions oyo ebalolami, oyo ekoki komemela ba comportements oyo esengeli te to kobebisa ba composants. Na lisusu, kanola ete alimentation na yo ezali ya kokoka mpo na ba moteur oyo ozali kosalela (na video na 00:00).
107-Arduino code for an L9110 dual DC motor controller module
Langue: 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
Nko o na nki.
-
Amazon
-
eBay
-
AliExpressPurchase L9110 motor driver from AliExpress-2s.click.aliexpress.com
Mokili na bisika
Pas encore de ressources.
Fichiers📁
Fiche technique (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
Fritzing File
-
L9110 H-bridge Motor driver module
L9110 H-bridge module.fzpz0.04 MB