Les essais avec l’EasyDriver v4.4 n’ont pas donné entière satisfaction. En effet, 8 micros-pas par pas ne semblent pas suffisants pour un mouvement fluide à très faible vitesse. Nous examinons aujourd’hui une seconde breakout board qui donnera peut-être de meilleurs résultats.
Présentation de la DRV8824 de Pololu
La DRV8824 de Pololu est une autre candidate pour le pilotage des moteurs pas-à-pas par micro-pas. Cette Breakout Board intègre un circuit intégré Texas Instruments DRV8824 ainsi que les composants permettant de le mettre en œuvre. Voici la datasheet du DRV8824. Cette Breakout Board porte donc le même nom que le composant qu’elle intègre ce qui ne va pas me faciliter la description. Dans la suite je vais donc utiliser DRV8824 quand il s’agit de la Breakout Board et Ti DRV8824 quand il s’agit du composant de Texas Instruments
Le Ti DRV8824 permet 32 µPas au maximum là où l’Allegro A3967 n’en permettait que 8. Cette meilleure résolution devrait permettre une plus grande fluidité de mouvement. Comme on va le voir le principe d’utilisation est quasiment identique entre les deux circuits.
Pololu recommande également de ne jamais débrancher le moteur en laissant la DRV8824 sous tension, il pourrait en résulter la destruction du Ti DRV8824.
La DRV8824 est une carte beaucoup plus petite que l’EasyDriver. Elle ne mesure que 20,5mm sur 15,5mm. On peut la voir comme un composant 16 broches avec deux lignes de 8 broches au pas de 2,54mm écartées de 12,7mm. On la trouve pour une douzaine d’Euros. Elle se présente comme ceci :
Le Ti DRV8824 est aussi plus petit avec des broches au pas de 0,65mm. Contrairement à l’EasyDriver, il n’y a pas de régulateur de tension car il est inutile. En effet, le Ti DRV8824 intègre son propre régulateur de tension pour générer le 3,3V nécessaire à partir de la tension du moteur.
Il n’y a pas non plus de condensateur chimique de filtrage. Par conséquent, il est nécessaire d’en prévoir un en externe sur l’alimentation du moteur. Ce condensateur dont la valeur doit être au moins de 47µF est indispensable pour filtrer les transitoires à l’allumage qui risqueraient d’endommager le Ti DRV8824. Pololu met en garde à ce sujet.
Comme sur l’EasyDriver, nous retrouvons un potentiomètre de réglage du courant maximum. La valeur de ce courant est également fixée par la tension de référence Vref au point de mesure et la résistance de capture de courant Rs. Le courant maximum Imax est donné par la formule : Imax = Vref / 5Rs. Contrairement à l’EasyDriver la valeur minimum de Vref n’est pas de 1V mais de 0V, ce qui théoriquement permet de descendre plus bas. En pratique, la documentation du Ti DRV8824 indique que les performances sont moindres si Vref est en dessous de 1V.
Le rôle des 16 broches est indiqué au verso de la carte.
- Le moteur pas-à-pas est connecté via les A1 et A2 pour la première bobine et B1 et B2 pour la seconde. ;
- L’alimentation du moteur est connectée sur les deux broches VMOT et GND (entre 8,2V et 45V). Il est également possible d’alimenter le moteur avec une tension plus élevée que celle qu’il supporte à condition de régler le courant à une valeur inférieure ou égale au courant supporté par le moteur ;
- Les deux masses sont reliées entre elles et l’une au moins devra être connectée à la masse de la carte microcontrôleur employée (Arduino ou autre) ;
- RESET, ENABLE et SLP (pour SLEEP) permettent respectivement de faire une réinitialisation du Ti DRV8824, de l’activer ou de le mettre en veille ;
- RESET doit être amené à 0 puis à 1 pour réinitialiser le Ti DRV8824. Les deux bobines sont alimentées à 70,71% et le rotor se place sur un demi-pas. Le Ti DRV8824 tire RESET à 0 via une résistance interne de 100kΩ. Il est donc nécessaire de connecter RESET au 5V pour que que le RESET ne soit pas actif.
- ENABLE doit être constamment à l’état 0 (bas) pour que le Ti DRV8824 pilote les bobines du moteur et que ça logique soit opérationnelle. Cette entrée est tirée à 0V via une résistance interne de 100kΩ. On donc peut laisser cette broche en l’air ;
- Enfin SLP peut être mise à l’état bas pour mettre le Ti DRV8824 en veille. Cette entrée est tirée à 0V via une résistance interne de 1MΩ. Il faut donc raccorder cette broche au 5V pour que le pilote reste actif.
- M0, M1 et M2 permettent de fixer le nombre de micro-pas entre 2 pas selon la table suivante. Le Ti DRV8824 tire ces broches 0V via des résistances internes de 100kΩ avec pour conséquence un mouvement par pas entiers si ces elles sont laissées en l’air. Il est donc nécessaire de les relier conformément à la table ;
M2 | M1 | M0 | Mode |
0 | 0 | 0 | Pas entiers |
0 | 0 | 1 | 1/2 pas |
0 | 1 | 0 | 4 micro-pas |
0 | 1 | 1 | 8 micro-pas |
1 | 0 | 0 | 16 micro-pas |
1 | 0 | 1 | 32 micro-pas |
1 | 1 | 0 | 32 micro-pas |
1 | 1 | 1 | 32 micro-pas |
- DIR fixe le sens de rotation du moteur ;
- STEP permet de faire avancer le moteur au micro-pas suivant. Une transition de 0 à 1 provoque cette avance.
- Enfin le Ti DRV8824 met FAULT à 0 si un courant excessif ou une température trop élevée est détectée.
Par rapport à l’EasyDriver, la broche permettant de sélectionner la manière dont le courant décroît est manquante. Elle est bien présente sur le Ti DRV8824, il s’agit de la broche 19 : DECAY, mais n’est pas disponible sur le DRV8824 et est laissée en l’air. Cette configuration fixe la décroissance du courant à mixed.
Soudage des broches et carte de montage
Le DRV8824 est livré avec une barrette à broches que j’ai soudée sous la carte. Il n’y a absolument pas la place de l’équiper des mêmes connecteurs que ceux que j’ai utilisés pour l’EasyDriver.
Afin de pouvoir réutiliser ma connectique, j’ai bricolé une petite carte accueillant le DRV8824 et mon connecteur pour le moteur et s’enfichant dans la breadboard.
Le connecteur d’alimentation sera planté séparément sur la breadboard pour pouvoir ajouter le condensateur de filtrage préconisé par Pololu.