Leçon 95 : Utilisation d'un bouclier de moteur à courant continu L293D | Cours Arduino étape par étape
Dans ce tutoriel, nous allons explorer comment contrôler quatre moteurs à courant continu à l'aide du bouclier moteur L293D avec Arduino. Cette configuration est particulièrement utile pour les applications robotiques, telles que la construction d'une voiture robot, où un contrôle précis des moteurs est essentiel. À la fin de cette leçon, vous aurez un modèle fonctionnel capable de faire fonctionner plusieurs moteurs simultanément.

Le bouclier de moteur L293D simplifie le processus de câblage et vous permet de contrôler les moteurs avec juste quelques connexions. Vous apprendrez comment câbler le bouclier à l'Arduino, configurer le code et exécuter efficacement les commandes de contrôle des moteurs. Pour une explication plus visuelle, vous pouvez vous référer à la vidéo à des horodatages spécifiques pour les détails de câblage et de codage (dans la vidéo à mm:ss).
Matériel expliqué
Le composant principal de ce projet est le bouclier de moteur L293D, qui est un pilote de moteur quadruple demi-pont H. Cela signifie qu'il peut contrôler deux moteurs dans les deux directions, permettant un contrôle total de la rotation du moteur. Le bouclier se connecte directement à l'Arduino, facilitant la gestion de l'alimentation et des signaux de contrôle sans câblage encombrant.
Chaque puce L293D peut gérer jusqu'à 600 mA de courant par canal et fonctionne à des tensions allant de 4,5 V à 36 V. Cette plage la rend adaptée à une variété de moteurs à courant continu. De plus, le bouclier dispose d'un cavalier qui vous permet d'alimenter à la fois les moteurs et l'Arduino à partir d'une seule source d'alimentation externe.
Détails de la fiche technique
| Fabricant | Texas Instruments |
|---|---|
| Numéro de pièce | L293D |
| Tension logique/IO | 5 V |
| Tension d'alimentation | 4,5 - 36 V |
| Courant de sortie (par canal) | 600 mA |
| Courant de pointe (par canal) | 1,2 A |
| Directives de fréquence PWM | 1 kHz - 20 kHz |
| Seuils logiques d'entrée | 2 V min (élevé), 0,8 V max (bas) |
| Chute de tension / RDS(on)/ saturation | 1,5 V max |
| Limites thermiques | 150 °C |
| Paquet | 16-DIP |
| Notes / variantes | Configuration en pont H double |
- Assurez-vous que les moteurs ne dépassent pas 600 mA pour éviter tout dommage.
- Utilisez un dissipateur thermique adéquat pour les applications à courant élevé.
- Connectez l'alimentation externe avant d'allumer l'Arduino.
- Vérifiez le positionnement des cavaliers pour alimenter le bouclier et l'Arduino.
- Testez la direction du moteur en échangeant les connexions si nécessaire.
Instructions de câblage

Commencez par connecter le bouclier de moteur L293D à votre Arduino Uno ou Mega. Alignez les broches du bouclier avec les connecteurs de l'Arduino et appuyez fermement. Ensuite, connectez vos moteurs à courant continu aux bornes étiquetées.M1,M2,M3, etM4sur le bouclier. Chaque moteur nécessitera deux bornes, alors assurez-vous de les connecter correctement pour une direction de rotation correcte.
Pour l'alimentation, connectez une batterie externe ou une alimentation aux bornes d'entrée d'alimentation du circuit, en veillant à ce que la tension soit comprise entre 4,5 V et 36 V. N'oubliez pas de connecter le cavalier sur le circuit pour permettre le passage du courant vers l'Arduino. Enfin, connectez la masse de l'alimentation à la broche de masse de l'Arduino pour compléter le circuit.
Installer la bibliothèque requise
cliquez sur l'icône Bibliothèque et recherchez :Adafruit Motor Sheild Libraryet cliquez sur Installer pour l'installer.
Exemples de code et guide étape par étape
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);Dans le code, nous avons initialisé quatre objets moteur :motor1,motor2,motor3, etmotor4Chaque moteur se voit attribuer un numéro de canal correspondant aux connexions de terminal du bouclier de moteur. Cela nous permet de contrôler chaque moteur individuellement.
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Robojax L293D Example");
}Lesetup()La fonction initialise la communication série, nous permettant d'envoyer et de recevoir des messages depuis l'IDE Arduino. Cela est utile pour le débogage et la surveillance du processus de contrôle du moteur.
motor1.setSpeed(speed(50)); //set speed for motor 1 at 50%
motor1.run(FORWARD); //send motor 1 to Forward rotationPour contrôler les moteurs, nous réglons la vitesse en utilisant lesetSpeed()méthode, qui prend une valeur entre 0 et 255. Lerun()la méthode démarre ensuite le moteur dans la direction spécifiée, commeFORWARDouBACKWARDLa vitesse peut être ajustée dynamiquement selon les besoins.
Démonstration / À quoi s'attendre
Une fois que tout est câblé et que le code est téléchargé, vous devriez voir les moteurs tourner selon les commandes dans le code. Au départ, un moteur s'allume, suivi par les autres dans l'ordre, chacun fonctionnant pendant une durée déterminée. Si les moteurs ne fonctionnent pas comme prévu, vérifiez votre câblage, assurez-vous que le cavalier est connecté et vérifiez que l'alimentation est adéquate (dans la vidéo à mm:ss).
Horodatages vidéo
- 00:00 Introduction
- 03:00 Fiche technique pour L293D
- 03:56 Câblage expliqué
- 07:21 Code et bibliothèque
- 13:51 Démonstration de contrôle de 4 moteurs
/*
* Lesson 95: Control 4 DC Motors for a Smart Car using a Motor Shield
* This code works with Arduino UNO and Arduino Mega.
* Wiring diagram and how to wire and connect the power supply is shown in the video.
Watch full video instruction: https://youtu.be/0XihwdulmDQ
* Download this code from: http://robojax.com
*
* Written by Ahmad Shamshiri for Robojax.com on Jan 09, 2022
* in Ajax, Ontario, Canada
This video is part of an Arduino Step by Step Course which starts here: https://youtu.be/-6qSrDUA5a8
If you found this tutorial helpful, please support me so I can continue creating content like this
and make a donation using PayPal http://robojax.com/L/?id=64
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
* Library location: https://github.com/adafruit/Adafruit-Motor-Shield-library
Adafruit Motor shield library
// copyright Adafruit Industries LLC, 2009
// this code is public domain, enjoy!
*/
#include <AFMotor.h>
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Robojax L293D Example");
}
void loop() {
motor1.setSpeed( speed(50) ); //set speed for motor 1 at 50%
motor1.run(FORWARD);//send motor 1 to Foarward rotation
delay(2000);//wait for 2 seconds
motor2.setSpeed( speed(100) );//set speed for motor 2 at 100%
motor2.run(BACKWARD);//send motor 2 to Foarward rotation
delay(2000);
motor3.setSpeed( speed(70) );
motor3.run(FORWARD);
delay(2000);
motor4.setSpeed( speed(90) );
motor4.run(FORWARD);
delay(2000);
motor1.run(BRAKE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
delay(2000);
motor1.setSpeed(speed(100));
motor1.run(BACKWARD);
delay(2000);
motor1.run(RELEASE);
delay(1000);
}
/*
* speed percent to speed converter
* receives value between 0 to 100 and converts it to value between
* 0 to 255 which are 8 bits Arduino PWM value
* www.Robojax.com
Watch full video instruction: https://youtu.be/0XihwdulmDQ
*/
int speed(int percent)
{
return map(percent, 0, 100, 0, 255);
}
Ce dont vous pourriez avoir besoin
-
Amazon
-
Amazon
-
eBay
-
AliExpressAchetez le bouclier de moteur L293D sur AliExpress.s.click.aliexpress.com
Ressources et références
-
Externe
Fichiers📁
Aucun fichier disponible.