Code Arduino et vidéo : Contrôleur de moteur à courant continu L293D (sans contrôle de vitesse)
Ce tutoriel explique comment utiliser le contrôleur de moteur L293D avec un Arduino pour contrôler un moteur à courant continu. Le L293D vous permet de faire tourner le moteur dans les deux sens, dans le sens des aiguilles d'une montre et dans le sens inverse. En suivant ce guide, vous apprendrez à câbler les composants et à programmer l'Arduino pour obtenir le contrôle du moteur souhaité.
Dans ce projet, nous utiliserons le pilote de moteur L293D pour contrôler un seul moteur à courant continu. Le moteur pourra changer de sens en fonction des commandes données dans le code Arduino. Pour une compréhension plus claire du montage et du code, il est utile de regarder la vidéo associée (dans la vidéo à 00:00).
Matériel expliqué
Le L293D est un circuit intégré conçu pour piloter des moteurs. Il peut contrôler deux moteurs à courant continu simultanément ou un moteur pas à pas. La puce utilise une configuration en pont en H pour permettre le contrôle du sens de rotation en inversant la polarité de la tension appliquée au moteur. Cette flexibilité en fait un excellent choix pour les projets de robotique et d'automatisation.
En plus du L293D, nous utiliserons une carte Arduino pour envoyer des signaux de commande au pilote de moteur. L'Arduino générera les niveaux logiques nécessaires pour activer le moteur et déterminer le sens de sa rotation. Le montage nécessitera également un moteur à courant continu et une alimentation compatible avec la tension requise par le moteur.
Détails de la fiche technique
| Fabricant | Texas Instruments |
|---|---|
| Numéro de pièce | L293D |
| Tension logique / E/S | 5 V |
| Tension d'alimentation | 4,5 - 36 V |
| Courant de sortie (par canal) | 600 mA |
| Courant de crête (par canal) | 1.2 A |
| Recommandations de fréquence PWM | 20 kHz |
| Seuils logiques d'entrée | 2,5 V (typ.) |
| Chute de tension / RDS(on)/ saturation | 1,5 V (max) |
| Limites thermiques | 150 °C (max.) |
| Paquet | DIP 16 broches |
| Notes / variantes | Peut contrôler deux moteurs |
- Veillez à ce que la tension d'alimentation ne dépasse pas 36 V.
- Utilisez un dissipateur thermique approprié lorsque l'appareil fonctionne près du courant maximal.
- Reliez toujours la masse de l'Arduino à celle du pilote de moteur.
- Vérifiez le câblage pour éviter les connexions à polarité inversée.
- Utilisez des signaux PWM pour contrôler la vitesse si nécessaire dans de futurs projets.
Instructions de câblage


Pour câbler le contrôleur de moteur L293D à l'Arduino, commencez par connecter l'alimentation et la masse. Connectez les broches 4 et 5 du L293D à la masse. Ensuite, connectez la broche 1 (Vcc1) à la sortie 5 V de l'Arduino. Pour Vcc2 (broche 8), reliez-la à une alimentation externe, en vous assurant qu'elle correspond aux spécifications de tension du moteur.
Ensuite, connectez la broche d'activation (broche 1) à la broche 8 de l'Arduino pour contrôler l'alimentation du moteur. Pour les entrées de commande du moteur, connectez la broche 2 (1A) du L293D à la broche 2 de l'Arduino et la broche 7 (2A) à la broche 7 de l'Arduino. Enfin, connectez les bornes du moteur aux broches 3 (1Y) et 6 (2Y) du L293D.
Exemples de code et guide pas à pas
Le code suivant initialise les broches et configure le contrôle du moteur. Les identifiants utilisés incluentP1Apour la première broche de commande du moteur etEN12Pour la broche d'activation. La fonction setup configure les broches en sorties.
void setup() {
Serial.begin(9600); // setup Serial Monitor to display information
pinMode(P1A, OUTPUT); // define pin as OUTPUT for P1A
pinMode(P2A, OUTPUT); // define pin as OUTPUT for P2A
pinMode(EN12, OUTPUT); // define pin as OUTPUT for 1,2EN enable
}Dans la boucle, le moteur est commandé à tourner dans les deux sens, avec des délais entre chaque rotation. L'état du moteur est affiché sur le moniteur série en utilisantSerial.println.
void loop() {
Serial.println("Rotating CW");
digitalWrite(EN12, HIGH); // Enable 1A and 2A
digitalWrite(P1A, HIGH); // send HIGH signal to P1A
digitalWrite(P2A, LOW); // send LOW signal to P2A
delay(3000); // motor runs for 3 seconds
digitalWrite(EN12, LOW); // Disable 1A and 2A
}Cet extrait montre comment contrôler le sens de rotation du moteur en modifiant les niveaux logiques envoyés àP1AetP2A. Le moteur fonctionne pendant 3 secondes avant de s'arrêter et de changer de sens.
Voici comment utiliser les drivers demi-pont L293D :
Démonstration / À quoi s'attendre
Une fois l'installation terminée et le code téléversé, vous devriez observer le moteur tourner dans un sens pendant 3 secondes, s'arrêter pendant 2 secondes, puis tourner dans le sens inverse pendant 3 secondes supplémentaires. L'état du moteur sera affiché sur le moniteur série, confirmant les actions (dans la vidéo à 12:00).
Parmi les pièges courants, on trouve de s'assurer que la bonne tension est fournie au moteur et de vérifier que les connexions du moteur sont correctes. Si le moteur ne répond pas, revérifiez le câblage et les connexions de l'alimentation.
Horodatages vidéo
- 00:00- Introduction
- 02:30- Explication du câblage
- 05:00- Revue de code
- 10:00- Démonstration du contrôle moteur
Ce dont vous pourriez avoir besoin
-
AmazonPurchase L293D motor driver ICamzn.to
-
AliExpressPurchase L293D motor driver IC from AliExpresss.click.aliexpress.com
Ressources et références
Aucune ressource pour le moment.
Fichiers📁
Aucun fichier disponible.