L'une des pièces maîtresse, dans l'électronique d'un robot, est probablement le pont en H. Si vous souhaitez faire tourner un moteur dans n'importe quel sens et en contrôler la vitesse, vous n'y échapperez pas. Il existe beaucoup (mais alors vraiment beaucoup) de schémas de ponts en H disponibles sur le net, de qualité variable.
L'objectif de ce tutorial est de vous expliquer comment en construire un, simple mais performant, de faible coût de revient.
Un pont en H c'est un circuit destiné au pilotage d'un moteur qui a deux rôles principaux :
Si on inverse la courant suffisamment vite, on peut même contrôler la vitesse du moteur (c'est ce qu'on appelle une modulation en PWM).
Pour plus de détails, on pourra se rapporter aux liens suivants :
Il existe beaucoup de circuits intégrés utilisables. En voici une sélection des plus classiques et répandus, ainsi que de celui que nous allons utiliser (VNH2SP30)
| Référence | L298N | L6203 | LM18200 | MC33886 | A3950 | VNH2SP30E |
| Format | 2 moteurs | 1 moteur | 1 moteur | 1 moteur | 1 moteur | 1 moteur |
| Datasheet | page chez ST datasheet |
page chez ST datasheet |
page chez NS datasheet |
page chez Freescale datasheet |
page chez ST datasheet |
|
| Tension Min | 5V | 12V | 9-11V | 5V | 6.5V | 5.5V |
| Tension Max | 46V | 48V | 55V | 40V | 36V | 16V |
| Courant Max | 4A (en tout) 2,5A si t<10mS 3A en parallèle |
4A 5A crête |
3A 6A crête |
5A continu 8A crête |
2.8A continu 3A crête |
30A |
| FréquencePWM max | 40kHz | 30-100kHz | 500kHz | 10kHz | 50kHz | 20kHz |
| Résistance interne | chute de tension fixe 4.9V | 300mOhms | 300mOhms | 120mOhms | 350mOhms | 19mOhms |
| Protections | protection surchauffe | protection surchauffe | protection court-circuits protection surchauffe protection sous-alimentation |
protection court-circuits protection surchauffe protection sous-alimentation |
protection court-circuits protection surchauffe protection sous-alimentation |
protection court-circuits protection surchauffe protection sous-alimentation protection sur-alimentation |
| Divers | current sense | current sense | current sense | limitation courant progressive | limitation courant progressive current sense |
|
| Type Boîtier | Multiwatt15 / MPowerSO20 | Multiwatt11 | Multiwatt11 / SO20 | HSOP20 (exposed pad) | TSSOP16 (exposed pad)/ QFN16(exposed pad) |
MPowerSO30 |
| Prix indicatif (juil 2007) | ||||||
| Remarques | La protection de sous-alimentation se déclenche très tôt (11V). Ca peut être dangereux dans un robot... | Pas facile à souder correctement |
Nous vous proposons de construire une carte pont en H avec les caractéristiques suivantes :
Mais d'abord, pourquoi une telle carte ?
Nous sommes donc partis d'une carte disponible dans le commerce, et l'avons adaptée à nos besoins (ajout d'un régulateur et d'optocoupleurs pour en faire une carte autonome).
Maintenant, entrons dans le vif du sujet !
Pour mieux comprendre, on se rapportera au schéma de la carte...
Le coeur de cette carte est le pont-en-H VNH2SP30-E de ST, décrit dans la table ci-dessus et disponible en Allemagne, ici, ou chez Digikey UK. Il présente plein de bonnes caractéristiques (puissant, compact, pas cher, ...) et inclut tout un tas de protection bien utiles dans ce type de carte et de compétition.
Ce circuits dispose des entrées-sorties suivantes :
Pour faire simple, nous n'utiliserons que les entrées de commande : la sortie de mesure de courant et celles de signalisation d'erreurs ne sont pas utilisées dans cette version-ci de la carte. Une version plus évoluée de cette carte (disponible vers la rentrée 2008) les utilisera...
Conséquence : les IO inutilisées ne sont pas utilisées (!!!). Mais il faut quand même les relier ce qu'il faut pour que le circuit fonctionne correctement (cf datasheet) :
Un moteur génère beaucoup de bruit et de surtensions dans l'alimentation. On pourra consulter le site de 4QD Tec pour plus de détails là-dessus. Dans certains cas pathologiques, ces surtensions peuvent même être destructrices pour le reste de composants (microprocesseur...).
Pour éviter tout problème, l'une des solutions possibles consiste à séparer totalement le circuit de puissance du circuit logique de commande. Comme ça, les interférences restent confinées dans les moteurs et leur batterie, et tout va bien.
Conséquence :
Nous avons choisi, comme optocoupleurs, des ACSL6400 d'Avago (ex-Agilent), car ils sont rapides (c'est important pour avoir un PWM de qualité), simples à mettre en oeuvre, et disponibles chez Farnell. Comme on utilise que 3 voies sur les 4, on aurait bien sûr prendre la version triple (ACSL6300), mais ils sont moins faciles à se procurer...
Ces optocoupleurs ont une sortie en collecteur ouvert (oui, ce n'est pas évident dans la datasheet), ce qui veut dire qu'ils sortent soit un 0 soit rien (haute impédance). Pour obtenir un 1, il faut leur mettre des pull-up en sortie : R32-R37.
Pour piloter correctement les optocoupleurs, il faut fournir 15mA à la diode comme courant de commande, ce qui est beaucoup trop pour certains microprocesseurs ou FPGA. On intercale donc entre le processeur et les optocoupleurs un buffer (amplificateur de courant). Nous avons choisi un 74ALVCH245AD, qui peut être alimenté en 3.3V (la tension de notre FPGA). On pourra le remplacer par un 74ABT245 par exemple au cas où le microprocesseur est en 5V. De plus, on insère les résistances R24-R29 de 330ohms pour limiter ce courant à la valeur normale (15mA).
Pour éviter que les moteurs démarrent quand on a oublié de brancher le câble (ou que le processeur n'a pas encore booté, que le FPGA n'est pas encore configuré, etc.), on rajoute des pull-down en entrée du buffer : R39, R41-R43.
L'alimentation de opto-coupleurs (côté puissance) est produite à patir d'un régulateur spécial permettant d'encaisser des surtensions très hautes : TS2937CP-5.0.
L'alimentation logique sera produite par le micro-processeur.
De plus, pour un contrôle visuel rapide, on a placé deux LED sur les deux alimentations (puissance et logique)...
Enfin, pour être sûr, on a placé un fusible ré-armable (ou de voiture si on préfère)...
Les connecteurs de notre robot ont été choisi avec attention, pour qu'il soit impossible de faire une fausse manip (et pourtant, malgré ça, ... mais bon c'est une autre histoire :) ).
Le PCB est réalisé en double couche, et tous les composants sont en CMS : non seulement c'est plus joli que des composants à percer, mais ça permet d'obtenir une carte beaucoup plus compacte.
Les dimensions des pistes ont été choisie de façon à ce que tout le monde puisse graver cette carte :
Les fichiers de fabrication (tous ne sont pas encore disponible, mais ce sera bientôt le cas) :
L'assemblage est disponible au format png :
La liste des composants est disponible ici. Le code fournisseur correspond à la référence chez Farnell (Fa : xxxx) ou Radiospares (Rs : xxxx) .
Le soudage du pont en H mérite un petit peu d'explications : il possède, en dessous, trois broches qui devraient être soudées au circuit imprimé pour permettre une meilleure dissipation de la chaleur. Le problème, est qu'à moins de jouer avec un pistolet à air chaud ou de disposer d'un four à CMS, c'est impossible à faire manuellement. Heureusement, tant que l'intensité n'est pas trop grande (moins de 10A par pont, en continu), il n'y a en fait pas besoin de les souder : un peu de pâte thermique avant de souder le pont, et le tour est joué ! Croyez-nous, la pâte suffit amplement.
De toutes façons, la carte a été conçue pour être fixée directement contre le robot, sur une plaque en aluminium, qui servira de radiateur très efficace !!!
| Fichier attaché | Taille |
|---|---|
| BOM_pont_en_H.xls | 16 Ko |
| schemas_pont_H.pdf | 17.16 Ko |
| top_bottom_Pont_H.pdf | 76.79 Ko |