Le module L293D est un driver de moteur utilisé pour contrôler des moteurs à courant continu (DC) ou des moteurs pas à pas (stepper). Il est souvent utilisé dans des applications robotiques et des projets d'électronique pour commander des moteurs via un microcontrôleur, comme un Arduino, tout en protégeant ces derniers contre les courants élevés.
Voici les rôles clés du module L293D :
Contrôle de la direction du moteur : Le L293D permet de contrôler la direction des moteurs en fonction des signaux envoyés par le microcontrôleur. Par exemple, en inversant les polarités des broches de commande, il peut faire tourner un moteur dans un sens ou dans l'autre.
Amplification du signal : Le L293D amplifie les signaux du microcontrôleur (qui sont généralement de faible puissance) pour contrôler des moteurs qui nécessitent plus de courant et de tension.
Protection du microcontrôleur : Le L293D protège les broches de sortie du microcontrôleur en isolant le moteur des circuits sensibles du microcontrôleur. Il gère aussi les courants élevés que les moteurs peuvent demander.
Alimentation des moteurs : Le module peut fournir l'alimentation nécessaire pour les moteurs, souvent supérieure à celle fournie par le microcontrôleur.
Contrôle de la vitesse : En utilisant des techniques comme la modulation de largeur d'impulsion (PWM), le L293D permet de réguler la vitesse des moteurs.
Carte Arduino
La carte Arduino agit comme le cerveau du système, envoyant les signaux nécessaires au module L293D pour contrôler les moteurs.
Module L293D
Le L293D est un driver de moteur intégrant deux ponts en H, permettant de contrôler deux moteurs indépendamment. C'est le composant clé pour interfacer les moteurs avec l'Arduino.
Moteurs DC de 5V
Les moteurs DC 5V sont des moteurs à courant continu adaptés à une tension d'alimentation de 5V.
Il représentent les éléments finaux qui effectuent les mouvements.
1- Alimentation :
Vcc : Connectée à l’alimentation de la carte Arduino UNO.
GND : Masse commune entre l’Arduino, le L293D, et l’alimentation des moteurs.
2- Broches de commande :
IN1 et IN2 (pour le moteur 1) : Connectées à deux broches numériques de l’Arduino pour contrôler la direction du moteur 1.
IN3 et IN4 (pour le moteur 2) : Connectées à deux autres broches numériques de l’Arduino pour le moteur 2.
3- Broches de sortie (vers les moteurs) :
OUT1 et OUT2 : Connectées aux bornes du moteur 1.
OUT3 et OUT4 : Connectées aux bornes du moteur 2.
Les broches Enable1 (moteur 1) et Enable2 (moteur 2) contrôlent l’activation des moteurs. Elles sont souvent connectées à des broches PWM de l’Arduino pour moduler la vitesse.
Voici le programme Arduino pour un moteur DC avec contrôle de direction et vitesse :
Il faut importer cette bibliothèque : AFMotor
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
#include <AFMotor.h> AF_DCMotor motor1(1); // connecter le moteur1 au port M1 du module Shield L293D AF_DCMotor motor2(2); // connecter le moteur2 au port M2 du module Shield L293D AF_DCMotor motor3(3); // connecter le moteur3 au port M3 du module Shield L293D AF_DCMotor motor4(4); // connecter le moteur4 au port M4 du module Shield L293D void setup() { motor1.setSpeed(100); // définir la vitesse du moteur 1 motor2.setSpeed(100); // définir la vitesse du moteur 2 motor3.setSpeed(100); // définir la vitesse du moteur 1 motor4.setSpeed(100); // définir la vitesse du moteur 2 } void loop() { motor1.run(FORWARD); // le moteur 1 tourne delay(1000); motor1.run(RELEASE); // le moteur 1 s'arrete delay(500); motor2.run(FORWARD); // le moteur 2 tourne delay(1000); motor2.run(RELEASE); // le moteur 2 s'arrete delay(500); motor3.run(FORWARD); // le moteur 3 tourne delay(1000); motor3.run(RELEASE); // le moteur 3 s'arrete delay(500); motor4.run(FORWARD); // le moteur 4 tourne delay(1000); motor4.run(RELEASE); // le moteur 4 s'aarrete delay(500); motor1.run(BACKWARD); // le moteur 1 tourne dans le sens inverse delay(1000); motor1.run(RELEASE); // le moteur 1 s'arrete delay(500); motor2.run(BACKWARD);// le moteur 2 tourne dans le sens inverse delay(1000); motor2.run(RELEASE); // le moteur 2 s'arrete delay(500); motor3.run(BACKWARD); // le moteur 3 tourne dans le sens inverse delay(1000); motor3.run(RELEASE); // le moteur 3 s'arrete delay(500); motor4.run(BACKWARD);// le moteur 4 tourne dans le sens inverse delay(1000); motor4.run(RELEASE); // le moteur 4 s'arrete delay(500); } |
La carte Arduino envoie des signaux numériques ou PWM aux entrées du L293D pour commander la direction, la vitesse et l'état (marche/arrêt) des moteurs. Les broches Enable permettent de moduler la vitesse, et les broches IN1 à IN4 contrôlent la direction. Le L293D agit comme un pont en H, amplifiant les signaux pour piloter les moteurs en toute sécurité.
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info