L293D, l’interface moteur
En robotique, ce composant est devenu incontournable pour tout amateur qui cherche une solution simple pour piloter les deux moteurs de son robot mobile à roues. Il s’agit d’un double pont en H à transistors bipolaires pour charges inductives, comme le sont les moteurs CC.
Vous pensez tout savoir de ce composant et sa doublure, le SN754410NE, connaitre tous les schémas de mise en œuvre à une, deux ou trois lignes de commandes, être incollable sur les signaux à appliquer pour le piloter. Si c’est le cas, passez votre chemin, je ne vous apprendrais rien, sinon restez et lisez ce qui suit.
Ce document sera complété en fonction des questions que vous me poserez. Dites moi ce que vous aimeriez bien savoir et je prendrais le temps de le traiter ici.
Les informations suivantes supposent que vous connaissiez les caractéristiques générales du L293D et de son équivalent. dans le cas inverse, voici les deux datasheets.
Datasheet : L293D, SN754410NE
Les raisons de son succès
Ce composant est souvent utilisé pour piloter deux moteurs à courant continu à partir d’un microcontrôleur. Quoique très ancien, presque 30 ans, il reste une référence dans ce domaine. Il existe plusieurs raisons à cette longévité. La première est qu’il n’existe pas d’alternative à ce composant. Il n’existe pas d’interface double pour moteur avec ce boitier. Il existe bien sa version plus puissance, Le L298, presque 30 ans lui aussi, mais ce n’est pas le même boitier et il faut ajouter 8 diodes de roue libre en plus. Il existe bien aussi quelques composants simple ou double amplificateur de puissance pouvant être utilisés en interface pour moteur, mais ils n’ont pas été conçu pour ça et n’ont pas les même performances. N’oublions pas que le L293D est une vrai interface pour moteur avec un circuit de puissance et son alimentation séparée pour les étages de sortie et un circuit de commande en logique TTL sous 5 Volts. Dans le même esprit que des amplificateurs de puissance, il existe les drivers de transistors MosFet. Ces composants, à l’origine prévu pour piloter un transistor de puissance MosFet, peuvent aussi être utilisés pour piloter un petit moteur.
La deuxième raison est liée à sa technologie. Réalisé en technologie bipolaire, il est resté longtemps le seul composant à pouvoir piloter des moteurs sous faible tension, moins de 10Volts. Jusqu’à la fin des années 90, les transistors MosFet ne pouvait être mis en œuvre sans des tensions de commande de grille supérieure à 10 Volts. Quelques composants en technologie MosFet existait, mais nécessitaient 12 Volts au minimum pour fonctionner. Mais avec un boitier plus imposant, ils ont su remplacer le L298, assez fragile dans les montages des débutants.
La troisième raison est liée à son boitier. Un circuit intégré en boitier DIL 18 est simple à tester sur plaque d’essai et simple à utiliser dans un circuit imprimé d’amateur. Depuis, il existe aussi en boitier CMS, assez difficile à se procurer. Mais en boitier CMS, il existe maintenant de nouveaux composants plus performants, en technologie MosFet sous de faible tension.
Et pour finir, il faut croire que le marché des interfaces moteurs sous 1A n’était pas intéressant dans ces années là. En effet, si l’on regarde de près les performances du L293D, on a de quoi être déçu. Son rendement est médiocre. On peut perdre jusqu’à 40% d’énergie et faire monter sa température inutilement. Un pont en H réalisé avec des transistors discrets serait plus efficace.
Dominer la bête
Avant de vouloir dompter la bête, il faut regarder son schéma de principe et sa table de vérité.
Look, look at the design
En regardant ce schéma, on ne trouve rien de bien compliqué. Le symbole en triangle indique que le niveau en sortie sur Y est dicté par le niveau sur l’entrée A. la table de vérité confirme cette remarque. Ce symbole, on l’appellera un amplificateur. Comme par hasard, c’est le même symbole qui est utilisé pour représenter les amplificateurs opérationnels. On remarque aussi la présence d’une ligne de validation d’une paire d’amplificateur.
Application standard, peu utilisée
La première idée de schéma de mise en œuvre consistera à brancher un moteur entre deux sorties ayant la même ligne de validation. Cette ligne de validation sera mise à un niveau logique haut. Pour faire tourner le moteur dans un sens, on appliquera un niveau logique haut sur une des deux entrées et un niveau logique bas sur l’autre entrée. pur faire tourner le moteur dans le sens inverse, on inversera les niveaux logique sur les entrées. on a donc besoin de deux lignes seulement, pour piloter un moteur. Mais que se passe-t-il lorsque les signaux d’entrées sont au même niveau? D’après la table de vérité, les deux bornes du moteurs seront au même potentiel. Quelque soit la valeur du potentiel, 0 Volt , 9 Volts ou une autre valeur, cette situation correspond à un court-circuit du moteur. Or un court-circuit sur un moteur est équivalent à un freinage dynamique, si le moteur tournait avant de se retrouver dans cette situation. les diodes internes de roues libres entrent en jeu pour éviter de détruire les transistors qui sont sur le chemin du courant inverse.
Ce schéma, assez simple, n’est pas souvent utilisé par les amateurs. Pourquoi ?
Nous n’avons pas encore parlé de la variation de vitesse d’un moteur à l’aide de ce composant. Sur le schéma précédent, si l’on souhaite faire varier la vitesse, cela semble indispensable, il faut générer un signal carré sur l’entrée associée à un sens de rotation. Mais pour l’autre entrée, il faut aussi générer le même type de signal. Nous ne rentrerons pas dans le détail, ici, des notions de rapport cyclique proportionnel à la vitesse espérée pour le moteur, vous trouverez ailleurs sur ce site ou sur Internet, les informations utiles. Et si on doit piloter deux moteurs, cela nécessite 4 signaux à générer. est-ce réellement un problème ? Oui et Non. Les roboticiens ont pris l’habitude assez agréable d’utiliser des microcontrôleurs possédant des ressources internes permettant de générer automatiquement ce type de signaux. Mais la plupart de ces composants ne disposent que de deux lignes spécialisées. Or ce schéma en a besoin de quatre. Voila une des raisons du manque d’intérêt de ce schéma parmi les amateurs. Mais ce n’est pas une raison pour les plus aguerris, car la plupart des robots roulants, réalisés avec ce composant, n’ont pas besoin d’une variation de vitesse pointue. le programme de contrôle des moteurs n’a pas besoin d’être sophistiqué. Un compteur dans un sous programme d’interruption suffit à résoudre le problème.
Application annexe, très utilisée
Ce schéma est une variante du schéma standard. Son intérêt réside dans l’utilisation de la ligne de validation (Enable) pour faire varier la vitesse de rotation du moteur quelque soit le sens de rotation. celui-ci étant choisi par une seule ligne appliquée sur une des entrées A, sachant que on aura toujours l’inverse sur l’autre entrée A. Une porte logique inverseuse implémente cette dernière fonction.
Lors du fonctionnement avec ce schéma, la tension Vcc2 est appliquée aux bornes du moteur lorsque la ligne de validation est à l’état haut. Puis il est déconnecté lors d’un niveau bas sur la ligne de validation. A ce moment là, ceux sont les diodes de roues libres internes qui entrent en jeu pour éviter la discontinuité du courant dans le moteur. Il n’y a pas freinage, mais roue libre, contrairement au schéma précédent.
Cette dernière situation n’est pas la meilleure pour un moteur, sauf si on souhaite disposer d’un point mort afin de faire tourner la roue manuellement. En effet, sur bon nombre de montage, il est important que le moteur soit “calé” en tout point. Or, avec ce montage, la charge aura un impact plus grand sur la moteur et donc sur le fonctionnement global, en raison de ce” trou” du à l’effet roue libre.
Voici une vidéo sympathique sur son fonctionnement, en anglais d’Inde, dans le texte. L293D_Youtube
A suivre…