Contrôleur L9110S
Matériel testé : double pont en H à base de L9110S
Bibliothèque (facultatif) : MotorPID
Description
Ce circuit, très bon marché (environ 5€), offre un bon moyen de piloter jusqu’à deux moteurs à courant continu.
- Tension de service : DC 2.5V – 12V
- Courant de sortie maximum : 800 mA (continu) / canal
- Il permet d’utiliser l’alimentation 5V de l’Arduino (pratique lorsqu’on souhaite piloter de tout petits moteurs pour lesquels on n’a pas besoin d’alimentation externe)
Commande
Les ports A-IA, A-IB pour le moteur A et B-IA, B-IB pour le moteur B, permettent de contrôler le pont en H et par conséquent le sens de rotation des moteurs.
Arrêt (moteur libre) | Sens + | Sens – | Arrêt (moteur freiné) | ||
Moteur A | Moteur B | ||||
A-IA | B-IA | LOW | HIGH ou ~ |
LOW | HIGH |
A-IB | B-IB | LOW | LOW | HIGH ou ~ | HIGH |
La vitesse est simplement contrôlée par un signal PWM sur le port à l’état haut.
Câblage
Alimentation
L’alimentation du circuit logique VCC peut être commune à l’Arduino (voire fournie par l’Arduino, si le courant demandé reste faible < 50mA), ou bien indépendante (de 2.5V à 12V).
Moteurs
Les moteurs à contrôler doivent être connectés aux ports de sortie.
Exemple de câblage
Programmation
Contrairement à la plupart des pilotes de moteur CC, cette carte ne possède pas de broche dédiée à fournir une tension réglable (souvent appelée PWM).
Cette fonction doit être assurée directement dans le pont en H, en appliquant un signal PWM sur la broche qui est sensée être à l’état HAUT (selon le sens de rotation souhaité).
#define moteurA_1 5 #define moteurA_2 6 int vitesse = 255; // 0 à 255 void setup() { // Configuration des ports en mode "sortie" pinMode(moteurA_1, OUTPUT); pinMode(moteurA_2, OUTPUT); } void loop() { digitalWrite(moteurA_1, LOW); analogWrite(moteurA_2, vitesse); delay(2000); analogWrite(moteurA_1, vitesse); digitalWrite(moteurA_2, LOW); delay(2000); digitalWrite(moteurA_1, LOW); digitalWrite(moteurA_2, LOW); delay(3000); }
Modèle volumique