L293d : comment utiliser ce pont en h pour piloter vos moteurs

Le L293D simplifie le pilotage de moteurs dans vos projets électroniques, que vous utilisiez Arduino, Raspberry Pi ou d’autres microcontrôleurs. Ce circuit intégré à double pont en H permet de contrôler direction et vitesse de deux moteurs DC ou d’un moteur pas-à-pas bipolaire, sans complexité excessive. Avec ses diodes de protection intégrées, il évite les surtensions qui endommagent vos composants. Ce guide vous montre comment câbler correctement le L293D, l’alimenter sans risque et éviter les erreurs classiques qui compromettent vos montages.

Comprendre le rôle du L293D dans vos montages électroniques

Avant de brancher quoi que ce soit, il faut saisir précisément ce que le L293D apporte à votre projet et ses limitations. Ce composant gère l’interface entre la logique basse puissance de votre microcontrôleur et les besoins énergétiques de vos moteurs. Comprendre son fonctionnement interne évite les erreurs de dimensionnement qui coûtent temps et composants.

Fonctionnement interne du L293D et principe du pont en H double

Le L293D embarque deux ponts en H indépendants qui contrôlent chacun un moteur. Un pont en H est un circuit à quatre transistors qui inverse la polarité appliquée aux bornes du moteur, changeant ainsi son sens de rotation. En activant les transistors par paires diagonales, vous faites tourner le moteur dans un sens puis dans l’autre. Les diodes de roue libre intégrées dans le L293D protègent ces transistors des pics de tension générés lors des commutations du moteur, contrairement au L293 classique qui nécessite des diodes externes.

Chaque pont dispose de deux entrées logiques pour la direction et d’une broche enable qui active ou désactive la sortie. Cette architecture permet un contrôle précis : les entrées définissent le sens, tandis que la broche enable gère la marche/arrêt ou la vitesse via PWM.

Différences entre L293D, L298N et autres drivers de moteur courants

Le L293D délivre environ 600 mA par canal en continu, suffisant pour de petits moteurs DC récupérés sur des jouets ou des projets éducatifs. Le L298N, plus massif, supporte des courants supérieurs (jusqu’à 2 A par canal) mais génère davantage de chaleur et occupe plus d’espace. Pour un robot éducatif ou un prototype sur breadboard, le L293D reste le choix le plus accessible.

Les drivers modernes à MOSFET offrent un meilleur rendement énergétique, réduisant les pertes thermiques. Mais leur prix et leur complexité de mise en œuvre dépassent parfois les besoins d’un projet simple. Le L293D reste donc pertinent pour l’apprentissage et les applications légères, là où le L298N ou les drivers MOSFET prennent le relais pour des moteurs plus exigeants.

Quelles sont les limites de tension et de courant à respecter avec un L293D ?

Le L293D accepte une tension d’alimentation moteur entre 4,5 V et 36 V, alors que la partie logique fonctionne généralement en 5 V. Cette distinction est cruciale : vous devez fournir deux alimentations séparées, l’une pour le microcontrôleur, l’autre pour les moteurs. Le courant maximal par canal atteint 600 mA en continu, avec des pics à 1,2 A tolérés brièvement.

LIRE AUSSI  Placostil isolant : guide complet pour une cloison performante et bien pensée
Paramètre Valeur typique
Tension logique (Vcc1) 5 V
Tension moteur (Vcc2) 4,5 V à 36 V
Courant continu par canal 600 mA
Courant crête par canal 1,2 A

Dépasser ces limites endommage le circuit ou provoque un arrêt thermique. Il faut aussi prévoir une marge de sécurité : un moteur théoriquement à 500 mA peut consommer bien plus au démarrage ou en charge, d’où l’intérêt de tester au préalable avec un ampèremètre.

Câblage du L293D avec Arduino et moteurs DC pas à pas

diagramme l293d arduino moteurs dc

Le câblage détermine la fiabilité de votre montage. Connecter correctement les broches d’alimentation, les entrées logiques et les sorties moteur évite les pannes mystérieuses et les comportements erratiques. Un schéma clair et quelques règles simples suffisent à assembler un montage fonctionnel dès le premier essai.

Schéma de connexion type entre L293D, Arduino et moteur DC

Pour piloter un moteur DC, reliez deux broches digitales de l’Arduino aux entrées logiques du premier pont en H (broches 2 et 7 du L293D). La broche enable correspondante (broche 1) peut être raccordée au 5 V pour un fonctionnement permanent, ou à une sortie PWM Arduino pour contrôler la vitesse. Les sorties du pont (broches 3 et 6) se connectent directement aux bornes du moteur.

L’alimentation logique (broche 16 du L293D) se branche au 5 V de l’Arduino, tandis que l’alimentation moteur (broche 8) provient d’une source externe adaptée à votre moteur. Reliez impérativement toutes les masses ensemble : GND Arduino, GND alimentation moteur et broches 4, 5, 12, 13 du L293D. Cette référence commune garantit que les niveaux logiques sont correctement interprétés.

Comment alimenter correctement le L293D pour éviter les chutes de tension

Beaucoup de projets échouent parce que le courant moteur est tiré depuis le port USB de l’Arduino, limité à 500 mA. Dès que vous lancez le moteur, la tension s’effondre et le microcontrôleur redémarre aléatoirement. La solution est simple : utilisez une alimentation dédiée pour la partie puissance du L293D, capable de fournir largement plus que le courant maximal du moteur.

Ajoutez un condensateur électrolytique de 100 µF à 470 µF entre l’alimentation moteur et la masse, au plus près du L293D. Ce condensateur filtre les variations brutales de courant lors des commutations et stabilise la tension d’alimentation. Si vous pilotez deux moteurs, doublez la capacité du condensateur ou placez-en un par moteur.

Peut-on piloter un moteur pas-à-pas bipolaire avec un L293D ?

Oui, le double pont en H du L293D convient parfaitement aux moteurs pas-à-pas bipolaires à quatre fils. Chaque pont contrôle un enroulement, et le microcontrôleur envoie une séquence de signaux pour faire avancer le rotor pas à pas. Les séquences classiques sont le mode plein pas (full step), demi-pas (half step) ou micro-pas (nécessite un driver spécialisé).

En mode plein pas, vous alternez les quatre combinaisons d’activation des enroulements pour obtenir un tour complet. Le code Arduino gère cette séquence via quatre broches digitales reliées aux entrées du L293D. Pour des applications demandant précision et vitesse élevée, des drivers dédiés comme l’A4988 ou le DRV8825 offrent toutefois des fonctionnalités avancées que le L293D ne possède pas.

LIRE AUSSI  Enduire un mur en parpaing au rouleau : méthode simple et finitions propres

Pilotage, code et bonnes pratiques pour exploiter le L293D

logique code pilotage moteur l293d

Une fois le matériel en place, le logiciel prend le relais pour orchestrer vos moteurs. Contrôler sens, vitesse et arrêt avec précision demande une logique claire et quelques précautions. Les exemples suivants vous montrent comment structurer votre code pour un fonctionnement fiable et facile à maintenir.

Contrôler sens de rotation et vitesse moteur via PWM et broches enable

Pour inverser le sens, appliquez les états logiques opposés aux deux entrées du pont en H. Par exemple, HIGH sur l’entrée 1 et LOW sur l’entrée 2 fait tourner le moteur dans un sens, puis l’inverse LOW-HIGH le fait tourner dans l’autre. La broche enable agit comme un interrupteur général : LOW arrête le moteur, HIGH le démarre.

La vitesse se règle en appliquant un signal PWM sur la broche enable, ce qui module la tension moyenne reçue par le moteur. Un rapport cyclique de 50 % donne environ la moitié de la vitesse maximale, 75 % donne les trois quarts, et ainsi de suite. Cette méthode découple direction et vitesse, simplifiant considérablement le code.

Exemple de logique de commande Arduino pour un L293D fiable et lisible

Voici une structure de code minimaliste pour piloter un moteur DC :

  • Définissez trois constantes : IN1, IN2 pour les entrées de direction, EN pour la broche enable.
  • Créez des fonctions avancer(), reculer(), arreter() qui écrivent les combinaisons logiques appropriées.
  • Utilisez analogWrite(EN, vitesse) pour régler la vitesse entre 0 et 255.
  • Ajoutez un délai de quelques millisecondes entre les changements de direction pour éviter les à-coups.

Cette approche modulaire facilite la réutilisation du code et réduit les erreurs. Pour deux moteurs, dupliquez ces fonctions en changeant les numéros de broches, ou mieux, encapsulez-les dans une classe Motor si vous utilisez du C++ orienté objet.

Quels sont les pièges fréquents avec le L293D et comment les éviter facilement ?

L’erreur numéro un consiste à oublier de relier les masses : l’Arduino ne détecte alors pas correctement les niveaux logiques du L293D, et le moteur tourne de manière imprévisible. Vérifiez toujours que GND Arduino, GND alimentation moteur et GND du L293D sont connectés ensemble.

Le deuxième piège est de brancher un moteur trop gourmand. Si le moteur consomme 800 mA en continu, le L293D chauffe excessivement et finit par se mettre en protection thermique, voire griller. Mesurez le courant réel avec un multimètre avant de valider votre choix de driver.

Enfin, évitez de commuter brutalement entre marche avant et marche arrière sans passer par un arrêt. Ces inversions brusques génèrent des courants crêtes qui stressent le composant. Insérez un court délai ou un arrêt intermédiaire pour préserver la longévité du L293D et des moteurs.

Choisir le L293D ou une alternative selon votre projet moteur

Tous les projets n’ont pas les mêmes contraintes de courant, d’autonomie ou de complexité. Savoir quand le L293D suffit et quand il faut passer à un driver plus performant vous évite de concevoir un montage inadapté dès le départ. Cette section vous aide à anticiper les évolutions futures de votre projet.

Quand le L293D suffit largement pour vos petits moteurs DC

Pour les robots éducatifs, les voitures télécommandées DIY ou les prototypes sur table, le L293D offre un excellent compromis. Ses 600 mA par canal conviennent parfaitement aux petits moteurs récupérés sur des jouets, des lecteurs CD ou des imprimantes. Sa disponibilité en boîtier DIP 16 broches facilite l’insertion sur breadboard, et son prix modique autorise les erreurs d’apprentissage.

LIRE AUSSI  Sens pour visser : le guide simple pour ne plus jamais se tromper

La communauté Arduino fournit une multitude de tutoriels, de bibliothèques et de shields compatibles L293D, ce qui accélère la prise en main. Si votre objectif est de comprendre les bases du pilotage moteur avant de passer à des systèmes plus ambitieux, le L293D reste un choix judicieux et pédagogique.

Dans quels cas privilégier un driver plus récent ou plus efficace énergétiquement

Dès que vos moteurs nécessitent plus de 600 mA, ou que l’autonomie sur batterie devient critique, les drivers MOSFET modernes prennent l’avantage. Ils dissipent moins de chaleur pour une même puissance, ce qui prolonge la durée de vie de la batterie et réduit le besoin de refroidissement.

Les plateformes robotiques mobiles, les drones terrestres ou les projets semi-professionnels tirent bénéfice de drivers comme le DRV8833, le TB6612FNG ou le L298N. Ces composants gèrent des courants supérieurs, intègrent parfois des protections contre les courts-circuits et offrent un meilleur rendement énergétique. Le surcoût initial est compensé par des performances accrues et une fiabilité renforcée.

Comment anticiper l’évolution de votre projet pour ne pas changer tout le driver

Si vous envisagez de faire évoluer votre robot d’un simple prototype vers un système plus puissant, réfléchissez dès maintenant à l’interface de commande. Utiliser des fonctions génériques (avancer, reculer, tourner) plutôt que des écritures brutes de broches facilite le passage d’un driver à l’autre sans réécrire tout le code.

Concevoir une petite carte PCB ou un shield modulaire permet également de changer de driver en conservant le même connecteur moteur et la même alimentation. Cette approche modulaire vous évite de refaire câblage, code et tests à chaque montée en puissance, et accélère considérablement les itérations de conception.

Le L293D reste un composant de référence pour débuter et maîtriser les bases du pilotage moteur avec microcontrôleur. Sa simplicité d’utilisation, son coût accessible et sa large adoption en font un choix naturel pour les projets éducatifs et les prototypes légers. En respectant les limites de courant, en soignant le câblage et en adoptant une logique de commande claire, vous obtiendrez des résultats fiables dès vos premiers essais. Pour les applications plus exigeantes, gardez en tête les alternatives modernes qui offrent puissance et efficacité énergétique supérieures, tout en préservant une compatibilité logicielle grâce à une architecture de code modulaire.

Élise Gontard-Mirabeau

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut