1er octobre 2012
Notre carte doit nous permettre de piloter nos moteurs 919D. Nous pensons utiliser un pont en H nommé L298 alimenté par une batterie de 9 V. Nous devons nous assurer que ces composant sont compatibles.
Nous alimenterons la logique du hacheur (VSS) en 5V. Ceci nous donne la tension acceptable par le hacheur pour la partie puissance. Celle-ci doit se trouver entre VIH et 46 V. VIH est la tension logique pour correspondant à un état haut. VIH est doit être comprise entre 2,3 V et VSS. Dans notre cas, VIH sera égal à VSS. Notre tension de batterie est comprise entre 5 V et 46 V, nous pouvons en conclure que la batterie est "compatible" avec notre hacheur.
L’autre grandeur qui nous intéresse est la tension en sortie du hacheur (ou en entrée du moteur). Cette tension est égale à la tension d’alimentation moins les chutes de tensions. La fiche technique du L298 indique [1] une chute de tension de l’ordre de 3 V (entre 1,8 V et 4,9 V).
Les moteurs sont alimentés par une tension variant de 6 V à 9 V
Ces moteurs peuvent consommer plus de 2 ampères [2] en fonctionnement normal.
C’est lorsque les moteurs sont bloqués qu’ils consomment le plus courant. En supposant que le courant consommé est proportionnel au couple du moteur, on peut utiliser le couple bloqué et les caractéristiques au rendement maximal pour estimer la plus forte consommation du moteur.
IMAX = 2,1 * 670 / 118,2
IMAX = 11,9 A
Il s’agit clairement d’une valeur que nous ne souhaitons pas atteindre ! Notre pont en H est limité à 4 ampère et cela devrait être suffisant pour nos applications.
Nous décidons d’utiliser le schéma indiqué dans la fiche technique du L298 [3]
Ce modèle de pont en H ne dispose pas de diodes de roue libre intégrées. Il faut donc penser à en rajouter de manière à éviter les surtensions aux bornes du moteurs. Ces surtensions peuvent facilement détruire le pont en H.
Nous voulons piloter le pont en H.
Notre carte doit pouvoir lire la roue codeuse fixée au moteur. D’un coté, il faut connaitre le nombre d’impulsion sorti par la roue codeuse, de l’autre il faut connaitre le sens de rotation de la roue codeuse.
Nous l’avons vu plus haut, la carte pourrait souffrir d’un courant trop élevé traversant le moteur. Nous souhaitons donc mesurer ce courant.
Nous relions une patte PWM du microcontrôleur aux pattes "Enable" A et B du pont pont en H. Ceci permettra de faire varier progressivement la tension de sortie. Nous ajoutons une résistance de 10 kOhm entre "Enable" (du L289) et la masse. Nous avons ainsi la garantie que les pattes "Enable" sont à la masse lorsque le microcontrôleur n’est pas actif. On évite certains mouvements non désirés du moteur.
Nous relions deux broches du microcontrôleur au L298. L’une aux entrées In1 et In4, l’autre aux entrées In2 et In3. Ces pattes nous permettent de piloter le sens de rotation du moteur.
Nous relions directement l’une des voies de la roue codeuse à une entrée de type compteur [4] de notre microcontrôleur.
Les roues codeuses renvoient généralement deux signaux : les voies A et B. La voie B est en avance sur la voie A dans un sens de rotation et en retard dans l’autre sens de rotation [5].
Quand la voie B est en avance, elle passe de l’état bas à l’état haut alors que la voie A est encore à l’état bas.
Quand la voie B est en retard, elle passe de l’état bas à l’état haut alors que la voie A est déjà arrivée à l’état haut.
La valeur de la voie A, lorsqu’un front montant [6] survient sur la voie B, nous donne le sens de rotation.
La bascule D est l’outil idéal pour ce genre de traitement. Elle dispose de deux entrées, l’une nommée donnée, l’autre nommée horloge. Sa sortie est l’état mémorisé de la donnée lors du dernier front montant de l’horloge.
Comme nous comptons les impulsions sur la voie A, nous souhaitons détecter les changement de sens lorsque la voie A est stable. Ceci devrait permettre au microcontrôleur d’effectuer ses calculs avant qu’une nouvelle impulsion ne survienne. C’est pour cela que nous relions la voie A à l’entrée "donnée" et la voie B à l’entrée "horloge".
Le pont en H permet de rajouter des éléments en série avec le moteur. C’est l’utilité des sorties "Sense" 1 et 2. Comme sur le schéma du L298, nous les relions la masse à travers une résistance. Nous choisissons une résistance la plus faible possible (0,39 ou 0,1 Ohm). La tension aux bornes de cette résistance est proportionnelle au courant qui traverse le moteur.
Nous relions les sorties "Sense" à un convertisseur analogique numérique de notre microcontrôleur. Nous comptons protéger le circuit en coupant le pont en H si ce courant est trop important.
Notre montage présente un défaut important. Si le microcontrôleur bug, nous perdons la protection. Un système à base de comparateur et de portes logiques aurait été plus fiable mais il aurait pris plus de place.
Les plans qui sont joints ne sont pas ce qui ont été utilisés pour réaliser nos cartes. En effet, nous avons envoyé une version brouillon de la carte avec des pistes bien trop fines.
Un autre défaut vient d’un composant qui a subit involontairement une opération "miroir" sur le typon. Il n’y avait qu’une seul solution pour utiliser la carte, placer le composant coté piste et le souder sur son "dessus". Une opération simple à condition de renoncer au porte composant.
Nous espérons qu’aucune erreur ne se soit glissée lors de l’amélioration
Voici la carte une fois soudée :
On s’aperçoit que le hacheur L298, le condensateur 1 mF, le régulateur de tension 7805 et la résistance de puissance sont très tassés. La nouvelle version (non testée) de la carte devrait régler ce problème.
[1] Tableau :ELECTRICAL CHARACTERISTICS, ligne "Total Drop", page 3
[2] Voir "courant à l’efficacité maximale" dans la fiche technique du moteur - Tableau MOTOR DATA.
[3] Figure 7 page 7 de la fiche technique du L298
[4] "Timer" en anglais, dans la fiche technique
[5] Les rôles des voies A et B sont parfaitement interchangeable
[6] Il est aussi possible de travailler sur les fronts descendant
k-lean, le 1er/10/2012
Hé mais on n’est qu’en octobre ! Vous êtes trop en avance là, vous allez vous ennuyer début mai ?! ;)
Ajouter un commentaire