Stepstick et moteurs pas à pas

De VoWiki
Aller à : Navigation, rechercher

AccueilNos Projets

Association VoRoBoTics

Date : 02/02/2018

Auteur : J MajorLee Soranzo

Relecteur :

Thème: pilotage des moteur pas à pas

Projet : aucun en particulier

Présentation

carte à base d'ULN2003

Il s'agit ici de regroupé tout ce que nous utilisons fréquemment concernant ce sujet.

Surtout en ce qui concerne les stepstick A4988 et DRV8825 qu'on utilise souvent en relation avec des NEMA17.

Il y a plusieurs façons de piloter un moteur pas à pas.

1. Avec un ULN2003 driver darlington. Vendu typiquement avec les petits moteurs avec réducteur. Ils nécessite 4 broches de l'Arduino pour être pilotés. Et l'Arduino pilote alors chaque bobine tour à tour.

2. Une carte driver moteurs comme la célèbre Adafruit Motor Shield. A ce propos assurez-vous de bien prendre la V2 qui est basée sur PCA9685 et 2 TB6612 pilotée en I2C donc avec seulement de sorties de l'Arduino.

3. Et enfin un 'chopper' qui fait varier la tension afin de garde le courant constant, comme le A4988 ou le DRV8825. Propos du présent article.

Présentation succincte des stepsticks

Les 2 principaux sont le A4988 et le DRV8825. Ces 2 petites cartes électroniques prennent en réalité le nom du composant à partir duquel elles sont construites.

A4988 DRV8825
PhotoA4988 articleStepStick.jpg PhotoDRV8825articleStepStick.jpg

A4988

Comment les identifier ?

La couleur du pcb ? Pas très fiable, il y en a des rouges, des verts, des bleus...
Le boîtier de composant: le A4988 est en général en boîtier carré QFN 28 broches 5x5mm
Au passage c'est un composant du fabricant Allegro microsystem
La référence sur le composant (à condition que le dissipateur ne soit pas encore collé dessus !)

Le schéma du stepstick:

Bien que de fabricant différent, ces cartes partage quasiment toutes le même schéma de principe
SchemaA4988 articleStepstick.png
Sur ce schéma, plusieurs petites choses sont importantes:
La résistance variable R9 et les 2 résistance R7 et R8 de très faible valeur qui vont de paire et qui interviennent dans le réglage du courant. décrit ci-après.
ENABLE/ actif à 0 à une pull down de 10k donc peut être laissée non connectée
SLEEP/ actif à 0 à une pull up donc peut être non connectée également.
D'après la datasheet MS1, MS2, MS3 ont des pull-down interne de 100k sauf MS2 50k !
Pas de résistance de tirage sur la broche RESET/ donc il est NECESSAIRE de la piloter
besoin de 2 alimentations pour fonctionner : une pour le moteur (de 8 à 35V) et une pour la logique (de 3V à 5V)

DRV8825

En général, le pcb est violet mais restez vigilant.

Le circuit DRV8825 est dans un boîtier TSSOP 28 broches (tout en longueur contrairement au A4988 qui est carré avec des pattes sur les 4 côtés) du fabricant Texas Instruments.

Schéma :

DRV8825-schema articleStepStick.png

A noter

la présence de R1, R2, R3.
A noter également que la broche DECAY (19) n'est pas raccordée et donc n'est pas disponible pour l'utilisateur.
SLEEP, ENABLE et RESET ont toutes des pulldowns internes donc par défaut, le composant est en RESET. Il vaut mieux donc piloter cette broche !
FAULT est une sortie à drain ouvert
Une seule alimentation. C'est bien et c'est pas bien car pour faire le réglage du potentiomètre, il faut la tension moteur (même si celle-ci peut être très différente de la tension réellement utilisée puisque le composant possède sa propre régulation interne 3V3).

Brochage des comparé des 2 cartes

Ces 2 petites cartes ont le même brochage...

A4988 DRV8825
A4988pinout articleStepstick .jpg Xdrv8825-pinout articleStepStick.jpeg
VMOT 8 à 35V

VDD 3 à 5V

D'après le schéma GND MOT

et GND LOGIC sont identiques

VMOT 8.2 à 45V

Mis à part la broche VDD (A4988) et FAULT (DRV8825)

Microsteping

Le DRV8825 autorise une combinaison supplémentaire avec [M3..M0] codés en binaire et permet de monter jusqu'au 1/32ième de pas et permet ainsi avec un moteur 200pas/tour d'atteindre 6400pas/tour au détriment du couple (tout se paye).

Remplacer un A4988 par un DRV8825

En général, cela se passe bien attention toutefois au sens des 2 cartes.

Lorsque la borche ENABLE est en haut à gauche, le potentiomètre est en bas pour une A4988 et en haut pour un DRV8825 (voir les photo du pinout ci-dessus).

On se prive également de la fonctionnalité de la broche FAULT qui est câblée pour mettre automatiquement le composant en mode SLEEP (voir schéma)

Réglage des potentiomètres

Pour ceux que l'anglais ne rebutent pas article Pololu

ou encore la vidéo Youtube de Calire de Pololu Electronics comme elle le dit. Très bien faite mais en anglais of course !

Thank's for the the screw driver trick tu mesure the Vref at the cursor of the potentiometer

La manip est plutôt simple et peut très bien être réaliser sans moteur.

Il suffit de mesurer/régler la tension directement sur le curseur du potentiomètre et d'appliquer une formule qui dépend des résistance de "sense"

Pour mémoire plus le courant est fort, plus ça aura tendance à chauffer (à la fois côté stepstick mais aussi côté moteur parfois).

Plus le courant est faible moins on a de couple (pour une tension Vmot donnée).

Pour le A4988

L'alimentation de la partie logique suffit pour ce réglage (pas besoin de Vmoteur).

Par contre si cette alimentation change de valeur (de 3.3 à 5V par exemple, il faut refaire le réglage).

Formule Vref = I x 8xRs (Rs résistances sur la broche sense sur le schéma 0.05Ω)

Soit I = Vref x 2.5, exemple pour un Vref messuré de 0.4V on a un courant max dans les bobines de 1A.

Attention toutefois, on trouve sur le marcher des stepstick A4988 avec des senses différents (voir article Pololu).

0.05Ω pour ceux produit avant janvier 2017

0.068Ω pour ceux produit après...

Mieux vaut bien se renseigner avant d'acheter.

P = R x I2 : 0.43Ω x 1A = 0.43W

Imax 2A sous 35V.

Rappel : plus la température augmante plus la puissance supportable par le composant diminiue (et ça peut aller très vite !)

CourbeTempversusPowA4988 articlestepstick.JPG

Pour le DRV8825

L'alimentation Vmot est nécessaire (puisque de toute manière, il n'y a pas d'alimentation pour la logique) oui mais non car il faut malgré tout polariser les signaux Reset et enable surtout.

Formule : Vref = 5x I x Rsense soit pour Rsens = 0.1Ω Vref= I/2 (cool) donc pour 1A => Vref = 0.5V !

La méthode de mesure est la même : directement sur le curseur du potentiomètre.

Le Vref est pris sur le 3V3 out donc même si la tension moteur change le VREF reste inchangé.

Attention Imax pour le DRV : 2.5A sous 24V à 25°C (données fournies par le fabricant)

Utilisation / branchement

A4988 wiring articleStepstick.png

Le branchement ne pose pas de gros problème.

On notera toutefois le petit lien entre SLEEP et RESET pour palier au fait que RESET n'a ps de pumllup et que SLEEP en a une de 10K

On peut également piloter le reset à partir du microcontroler. Il en va de même pour la broche ENABLE\

Pour le DRV, il en va de même:

Drv8825WiringArticleStepstick.png

On notera sur le schéma ci-dessus une autre façon de brancher RESET et SLEEP

Une librairie Arduino bien utile pour les utiliser est disponible ici

NEMA 17 et VMOT

Quelle est la tension d'alimentation Vmot qu'on doit utiliser par exemple lorsqu'on connecte un NEMA17 par exemple.

La datasheet de ce dernier mentionne : 2.8V !

Ce paramètre n'en n'est pas vraiment un c'est plutôt une conséquence de la résistance et du courant 1.65*1.68 = 2.772A

Mais alors quel tension pour Vmot ? Cela dépend de la vitesse max des pas ici 2500pps (pas par seconde)

Ce qu'on cherche a obtenir dans la bobine c'est le courant maximum à cette vitesse donc en 1/2 période d'un signal à 2500Hz soit en 0.2ms

La loi qui régit le courant dans la bonbine est i = V/R x ( 1 - exp ( -t / L/R ) )

On connait L = 2.8mH, R=1.65Ω, t = 0.2ms, i=1.68A on en déduit V = 14.88V

Et si on veut faire du microstepping on arrive vite à des tensions élevées 29V en 1/2 pas 58V en 1/4 de pas...

Ceci évidement si on veut le couple maximum à vitesse maximum, ce qui n'est pas toujours forcément une nécessité...

ArticleStepStickNEMAextrait.JPG

Mais attention dans de telles conditions autant dire que dissipateur et ventilateur sont nécessaires

Silent stepstick

Une nouvelle génération de stepstick a fait sont apparition:

TMC2100, TMC2130, TMC2208 du fabricant Trinamic

Je n'en dirai pas grand chose ici par manque d'expérience. Peut-être plus tard mais quand ?

Tableau comparatif chez Watterott

Chez AliExpress @5€70

Par 5 avec protector chez Aliexpress 30€13 (pris constaté le 10/02/2018).

Globalement le brochage est compatible même si pour certaines version il y a des broches à ne pas connecter.

Tmc 2100 wiring.jpg

A noter que le 2130 et le 2208 peuvent être configuré en SPI ou en mode UART !

Stepstick protector

Il s'agit de placer des diodes de clamping sur chacun des fils des bobine soit 8 diodes au total !

StepstickProtector articleStepstick.JPG

5€25 cher Wattetott

2€07 chez Aliexpress

StepstickProtector ensemble articleStepstick.JPG

Prix comparés

A4988 : 1€86 chez Banggood

DR8825 : 2€15 chez Bangood également.

TMC2100 : 8€27 sur le même site

Prix constaté le 10/02/2018, frais de port gratuit.

On les trouve également par 3, 5 ou 10pcs à des prix encore plus bas !

webographie

A4988 datasheet locale

Sur le site du fabricant

DR8825 datasheet locale

Et sur le site du fabricant

Chez Pololu: DRV8825 board et A4988 board

La datasheet du NEMA17 locale

Article chopper driver Schneider Electric

Article fort intéressant mais en anglais de New Japan Radio Co., Ltd

Et bien sur les bobines sur wikipédia

Librairie StepperDriver de Laurentiu Badea

Rédaction en langue française

Partant du constat de terrain qu'une énorme masse d'information concernant les sujets qui nous intéressent comme entre autres l'impression 3D n'étaient disponibles que dans la langue de Shakespeare et que de nombreuses personnes dans notre entourage ne maîtrisaient pas la dite langue et soucieux de diffuser encore plus l'information, nous avons pris le parti, au VoLAB, de rédiger nos documents de préférence en langue française.

VoLAB

Un mot sur le VoLAB. VoLAB est un fablab implanté à environ 30km au nord-ouest de Paris dans la commune de Vauréal dans l'agglomération de Cergy Pontoise. Il est animé par l'association VoRoBoTics.

Site internet www.vorobotics.com