Connexion d'un driver moteur L293D à un moteur DC avec Arduino – Guide pas à pas
Si vous comptez concevoir un robot ou une voiture télécommandée, la connaissance des moteurs est primordiale. Un moyen très économique et simple de les contrôler est d'utiliser un shield driver moteur L293D. Mieux encore, l'interfacer avec un microcontrôleur comme Arduino.
Parmi les autres, le driver moteur L293D est l'un des chipsets les plus populaires de sa catégorie. Surtout pour ses applications diverses : servomoteurs, moteurs pas-à-pas, moteurs DC. Son atout crucial : contrôle de direction et vitesse sur deux moteurs DC indépendants. C'est ce que vous apprendrez ci-dessous.
1. Qu'est-ce que le driver moteur L293D ?
Ce chipset 16 broches est un driver double pont en H (dual H-bridge) pour moteurs. Sa fonction principale : interface de commande pour paires de moteurs DC ou un seul moteur pas-à-pas.
Par défaut, le shield L293D contient deux chipsets. Il peut donc piloter quatre moteurs DC. C'est un atout précieux pour les robots à quatre roues.
Au total, le shield offre quatre ponts en H. Chaque pont délivre 0,6 A. Le registre à décalage 74HC595 étend les 8 broches de contrôle des deux CI L293D vers 4 broches numériques de l'Arduino.
2. Caractéristiques du driver L293D
Caractéristiques le rendant idéal pour projets CNC et robotique :
- Contrôle direction et vitesse de l'appareil
- Pilotage de deux moteurs DC similaires en dual
- Tension moteur Vs (Vcc2) : 4,5 V à 36 V
- Courant moteur continu max : 600 mA
- Courant moteur crête max : 1,2 A
- Tension d'alimentation Vss (Vcc1) : 4,5 V à 7 V
- Temps de transition : 300 ns (5 V à 24 V max)
- Arrêt thermique automatique par activation thermique
- Boîtiers disponibles : SOIC, DIP, TSSOP
3. Configuration des broches de sortie du shield L293D
| N° Broche | Nom | Description |
|---|---|---|
| 1 | Enable 1,2 | Active les broches d'entrée : Input 1(2) et Input 2(7) |
| 2 | Input 1 | Contrôle direct de la sortie 1. Souvent utilisé en contrôle numérique. |
| 3 | Output 1 | Connecte à une extrémité du Moteur 1 |
| 4 | Ground | Masse du circuit (0 V) côté 1 |
| 5 | Ground | Masse du circuit (0 V) côté 2 |
| 6 | Output 2 | Connecte à l'autre extrémité du Moteur 1 |
| 7 | Input 2 | Contrôle direct de la sortie 2. Contrôle numérique aussi. |
| 8 | Vs (Vcc2) | 4,5–36 V, connecte à la broche tension et alimente les moteurs |
| 9 | Enable 3,4 | Active uniquement Input 3(10) et Input 4(15) |
| 10 | Input 3 | Contrôle direct Output 3. Autre sortie contrôle numérique. |
| 11 | Output 3 | Connecte à une extrémité du Moteur 2 |
| 12 | Ground | Masse circuit (0 V) |
| 13 | Ground | Autre masse circuit (0 V) |
| 14 | Output 4 | Autre extrémité du Moteur 2 |
| 15 | Input 4 | Contrôle direct Output 4. Contrôle numérique. |
| 16 | Vss (Vcc1) | +5 V externe pour alimenter le CI |
4. Principe de fonctionnement du L293D
Le L293D contrôle deux moteurs DC. Comprenons comment ce CI double pont en H fonctionne.
Première étape : mise en place d'un pont en H. Deux paires de transistors Darlington (Q2/Q3 et Q1/Q4). Une diode relie collecteur et émetteur de chaque paire, empêchant le back-EMF du moteur d'endommager les transistors.
Quand Q1/Q4 sont ON, Q2/Q3 sont OFF. Courant de Vcc → moteur → masse. Rotation horaire/anti-horaire selon polarité moteur et mode de connexion à l'alimentation.
Quand Q1/Q4 sont OFF, Q2/Q3 passent ON. Courant inverse dans le moteur → inversion du sens de rotation.
5. Comment utiliser le driver moteur L293D ?
Le L293D utilise un courant de commande bidirectionnel ~600 mA et plage 4,5–36 V. Ces fonctionnalités impliquent l'usage de ce driver 16 broches avec Arduino Uno.
Projet : connecter moteurs DC et L293D à Arduino. Procédure pas à pas pour contrôler direction et vitesse d'un moteur DC.
Étape 1 : Assembler le matériel
- Deux potentiomètres 10 kΩ
- Chipset driver moteur L293D
- Deux petits moteurs DC
- Arduino Uno ou Arduino Pro Mini
- Platine d'essai (breadboard)
- Fils de liaison (jumper wires)
Étape 2 : Monter le circuit
Les connexions sont simples. Nous utilisons un tutoriel vidéo pour illustration précise.
Le moteur est mieux alimenté par une source séparée. Ici : 12 V pour le moteur, 5 V pour L293D et Arduino.
Attention : L'alimentation externe va sur la broche 8 du L293D. Prenez des précautions pour éviter d'endommager les moteurs.
Étape 3 : Code pour programmer un moteur DC
Deux étapes de base :
Installer la bibliothèque AFMotor.h
Il faut un moyen de communication avec le CI L293D. Installez AFMotor.h.
Cette bibliothèque permet d'envoyer des commandes pour contrôler moteurs DC, solénoïdes, pas-à-pas.
Installation : Sketch → Inclure une bibliothèque → Gérer les bibliothèques. Le gestionnaire met à jour la liste. Recherchez « Motor Shield ». Sélectionnez « Adafruit Motor Shield Library » par Adafruit, cliquez Installer.
Exécuter le code Arduino
Code à exécuter :
#include <AFMotor.h>
AF_DCMotor motor(4);
void setup() {
// Vitesse de départ & arrêt
motor.setSpeed(200);
motor.run(RELEASE);
}
void loop() {
uint8_t i;
// Moteur ON
motor.run(FORWARD);
// Accélération 0 à max
for (i=0; i<255; i++) {
motor.setSpeed(i);
delay(10);
}
// Décélération max à 0
for (i=255; i!=0; i--) {
motor.setSpeed(i);
delay(10);
}
// Inversion direction
motor.run(BACKWARD);
// Accélération 0 à max
for (i=0; i<255; i++) {
motor.setSpeed(i);
delay(10);
}
// Décélération max à 0
for (i=255; i!=0; i--) {
motor.setSpeed(i);
delay(10);
}
// Moteur OFF
motor.run(RELEASE);
delay(1000);
}
Étape 4 : Montage terminé
Votre circuit DIY est complet. Vous avez maintenant un mécanisme de contrôle pour tout dispositif à moteur DC avec ce chip L293D et Arduino Uno.
6. Équivalents du L293D (CI double timer)
Autres CI similaires : ULN2003, SN754410, LB1909MC.
7. Applications du L293D
- Pilotage de dispositifs LED à fort courant
- Moteurs à fort courant commandés par circuits numériques (robots)
- Partie intégrante de moteurs pas-à-pas et moteurs en général
- Modules drivers de relais → rend possible un relais à verrouillage (latching)
Résumé
Il existe d'autres méthodes pour contrôler des moteurs DC avec Arduino. Mais l'une des plus simples est d'utiliser un CI driver L293D. Un CI L293D donne l'avantage de contrôler simultanément vitesse et direction de deux moteurs DC séparés.
Nous avons appris à configurer et programmer un moteur DC avec ce CI. Pour des tutoriels plus avancés, contactez-nous via notre page contact pour un guidage complet.
Technologie industrielle
- Robot de détection humaine basé sur Arduino Uno : Intégration capteurs étape par étape
- Décoder les signaux PPM d'un récepteur RC avec Arduino : Guide pas à pas
- Véhicule Télécommandé par Android avec Raspberry Pi et Shield Moteur
- Mesurer la masse de la Terre avec Arduino : Guide DIY étape par étape
- Créer une interface web PHP pour contrôler votre Arduino Uno
- Bras robotique Arduino contrôlé par gestes manuels – Construction DIY pas à pas
- Comment fonctionne un moteur DC à balais : mécanique simple et puissance fiable
- Construire une Boussole Numérique Temps Réel avec Arduino et Processing
- Guide Étape par Étape pour l'Inspection et le Diagnostic des Problèmes de Moteurs CC