Arduino, Tutoriels

Comment utiliser L293D Pilote de moteur avec Arduino

Utilisation L293D Pilote De Moteur Avec Arduino

L’utilisation du pilote de moteur L293D avec Arduino offre une solution efficace pour le contrôle de moteurs à courant continu, de moteurs pas à pas et de servomoteurs dans une variété de projets électroniques. Ce composant électronique permet de gérer la vitesse, la direction et la précision des moteurs, ce qui en fait un outil essentiel pour les amateurs d’électronique et les ingénieurs. Dans cet article, nous explorerons en détail comment utiliser le L293D avec Arduino pour piloter différents types de moteurs.

Présentation du Pilote de Moteur L293D

L293D pilote de moteur est une puce d’intégration qui agit comme un pont en H (H-Bridge) pour contrôler la rotation des moteurs. Il est largement utilisé dans les projets Arduino en raison de sa simplicité d’utilisation et de sa fiabilité. Ce pilote de moteur peut être alimenté avec une tension de 5 à 36 V pour les moteurs, tandis que la tension de la carte Arduino doit être de 5 V.

L293D Pilote De Moteur Qui Contrôle Avec Précision Les Moteurs À Courant Continu Pour Des Projets Électroniques Variés.
L293D Double pont en H, Pilote de moteur

Principales Caractéristiques du L293D :

  • Contrôle de la Direction : Il permet de contrôler la direction de rotation des moteurs en inversant simplement les signaux de contrôle. Cela signifie que vous pouvez faire tourner le moteur dans les deux sens.
  • Contrôle de la Vitesse : Il offre un contrôle précis de la vitesse des moteurs à courant continu en ajustant la largeur de l’impulsion (PWM). Cela permet de régler la vitesse selon les besoins du projet.
  • Support pour Plusieurs Moteurs : Il possède deux H-Bridges, ce qui signifie qu’il peut contrôler deux moteurs à courant continu ou un moteur pas à pas à quatre fils. Il est également équipé d’une puce 74HC595 pour étendre les broches de commande.

Alimentation du L293D

Le L293D peut être alimenté de deux manières différentes en fonction de vos besoins :

  1. Alimentation Partagée : Vous pouvez utiliser un seul bloc d’alimentation pour le pilote et la carte Arduino en connectant le fil d’alimentation à la broche “EXT_PWR” sur le pilote. Assurez-vous de placer la borne “PWR” sur le L293D dans la bonne position. Cette configuration est pratique lorsque vous avez une source d’alimentation unique.
  2. Alimentation Séparée : Il est recommandé de fournir une alimentation séparée à la carte Arduino et au L293D. Dans ce cas, la carte Arduino est alimentée via USB, tandis que les moteurs sont alimentés par une source de courant continu connectée à la broche “EXT_PWR”. N’oubliez pas de retirer la borne “PWR” pour éviter tout problème de tension.

Broches de L293D

Broches De L293D.
Broches de L293D

Contrôle de Moteur à Courant Continu avec le L293D et Arduino

Les moteurs à courant continu (CC) sont omniprésents dans de nombreuses applications électroniques, des robots aux systèmes d’automatisation industrielle. Le L293D s’avère être un choix fiable pour les piloter avec Arduino. Pour commencer, il est essentiel de configurer la connexion matérielle. Vous aurez besoin d’un Arduino Uno, du L293D, d’une source d’alimentation 12V et du moteur CC que vous souhaitez contrôler.

Câblage

Câblage De Moteur À Courant Continu Avec Le L293D Et Arduino
Câblage de Moteur à Courant Continu avec le L293D et Arduino
Moteur À Courant Continu Avec Le L293D Et Arduino.
Moteur à Courant Continu avec le L293D et Arduino

L293D permet de contrôler deux moteurs à courant continu. Connectez les fils du moteur aux bornes M1 et M2 pour le premier moteur, et M3 et M4 pour le second. Alimentez le L293D en utilisant la borne “EXT_PWR” avec une source 12V.

Code Arduino

Installez la bibliothèque “AFMotor.h” dans votre environnement Arduino pour faciliter la programmation. Voici le code :

#include <AFMotor.h>      // Inclure la bibliothèque AFMotor
AF_DCMotor moteur(4);     // Spécifier le port auquel le moteur est connecté (1 - 4)

void setup()
{
  moteur.setSpeed(200);    // Vitesse de rotation initiale
  moteur.run(RELEASE);     // Arrêter le moteur
}

void loop()
{
  uint8_t i;              // Créer une variable "i"
  moteur.run(FORWARD);    // Faire tourner le moteur en avant

  for (i = 0; i < 255; i++)   // Accélérer le moteur de 0 à 255
  {
    moteur.setSpeed(i);    // Envoyer la vitesse
    delay(10);            // Pause
  }
  for (i = 255; i != 0; i--)  // Ralentir le moteur de 255 à 0
  {
    moteur.setSpeed(i);    // Envoyer la vitesse
    delay(10);            // Pause
  }

  moteur.run(BACKWARD);   // Faire tourner le moteur en arrière

  for (i = 0; i < 255; i++)   // Accélérer le moteur de 0 à 255
  {
    moteur.setSpeed(i);    // Envoyer la vitesse
    delay(10);            // Pause
  }
  for (i = 255; i != 0; i--)  // Ralentir le moteur de 255 à 0
  {
    moteur.setSpeed(i);    // Envoyer la vitesse
    delay(10);            // Pause
  }

  moteur.run(RELEASE);     // Arrêter le moteur
  delay(1000);            // Pause
}

Ce code d’exemple démontre comment contrôler la direction du moteur à courant continu avec le L293D et Arduino. Vous pouvez ajuster la vitesse et les délais selon vos besoins.

Contrôle de Moteurs Pas à Pas NEMA 17 avec le L293D et Arduino

Les moteurs pas à pas sont essentiels pour de nombreuses applications nécessitant un contrôle précis de la rotation. Le NEMA 17 est un moteur pas à pas couramment utilisé. Pour l’utiliser avec le L293D et Arduino, assurez-vous de connecter correctement le moteur aux broches M3 et M4 du pilote. Alimentez le L293D avec une source de 12V.

Câblage

Câblage De Moteur Pas À Pas Nema 17 Avec Le L293D Et Arduino.
Câblage de Moteur Pas à Pas NEMA 17 avec le L293D et Arduino

Code Arduino

Le code ci-dessous permet de contrôler un moteur pas à pas NEMA 17 :

#include <AFMotor.h>                      // Inclure la bibliothèque AFMotor
const int stepsPerRevolution = 200;       // Spécifier le nombre de pas par tour du moteur

AF_Stepper moteur(stepsPerRevolution, 2);  // Spécifier que le moteur est connecté aux ports 2 (M3 - M4)

void setup()
{
  moteur.setSpeed(10);                     // Vitesse du moteur en tours par minute
}

void loop() {
  moteur.step(100, FORWARD, SINGLE);       
  moteur.step(100, BACKWARD, SINGLE);      

  moteur.step(100, FORWARD, DOUBLE);       
  moteur.step(100, BACKWARD, DOUBLE);      

  moteur.step(100, FORWARD, INTERLEAVE);  
  moteur.step(100, BACKWARD, INTERLEAVE);  

  moteur.step(100, FORWARD, MICROSTEP);    
  moteur.step(100, BACKWARD, MICROSTEP);   
}

Ce code illustre comment contrôler un moteur pas à pas NEMA 17 en utilisant le L293D et Arduino. Vous pouvez ajuster le nombre de pas, la direction et la vitesse en fonction de votre projet.

Contrôle de Servomoteurs SG90S avec le pilote de moteur et Arduino

Les servomoteurs, tels que le SG90S, sont largement utilisés pour le positionnement précis dans les projets de robotique et d’automatisation. Avec le L293D et Arduino, vous pouvez facilement contrôler les servomoteurs.

Câblage

Câblage De Servomoteur Sg90S Avec Le L293D Et Arduino.
Câblage de Servomoteur SG90S avec le L293D et Arduino

Pour commencer, connectez le fil de commande du servomoteur à la broche 10 de l’Arduino. Pas besoin d’une alimentation externe, car le L293D tire son énergie de l’Arduino. Utilisez la bibliothèque “Servo.h” pour simplifier le contrôle du servomoteur :

Code Arduino

#include <Servo.h>    // Inclure la bibliothèque Servo
Servo myservo;        // Créer un objet servo
int pos = 0;          // Créer une variable

void setup() 
{
  myservo.attach(10); // Spécifier le port auquel le servo est connecté
}
 
void loop() 
{
  for(pos = 0; pos <= 180; pos += 1) // Augmenter l'angle de 0 à 180
  {
    myservo.write(pos);              // Envoyer les données
    delay(15);                       // Pause 
  }
          
  for(pos = 180; pos >= 0; pos -= 1) // Diminuer l'angle de 180 à 0
  {
    myservo.write(pos);              // Envoyer les données
    delay(15);                       // Pause 
  }
}

Ce code permet de faire pivoter le servomoteur SG90S de 0 à 180 degrés et vice-versa, créant ainsi un mouvement de va-et-vient.

Conclusion

Le L293D est un composant essentiel pour le contrôle de moteurs dans les projets Arduino. Il offre une grande flexibilité pour le contrôle de la vitesse, de la direction et de la précision des moteurs à courant continu, des moteurs pas à pas et des servomoteurs. En utilisant la bibliothèque “AFMotor.h” et en suivant les bonnes pratiques de câblage, vous pouvez facilement intégrer le L293D dans vos projets électroniques et créer des systèmes de contrôle moteur intelligents et personnalisés.

Lien outilles

  1. Téléchargement de Arduino logiciel “Arduino IDE ” : https://www.arduino.cc/en/software
  2. Pour plus d’articles : https://www.moussasoft.com/tutoriels-electroniques
  3. TwitterMoussa Lhoussaine (@Moussasoft_com) / Twitter

Arduino – Home