L293d : guide complet pour utiliser ce pont en h dans vos projets

Vous travaillez sur un projet avec des moteurs DC ou pas à pas et voyez partout le terme L293D sans être totalement sûr de ce qu’il fait ni comment le câbler ? Ce composant est un pont en H très répandu, idéal pour piloter facilement des moteurs avec un Arduino ou un microcontrôleur. Nous allons voir rapidement comment il fonctionne, comment le brancher en toute sécurité, puis comment l’exploiter efficacement dans vos circuits et vos codes.

Comprendre le l293d et son rôle dans le pilotage moteur

diagramme fonctionnement l293d contrôle moteur

Le L293D est au cœur de nombreux montages Arduino, robots mobiles et bras articulés. Comprendre sa logique interne, ses limites de courant et de tension, ainsi que ses broches, vous évitera la plupart des erreurs de débutant et des composants grillés. Cette première partie vous donne les bases concrètes pour l’utiliser dès maintenant.

Comment fonctionne un l293d dans un circuit de commande moteur ?

Le L293D est un double pont en H qui permet d’inverser la polarité appliquée à un moteur. Concrètement, il agit comme une interface intelligente entre votre microcontrôleur qui délivre quelques milliampères et un moteur qui peut en réclamer plusieurs centaines. En pilotant simplement ses entrées logiques avec des signaux 0 ou 5V, vous choisissez le sens de rotation, l’arrêt ou même le freinage du moteur.

La magie du pont en H réside dans sa capacité à commuter quatre transistors internes pour créer différents chemins électriques. Quand vous mettez l’entrée IN1 à HIGH et IN2 à LOW, le courant circule dans un sens à travers le moteur. Inversez ces signaux et le moteur tourne dans l’autre direction. Mettez les deux à LOW et le moteur s’arrête en roue libre.

Différences essentielles entre l293d, l293 et autres drivers similaires

Le L293D intègre des diodes de roue libre pour protéger contre les surtensions générées par les moteurs lors des arrêts brusques, contrairement au L293 classique qui nécessite l’ajout de diodes externes. Cette protection intégrée simplifie grandement vos montages.

En revanche, le L293D supporte un courant plus limité (environ 600 mA par canal) que des drivers plus récents comme le L298N qui atteint 2A ou le TB6612FNG qui offre 1,2A avec de meilleures performances énergétiques. Le L298N est plus adapté aux gros moteurs mais aussi plus encombrant, tandis que le TB6612FNG consomme moins d’énergie et chauffe moins pour des projets sur batterie.

Driver Courant max par canal Avantages principaux
L293D 600 mA Diodes intégrées, simple, économique
L293 1A Plus de courant mais diodes externes requises
L298N 2A Puissant, adapté gros moteurs
TB6612FNG 1,2A Efficacité énergétique, chauffe peu

Brochage l293d et rôle détaillé de chaque type de broche

Le L293D en boîtier DIP-16 comporte 16 broches avec des fonctions spécifiques. Les broches Enable (EN1 et EN2, numéros 1 et 9) servent à autoriser ou bloquer chaque demi-pont. En les mettant à HIGH, vous activez la sortie correspondante, ce qui permet aussi le contrôle PWM pour régler la vitesse.

Les entrées logiques (IN1, IN2, IN3, IN4 aux broches 2, 7, 10 et 15) définissent le sens de rotation en établissant la combinaison HIGH/LOW. Les sorties moteur (OUT1 à OUT4 aux broches 3, 6, 11 et 14) se connectent directement aux bornes de vos moteurs.

L’aspect crucial concerne les deux alimentations distinctes : Vcc1 (broche 16) alimente la logique interne et doit recevoir 5V, tandis que Vcc2 (broche 8) alimente les moteurs et peut varier de 4,5V à 36V selon vos besoins. Les quatre broches GND (4, 5, 12 et 13) doivent toutes être reliées à la masse commune pour un fonctionnement stable.

LIRE AUSSI  Sens pour poser le parquet : le guide simple pour ne pas se tromper

Câbler le l293d avec Arduino et moteurs sans erreur

schéma câblage l293d arduino deux moteurs

Le câblage est souvent le point de blocage pour les débutants : mauvaise masse commune, tension inadaptée ou oubli des broches Enable. En suivant un schéma clair, vous pouvez connecter un ou deux moteurs DC et même des moteurs pas à pas avec un seul L293D. Nous allons voir les principes à respecter et les erreurs à éviter.

Comment connecter un l293d à un Arduino de manière fiable et simple ?

Il est indispensable de relier la masse (GND) de l’Arduino à la masse de l’alimentation moteur et du L293D pour un fonctionnement stable. C’est l’erreur numéro un qui empêche le circuit de fonctionner : sans masse commune, les signaux logiques ne peuvent pas être correctement interprétés.

Les entrées IN du L293D se connectent aux broches digitales de l’Arduino, par exemple les broches 2, 3, 4 et 5. Les broches Enable peuvent être reliées à des sorties PWM (comme les broches 9 et 10) pour contrôler la vitesse, ou simplement connectées au 5V si vous n’avez pas besoin de variation de vitesse.

Veillez à respecter la tension logique maximale de 7V sur Vcc1 et l’orientation correcte du composant sur la breadboard en repérant l’encoche ou le point marquant la broche 1. Une alimentation séparée pour les moteurs est recommandée dès que ceux-ci consomment plus de 100 mA pour ne pas perturber l’Arduino.

Schéma de câblage type pour deux moteurs DC avec pont en h l293d

Pour deux moteurs DC, chaque côté du L293D pilotera un moteur avec deux sorties reliées aux bornes du moteur. Le premier moteur se connecte sur OUT1 et OUT2, le second sur OUT3 et OUT4. Si votre moteur tourne dans le mauvais sens, il suffit d’inverser les deux fils pour corriger.

Les entrées correspondantes seront reliées à quatre broches de l’Arduino pour gérer indépendamment les sens de rotation : IN1 et IN2 pour le moteur 1, IN3 et IN4 pour le moteur 2. L’alimentation moteur (Vcc2) sera raccordée à une source adaptée à vos moteurs, par exemple une batterie 9V ou un bloc d’alimentation 12V selon la tension nominale de vos moteurs.

Vcc1 restera connecté au 5V de l’Arduino pour la logique. N’oubliez pas de relier les broches Enable (EN1 et EN2) soit au 5V pour un fonctionnement permanent, soit à des broches PWM pour contrôler la vitesse de chaque moteur indépendamment.

Raccordement d’un moteur pas à pas avec l293d et précautions associées

Un L293D peut piloter un moteur pas à pas bipolaire en utilisant ses quatre sorties de manière séquencée. Chaque enroulement du moteur (généralement identifié par des paires de fils de même couleur) sera relié à un demi-pont du circuit intégré. Par exemple, le premier enroulement sur OUT1/OUT2 et le second sur OUT3/OUT4.

Sous réserve de respecter le courant maximal de 600 mA par bobine, cette configuration fonctionne bien pour les petits moteurs 28BYJ-48 modifiés en bipolaire ou les moteurs NEMA 17 de faible courant. Au-delà, privilégiez un driver dédié comme l’A4988 ou le DRV8825.

Il faudra ensuite envoyer la bonne séquence de signaux via le microcontrôleur pour obtenir un mouvement fluide et éviter les pertes de pas. Les bibliothèques Arduino comme Stepper ou AccelStepper simplifient grandement cette tâche en gérant automatiquement les séquences de commutation.

LIRE AUSSI  Évacuation lave-vaisselle : bien la penser pour éviter les mauvaises surprises

Exploiter le l293d en pratique : contrôle, code Arduino et limites

Une fois le câblage en place, tout se joue dans la façon de piloter le L293D par logiciel et de respecter ses limites électriques. En combinant signaux logiques, PWM et gestion des Enable, vous pouvez régler sens, vitesse et freinage des moteurs. Cette partie vous guide sur le code, les puissances admissibles et les options plus modernes.

Comment coder le contrôle d’un moteur avec l293d et Arduino simplement ?

Pour un moteur DC, deux broches digitales contrôlent le sens de rotation et une broche PWM gère la vitesse via Enable. Un code Arduino basique pour faire tourner un moteur ressemble à ceci :

Initialisation des broches : Définissez les broches EN1, IN1 et IN2 en sortie dans le setup(). Par exemple, si EN1 est connecté à la broche 9, IN1 à la broche 2 et IN2 à la broche 3, vous écrirez pinMode(9, OUTPUT), pinMode(2, OUTPUT) et pinMode(3, OUTPUT).

Rotation avant : Mettez digitalWrite(2, HIGH) et digitalWrite(3, LOW), puis utilisez analogWrite(9, 200) pour une vitesse moyenne (la valeur varie de 0 à 255). Pour tourner en arrière, inversez simplement : digitalWrite(2, LOW) et digitalWrite(3, HIGH).

Arrêt du moteur : Mettez les deux entrées à LOW ou réglez la broche Enable à 0 avec analogWrite(9, 0). Cette simplicité fait du L293D un excellent choix pédagogique pour apprendre la robotique.

Courant maximal, dissipation thermique et limites d’utilisation du l293d

Le L293D supporte généralement jusqu’à 600 mA par canal en pointes avec des contraintes thermiques importantes à surveiller. Le courant continu recommandé se situe plutôt autour de 400 mA pour éviter la surchauffe. Au-delà ou en cas de fonctionnement prolongé à charge élevée, la puce peut atteindre 80-100°C et réduire sa durée de vie, voire activer une protection thermique.

Prévoyez une marge de sécurité d’au moins 30% sur le courant moteur mesuré. Un petit ventilateur ou un dissipateur thermique collé sur le boîtier peut améliorer les performances si vous utilisez le composant proche de ses limites. Testez toujours la température au toucher après quelques minutes de fonctionnement.

La résistance interne élevée du L293D (environ 2 ohms par canal) génère des pertes importantes sous forme de chaleur. C’est pourquoi des alternatives modernes à base de MOSFETs offrent de bien meilleurs rendements pour des projets sur batterie où l’autonomie compte.

Quand préférer un autre driver moteur plutôt que l293d classique ?

Si vos moteurs consomment plus de 500 mA ou nécessitent une meilleure efficacité énergétique, des drivers plus récents seront nettement plus adaptés. Le TB6612FNG est un excellent remplaçant pin-compatible offrant 1,2A avec moins de pertes et une meilleure gestion thermique pour un prix similaire.

Pour des robots mobiles sur batterie, le faible rendement du L293D (environ 70%) réduit sensiblement l’autonomie comparé à des drivers à MOSFETs qui atteignent 95% d’efficacité. Des modules comme le DRV8833 ou le DRV8871 offrent aussi des protections avancées contre les courts-circuits et les surtensions.

Le L293D reste pertinent pour l’apprentissage, les petits robots éducatifs et les projets à faible budget où sa simplicité de mise en œuvre et son prix réduit (moins de 2 euros) constituent de vrais avantages. Pour un prototype rapide avec des moteurs de faible puissance, il reste un choix judicieux.

Conseils pratiques, dépannage et alternatives au l293d pour vos projets

Même avec un câblage correct, il arrive que les moteurs ne tournent pas ou se comportent de façon étrange. Quelques vérifications simples permettent souvent d’identifier rapidement l’origine du problème, entre alimentation, masse ou code. Enfin, si votre projet évolue, il peut être pertinent de migrer vers un shield ou un driver plus performant.

LIRE AUSSI  Isolation galvanique : rôle, principe et bonnes pratiques de mise en œuvre

Pourquoi mon moteur ne tourne pas avec un l293d correctement alimenté ?

Commencez par vérifier la présence d’une masse commune entre toutes les alimentations et l’Arduino, c’est une source d’oubli fréquente qui empêche tout fonctionnement. Utilisez un multimètre pour confirmer que le GND de l’Arduino, du L293D et de l’alimentation moteur sont bien au même potentiel.

Contrôlez ensuite la tension sur Vcc2 avec un multimètre pour vous assurer que l’alimentation moteur délivre bien la tension attendue. Vérifiez l’état des broches Enable : elles doivent être à HIGH pour que les sorties soient actives. Un simple test consiste à les relier directement au 5V temporairement.

Examinez la logique appliquée sur les entrées IN avec un Serial.print() dans votre code ou une LED témoin. Un test simple avec une LED à la place du moteur peut aussi aider à confirmer que le L293D commute bien. Si la LED s’allume, le problème vient probablement du moteur ou de son alimentation.

Bonnes pratiques pour fiabiliser un montage l293d sur breadboard ou PCB

L’ajout de condensateurs de découplage (100nF céramique et 100µF électrolytique) près des broches d’alimentation Vcc1 et Vcc2 aide à stabiliser le fonctionnement et filtrer les parasites générés par les commutations. Placez-les au plus près du circuit intégré.

Évitez les fils trop longs et les contacts approximatifs sur breadboard, qui peuvent créer des chutes de tension de plusieurs centaines de millivolts ou des faux contacts intermittents. Privilégiez des fils courts et rigides, en utilisant plusieurs trous de breadboard en parallèle pour les alimentations si nécessaire.

Sur un PCB, prévoyez des pistes suffisamment larges (au moins 1mm de largeur) pour les courants moteurs et l’alimentation. Créez un plan de masse solide et ajoutez des vias thermiques sous le L293D si possible pour améliorer la dissipation. Positionnez le composant avec suffisamment d’espace autour pour la circulation d’air.

Alternatives au l293d : modules, shields et drivers plus modernes à considérer

Si vous travaillez avec Arduino, les shields moteur comme l’Adafruit Motor Shield V2 ou le DFRobot Romeo simplifient grandement le câblage en proposant des borniers à vis et une gestion multi-moteurs. Ils intègrent généralement des drivers plus performants et des régulateurs pour alimenter l’Arduino directement.

Des modules prêts à l’emploi comme le module L298N (sous 5 euros) avec bornier à vis, régulation 5V intégrée et LED témoins facilitent les projets destinés à durer. Pour des applications professionnelles, les drivers Pololu à base de DRV8838 ou TB67H450 offrent protection thermique, détection de surintensité et faible encombrement.

En fonction de vos besoins en tension (jusqu’à 45V pour certains), courant (jusqu’à 5A) et silence de fonctionnement, vous pourrez choisir un driver adapté sans rester limité au L293D historique. La communauté maker propose aussi des alternatives open-source comme les shields Monster Motor Shield pour les très gros moteurs dépassant 10A.

Joséphine Blanchard-Fayolle

Laisser un commentaire

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

Retour en haut