Différences entre versions de « DRV8825 »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(46 versions intermédiaires par le même utilisateur non affichées)
Ligne 6 : Ligne 6 :
 
Ce breakout de contrôle moteur pas-à-pas DRV8825 est basé sur le DRV8825 de Texas Instrument pouvant piloter un moteur pas-à-pas en micro-stepping (micro pas). Le module dispose d'un brochage et interface presque identique à notre {{pl|349|contrôleur de moteur pas-à-pas A4988}}. Il peut donc être directement utiliser en replacement sur les différentes cartes d'interface avec ce modèle haute performance.
 
Ce breakout de contrôle moteur pas-à-pas DRV8825 est basé sur le DRV8825 de Texas Instrument pouvant piloter un moteur pas-à-pas en micro-stepping (micro pas). Le module dispose d'un brochage et interface presque identique à notre {{pl|349|contrôleur de moteur pas-à-pas A4988}}. Il peut donc être directement utiliser en replacement sur les différentes cartes d'interface avec ce modèle haute performance.
  
Le DRV8825 intègre un limiteur de courant actif et réglable. Vous disposez également d'une protection contre les surcourant, la surchauffe avec 6 résolutions de micro-stepping (jusqu'au 1/32 de pas). Il fonctionne entre 8.2 et 45 V et sais délivrer apprimativement 1.5 A par phase sans refroidissement (par refroidisseur ou air forcé - conçu pour 2.2A par bobine en utilisant un système de refroidissement efficace/adéquat).
+
Le DRV8825 intègre un limiteur de courant actif et réglable. Vous disposez également d'une protection contre les surcourant, la surchauffe avec 6 résolutions de micro-stepping (jusqu'au 1/32 de pas). Il fonctionne entre 8.2 et 45 V et sait délivrer approximativement 1.5 A par phase sans refroidissement (par refroidisseur ou air forcé - conçu pour 2.2A par bobine en utilisant un système de refroidissement efficace/adéquat).
  
Nous recommandons de lire attentivement la [http://df.mchobby.be/datasheet/drv8825.pdf fiche technique du DRV8825] (''1Mb pdf'') et notre tutoriel avant d'utiliser le produit. Ce pilote est capable de contrôler un moteur pas-à-pas bipolaire avec un courant allant jusqu'a 2.2 Amp par bobine (voyez la section dévolue à la Dissipation de Chaleur pour plus d'information).
+
Nous recommandons de lire attentivement la [http://df.mchobby.be/datasheet/drv8825.pdf fiche technique du DRV8825] (''1Mb pdf'') et notre tutoriel avant d'utiliser le produit. Ce pilote est capable de contrôler un moteur pas-à-pas bipolaire avec un courant allant jusqu'à 2.2 Amp par bobine (voyez la section dévolue à la Dissipation de Chaleur pour plus d'information).
  
 
== Détails techniques ==
 
== Détails techniques ==
Ligne 44 : Ligne 44 :
 
* '''B1 B2''': Deuxième bobine du moteur pas à pas bipolaire (voir exemple ci-dessous)
 
* '''B1 B2''': Deuxième bobine du moteur pas à pas bipolaire (voir exemple ci-dessous)
  
Alimentation de la logique de contrôle:
+
'''{{underline|Alimentation de la logique de contrôle:}}''':
 +
 
 +
[[Fichier:STEPSTK-DRV8825-WIRE 00.png]]<br /><small>Câblage minimal pour connecter un microcontroleur. Version alternative, compatibilité avec le pilote A4988</small>
  
[[Fichier:STEPSTK-DRV8825-WIRE 00.png]]
 
 
* '''Fault:''' Logique inversée. Branchez une tension entre 2.5 et 5.25v, celle qui alimente votre microcontrôleur.
 
* '''Fault:''' Logique inversée. Branchez une tension entre 2.5 et 5.25v, celle qui alimente votre microcontrôleur.
 
* '''GND:''' sous FAULT. Masse commune avec votre microcontrôleur.
 
* '''GND:''' sous FAULT. Masse commune avec votre microcontrôleur.
 +
 +
== Brancher le DRV8825 ==
 +
Voici le diagramme de raccordement minimal (cfr Pololu) pour connecter le contrôleur de moteur pas-à-pas DRV8825/DRV8824 sur un microcontrôleur (en mode ''full-step''/pas complet)
 +
 +
[[Fichier:STEPSTK-DRV8825-WIRE 01.png]]
  
 
== Connecter l'Alimentation ==
 
== Connecter l'Alimentation ==
The driver requires a motor supply voltage of 8.2 45 V to be connected across VMOT and GND. This supply should have appropriate decoupling capacitors close to the board, and it should be capable of delivering the expected stepper motor current.
+
Le pilote nécessite une tension d'alimentation moteur entre 8.2 et 45 V devant être connecté entre VMOT et GND. Cette alimentation devrait idéalement disposer de capacités de découplahe appropriés près de la carte et doit être capable de délivrer le courant nécessaire au fonctionnement du moteur pas-à-pas.
  
{{ambox-stop|text=Warning: This carrier board uses low-ESR ceramic capacitors, which makes it susceptible to destructive [http://www.pololu.com/docs/0J16 LC voltage spikes], especially when using power leads longer than a few inches. Under the right conditions, these spikes can exceed the 45 V maximum voltage rating for the DRV8825 and permanently damage the board, even when the motor supply voltage is as low as 12 V. One way to protect the driver from such spikes is to put a large (at least 47 µF) electrolytic capacitor across motor power (VMOT) and ground somewhere close to the board.}}
+
{{ambox-stop|text=Cette carte utilise des capacités céramiques à faible résistance série équivalente ([http://www.jmax-hardware.com/forum/index.php?topic=5171.0;wap2 low-ESR]),ce qui la rend sensible aux destructions par les pointes de surtensions induites par les circuits LC ([http://www.pololu.com/docs/0J16 plus d'info ici]), plus spécialement sur vous utilisez des câbles d'alimentations d'une longueur supérieure à quelques centimètres. Sous de mauvaises conditions, ces  pointes de tension peuvent excéder les 45 V de tension maximale du DR8825 et endommager la carte de façon permanente (même pour une alimentation moteur à 12 V). Une façon de protéger les pilotes est de placer, au plus près de la carte, une capacité électrolytique importante (au moins 47 µF) entre VMOT et la masse.}}
  
 
== Connecter le moteur ==
 
== Connecter le moteur ==
Four, six, and eight-wire stepper motors can be driven by the DRV8825 if they are properly connected; a [http://www.pololu.com/product/2133/faqs FAQ answer] explains the proper wirings in detail.
+
Vous pouvez piloter des moteurs pas-à-pas à 4, 6 et 8 fils avec le DRV8825 si vous les branchez correctement; La [http://www.pololu.com/product/2133/faqs Foire Aux Questions (FAQ)] de Pololu explique comment réaliser ce montage en détail.
  
{{ambox-stop|text=Connecting or disconnecting a stepper motor while the driver is powered can destroy the driver. (More generally, rewiring anything while it is powered is asking for trouble.)}}
+
{{ambox-stop|text=Connecter ou déconnecter le moteur pas-à-pas pendant que la carte est sous tension peut la détruire. D'une façon générale ce n'est jamais une bonne idée modifier les raccordements d'un montage si celui-ci est sous tension.}}
  
 
== Step et micro-Stepping ==
 
== Step et micro-Stepping ==
Stepper motors typically have a step size specification (e.g. 1.8° or 200 steps per revolution), which applies to full steps. A microstepping driver such as the DRV8825 allows higher resolutions by allowing intermediate step locations, which are achieved by energizing the coils with intermediate current levels. For instance, driving a motor in quarter-step mode will give the 200-step-per-revolution motor 800 microsteps per revolution by using four different current levels.
+
Les moteurs pas-à-pas documentent la taille du pas dans leur spécification (ex: 1.8° ou 200 pas par révolution), ce qui représente un pas complet. Il vous faudra donc 200 pas ''complet'' pour effectuer une rotation de l'axe.
 +
 
 +
 
 +
Un pilote micro-Stepping (''Micro Pas'') tel que le DRV8825 permet d'atteindre une résolution plus élevée en autorisant le positionnement de l'axe sur plusieurs positions intermédiaires entre deux pas complet. Cela est rendu possible en contrôlant la puissance dans les bobinage du moteur avec plusieurs niveau de courant différent. A titre d'exemple, si vous pilotez un moteur 200 pas par révolution en 1/4 de pas, vous obtiendrez au final un moteur disposant de 800 micro-pas par révolution (le DRV8825 utilisera 4 niveaux de courant intermédiaire pour contrôler la position des micro-pas).
 +
 
  
 +
Les broches de sélection de la résolution (de la taille des pas) sont les entrées M0, M1 et M2 (MODE0, MODE1 et MODE2). Ces broches permettent de choisir une résolution de micro-stepping parmi les 6 disponibles (voir la table ci-dessous). Les 3 entrées disposent d'une résistance pull-down interne de 100kΩ par conséquent, si vous ne brancher pas ces 3 broches, elles sont toutes les 3 au niveau bas et le DRV8825 fonctionnera en mode ''full-step'' (pas complet).
  
The resolution (step size) selector inputs (MODE0, MODE1, and MODE2) enable selection from the six step resolutions according to the table below. All three selector inputs have internal 100kΩ pull-down resistors, so leaving these three microstep selection pins disconnected results in full-step mode. For the microstep modes to function correctly, the current limit must be set low enough (see below) so that current limiting gets engaged. Otherwise, the intermediate current levels will not be correctly maintained, and the motor will skip microsteps.
+
Pour que le micro-stepping puisse fonctionner correctement, vous devez suffisamment limiter le courant (''suffisamment bas'') de façon à ce que le contrôle de limitation de courant puisse fonctionner correctement... sinon les niveaux de courants intermédiaires ne pourrons pas être maintenu et le moteur sautera des micro-step.
  
[[Fichier:STEPSTK-DRV8825-StepResolution.jpg|360px]]<br />High est un signal haut (entre 2.5 et 5.25v) et Low un signal bas (0v)
+
[[Fichier:STEPSTK-DRV8825-StepResolution.jpg|360px]]<br /><small>'''High''' est un signal haut (entre 2.5 et 5.25v) et '''Low''' un signal bas (0v)</small>
  
 
== Contrôle des entrées ==
 
== Contrôle des entrées ==
Each pulse to the STEP input corresponds to one microstep of the stepper motor in the direction selected by the DIR pin. These inputs are both pulled low by default through internal 100kΩ pull-down resistors. If you just want rotation in a single direction, you can leave DIR disconnected.
+
Chaque impulsion sur l'entrée '''STEP''' correspond à un micro-pas du moteur dans la direction sélectionnée avec l'entrée '''DIR'''. Ces deux entrées disposent d'une résistance Pull-down interne de 100kΩ <small>(sauf signal appliqué sur la broche, une résistance pull-down ramène toujours le potentiel au niveau bas)</small>. Si vous avez uniquement besoin de tourner dans un seul sans, vous pouvez laisser la broche DIR déconnectée.
 +
 
  
 +
Cette puce dispose de 3 entrées différentes pour contrôler ses états de puissance: RESET, SLEEP et ENBL (enable). Voyez la fiche technique pour plus de détails à propos de ces états de puissance (cherchez "''power states''"). Notez que le pilote tire le potentiel de la broche SLEEP au niveau bas à l'aide d'une résistance pull-down de 1MΩ et qu'il tire aussi le potentiel des broches RESET et ENBL au niveau bas via une résistance interne de 100kΩ (pull-down). Cet état par défaut des broches RESET et SLEEP empêche le pilote de fonctionner (pratique lors de la mise sous tension ;-) ); Ces deux broches doivent être au niveau haut (''high'') pour activer le pilote (elle peuvent être connectée directement au niveau logique haut via une tension située entre 2.2 et 5.25 V. Elles peuvent également être contrôler dynamiquement en utilisant des sorties digitales de votre microcontrôleur.
  
The chip has three different inputs for controlling its power states: RESET, SLEEP, and ENBL. For details about these power states, see the datasheet. Please note that the driver pulls the SLEEP pin low through an internal 1MΩ pull-down resistor, and it pulls the RESET and ENBL pins low through internal 100kΩ pull-down resistors. These default RESET and SLEEP states are ones that prevent the driver from operating; both of these pins must be high to enable the driver (they can be connected directly to a logic “high” voltage between 2.2 and 5.25 V, or they can be dynamically controlled via connections to digital outputs of an MCU). The default state of the ENBL pin is to enable the driver, so this pin can be left disconnected.
+
L'état par défaut de la broche ENBL active le pilote. Cette broche peut donc rester déconnectée. Vous pouvez également la brancher sur une sortie de votre microcontrôleur pour activer/désactiver dynamiquement le moteur. Placez la broche au niveau logique HAUT pour désactiver le contrôle moteur.
  
  
[[Fichier:STEPSTK-DRV8825-nSleep.jpg]]<br /><small>Schematic of nSLEEP and nFAULT pins on DRV8824/DRV8825/DRV8834 carriers.</small>
+
[[Fichier:STEPSTK-DRV8825-nSleep.jpg]]<br /><small>Schema des broches nSLEEP et nFAULT sur les pilotes DRV8824/DRV8825/DRV8834.</small>
  
The DRV8825 also features a FAULT output that drives low whenever the H-bridge FETs are disabled as the result of over-current protection or thermal shutdown. The carrier board connects this pin to the SLEEP pin through a 10k resistor that acts as a FAULT pull-up whenever SLEEP is externally held high, so no external pull-up is necessary on the FAULT pin. Note that the carrier includes a 1.5k protection resistor in series with the FAULT pin that makes it is safe to connect this pin directly to a logic voltage supply, as might happen if you use this board in a system designed for the pin-compatible A4988 carrier. In such a system, the 10k resistor between SLEEP and FAULT would then act as a pull-up for SLEEP, making the DRV8825 carrier more of a direct replacement for the A4988 in such systems (the A4988 has an internal pull-up on its SLEEP pin). To keep faults from pulling down the SLEEP pin, any external pull-up resistor you add to the SLEEP pin input should not exceed 4.7k.
+
Le DRV8825 dispose également d'une option "FAULT", broche qui passe à l'état bas lorsque les FET du pont-H sont désactivés suite à l'activation de la protection sur-courant ou sur-chauffe. La carte du DRV8825 connecte cette broche sur la broche SLEEP par l'intermédiaire d'une résistance de 10k. La résistance de 10K agit comme une résistance pull-up pour Fault (lorsque la brochhe SLEEP est maintenue au niveau Haut de façon externe; par conséquent, pas besoin de résistance pull-up sur la broche FAULT).  
 +
 
 +
Note: la carte inclus également une résistance de protection de 1.5k en série sur la broche FAULT ce qui permet de la connecter la broche directement sur l'alimentation de la logique de contrôle (ce qui sera le cas si vous utilisez une carte conçue pour être compatible avec un {{pl|349|pilote A4988}}). Dans un tel système, la résistance de 10K entre SLEEP et FAULT agira comme un pull-up pour SLEEP --- cela permet d'utiliser cette carte DRV8825 comme un remplacement directe du A4988 (le A4988 dispose d'un pull-up interne sur sa broche SLEEP). Pour empêcher les erreurs/protection de ramener le potentiel de SLEEP au niveau bas, vous pouvez utiliser une résistance pull-up sur l'entrée SLEEP mais elle ne devrait pas excéder 4.7k.
  
 
== Limitation de courant ==
 
== Limitation de courant ==
To achieve high step rates, the motor supply is typically much higher than would be permissible without active current limiting. For instance, a typical stepper motor might have a maximum current rating of 1 A with a 5Ω coil resistance, which would indicate a maximum motor supply of 5 V. Using such a motor with 12 V would allow higher step rates, but the current must actively be limited to under 1 A to prevent damage to the motor.
+
=== Le contrôle actif du courant - Un avantage clé ===
 +
Ce pilote de moteur pas-à-pas dispose d'un circuit actif de limitation de courant. C'est une caractéristique assez incroyable car elle permet de piloter des moteurs pas-à-pas avec une tension plus élevée sans griller le moteur.
 +
Admettons que vous avez un moteur prévu pour 2.8V à 1.7 ampère. S'il alimenté directement avec une tension de 5.6 Volts (le double à titre d'exemple) alors la bobine laisserait alors passer un courant de 3.4 Amp.
 +
Cependant, à 3.4 Amp, la bobine chauffe tellement que le moteur grille rapidement (l'échauffement augmente au carré du courant!).
  
The DRV8825 supports such active current limiting, and the trimmer potentiometer on the board can be used to set the current limit. You will typically want to set the driver’s current limit to be at or below the current rating of your stepper motor. One way to set the current limit is to put the driver into full-step mode and to measure the current running through a single motor coil without clocking the STEP input. The measured current will be 0.7 times the current limit (since both coils are always on and limited to approximately 70% of the current limit setting in full-step mode).
+
Mais si vous disposez d'un circuit limitant activement le courant, vous pourriez régler celui-ci sur 1.7A max (ou 1.5A, le maximum du DRV8825).
 +
Par conséquent, même si vous alimentez le moteur en 5.6v, le courant ne pourra pas dépasser 1.7 Amp (1.5A pour le DRV8825) et le moteur ne grille pas.
  
Another way to set the current limit is to measure the voltage on the “ref” pin and to calculate the resulting current limit (the current sense resistors are 0.100Ω). The ref pin voltage is accessible on a via that is circled on the bottom silkscreen of the circuit board. The current limit relates to the reference voltage as follows:
+
'''{{underline|Quel sont les avantages à utiliser une tension plus élevée?}}'''
 +
# Le moteur est plus beaucoup plus réactif.
 +
# Le passage d'un pas à l'autre plus rapide avec un tension plus élevée car le champ magnétique est plus puissant.
 +
# Si le moteur est plus réactif alors vous pouvez également atteindre des vitesses plus élevées.
 +
# Avec une tension plus élevée, vous pouvez utiliser un piloter nécessitant une tension minimale de fonctionnement plus importante (comme le DRV8825) même avec un moteur en assez basse tension. Du moment que le courant est limité activement, il n'y aura pas de dégât sur les bobines.
 +
 
 +
Concernant le moteur 2.8V 1.7Amp mentionné, vous pourriez le piloter avec une alimentation 9V (confirmé par Pololu) avec un DRV8825 en limitant activement le courant à 1.5Amp (le maximum toléré par le DRV8825 sans refroissement).
 +
 
 +
=== Réglage - comment faire ===
 +
Afin d'atteindre des vitesses plus élevées (de plus hau-débit de pas), il faut typiquement utiliser une tension d'alimentation moteur plus élevée, ce qui ne serait pas possible sans électronique de limitation active de courant.
 +
 
 +
Prenons par exemple un moteur prévu pour supporter 1 Ampère avec une résistance de bobine de 5Ω, cela indiquant que la tension maximale de l'alimentation moteur est de 5 Volts (U=RxI; u=5 Ohms x 1 Amp). Utiliser un tel moteur avec un tension de 12 V permettrait d'atteindre une plus haut débit de pas mais le courant doit absolument être limité à 1Amp (de façon active) sinon le moteur sera rapidement endommagé.
 +
 
 +
Le DRV8825 supporte cette fonctionnalité de limitation active de courant et un petit potentiomètre (sur la carte) permet de fixer cette limite de courant. La limite de courant est typiquement fixé soit à la limite, soit un peu en dessous de la limite de courant du moteur (voir spécification du moteur). Une façon de mesurer la limite de courant est de bracnher le contrôleur en mode "full step" et de mesurer le courant passant dans une seule des bobines (sans envoyer de signal sur la broche STEP). Le courant mesuré représente 0.7x le courant limite (puisque les deux bobines son toujours limités à environ 70% du courant limite en mode "full-step").
 +
 
 +
Une autre façon de fixer le courant limite est de mesurer la tension sur la broche “ref” et de calculer le courant limite correspondant (La résistance permettant de mesurer le courant fait 0.100Ω). La tension de la broche "ref" est accessible un point de mesure entourer d'un petit cercle (sur la sérigraphie,de la carte). La relation entre le courant limite et la tension est la suivante:
  
 
  Current Limit = VREF × 2
 
  Current Limit = VREF × 2
 
So, for example, if you have a stepper motor rated for 1 A, you can set the current limit to 1 A by setting the reference voltage to 0.5 V.
 
  
{{ambox-stop|text=Note: The coil current can be very different from the power supply current, so you should not use the current measured at the power supply to set the current limit. The appropriate place to put your current meter is in series with one of your stepper motor coils.}}
+
Donc, si vous avez un moteur prévu pour 1A, vous pouvez fixer la courant limite à 1 A en sélectionnant une tension "ref" de 0.5 V.
  
== Considérer la dissipation de chaleur ==
+
{{ambox-stop|text=Le courant circulant dans une bobine peut être très différent de celui délivré par l'alimentation. Par conséquent, il ne faut mesurer le courant à la sortie de l'alimentation pour fixer le "courant limite". L'emplacement approprié pour mesurer le courant est en série avec une bobine de votre moteur pas-à-pa.}}
The DRV8825 driver IC has a maximum current rating of 2.5 A per coil, but the current sense resistors further limit the maximum current to 2.2 A, and the actual current you can deliver depends on how well you can keep the IC cool. The carrier’s printed circuit board is designed to draw heat out of the IC, but to supply more than approximately 1.5 A per coil, a heat sink or other cooling method is required.
 
  
{{ambox-stop|text=This product can get hot enough to burn you long before the chip overheats. Take care when handling this product and other components connected to it.}}
+
== Dissipation de chaleur - considérations ==
 +
Le circuit intégré DRV8825 qui pilote la carte support un courant maximum de 2.5 A par bobine mais la résistance senseur de courant limite le courant à un maximum de 2.2A. Hormis ces considérations le courant que vous pourrez vraiment utiliser dépend de votre capacité à refroidir efficacement le circuit intégré. La carte est conçue pour évacuer la chaleur hors du circuit intégré mais si vous désirez utiliser un courant approchant ou supérieur à 1.5 A par bobine, vous devez utiliser un dissipateur de chaleur ou autre système de refroidissement.
  
{{underline|Please note that measuring the current draw at the power supply will generally not provide an accurate measure of the coil current.}} Since the input voltage to the driver can be significantly higher than the coil voltage, the measured current on the power supply can be quite a bit lower than the coil current (the driver and coil basically act like a switching step-down power supply). Also, if the supply voltage is very high compared to what the motor needs to achieve the set current, the duty cycle will be very low, which also leads to significant differences between average and RMS currents. Additionally, please note that the coil current is a function of the set current limit, but it does not necessarily equal the current limit setting. The actual current through each coil changes with each microstep. See the DRV8825 datasheet for more information.}}
+
{{ambox-stop|text=Ce produit peut devenir suffisamment chaud pour vous brûler... même bien avant que la protection de surchauffe ne s'active. Soyez prudent en manipulant ce produit où autres composants qui y sont branchés.}}
  
== Diagramme schématique ==
+
{{underline|Notez que mesurer le courant à la sortie de l'alimentation n'est pas représentatif du courant que l'on peut mesurer sur une bobine du moteur.}} Etant donné que la tension de l'alimentation peut être significativement plus élevée que la tension sur un bobine du moteur, le courant mesuré sur l'alimentation peut être un peu inférieur à celui circulant dans la bobine du moteur (le pilote et les bobine agissent un peut comme une alimentation à découpage step-down <small>[''switching step-down power supply''']</small>). De même, si la tension d'alimentation est beaucoup plus élevée que les besoins du moteur, la limitation de courant imposera forcement un cycle utile très court <small>(duty cycle will be very low)</small>, ce qui peut conduire à une différence entre le courant moyen et le [http://fr.wikipedia.org/wiki/Valeur_efficace courant efficace/RMS] (''Wikipedia.fr''). D'autre part, le courant dans une bobine est fonction du courant limite sélectionné mais n'est pas forcément égale à cette limite étant donné que le courant sera différent pour chaque micro-step. Voyez la [http://df.mchobby.be/datasheet/drv8825.pdf fiche technique du DRV8825] pour plus d'information.
[[Fichier:DRV8825-schema.jpg]]
 
  
The current sense resistors (R2 and R3) on the DRV8825 carrier are 0.100 Ω. This schematic is also available as a [http://www.pololu.com/file/download/drv8824-drv8825-stepper-motor-driver-carrier-schematic-diagram.pdf?file_id=0J603 downloadable pdf] (196k pdf).
+
== Exemple Arduino ==
 +
Vous trouverez ci-dessous deux montages types de moteurs pas-à-pas bipolaires à 4 fils.
 +
Ces exemples sont issus de notre tutoriel sur le [[A4988#Exemple_Arduino|pilote de moteur pas-à-pas A4988]] (moins puissant) qui dispose d'un brochage compatible avec le DRV8825 :-)
 +
 
 +
Ces exemples du DRV8825 utilisent le ''second schéma de branchement'' proposé par Pololu. Ce qui permet d'utiliser soit un StepStick DRV8825, soit un Steptick A4988.
 +
 
 +
=== Codification rouge, bleu, vert, noir ===
 +
[[fichier:DRV8825-Montage Rouge-Bleu-Vert-Noir.jpg|640px]]<br />Cliquez pour agrandir
 +
 
 +
=== Codification rouge, jaune, vert, gris ===
 +
Cette codification est utilisé pour les {{pl|236|moteurs pas-à-pas que nous proposons ici chez MC Hobby}}.
 +
 
 +
[[fichier:DRV8825-Montage Rouge-Jaune-Vert-Gris.jpg|640px]]<br />Cliquez pour agrandir
 +
 
 +
=== Le code ===
 +
Le seul point a relever dans ce code est le comportement de la broche ''ENABLE'' branché sur la sortie 13 d'Arduino.
 +
 
 +
''Enable'' fonctionne en logique inverse!
 +
 
 +
Cela signifie que:
 +
* Le module est activé lorsque la sortie 13 est LOW (niveau bas) - L'axe du moteur est donc maintenu bloqué en attente du prochain pas.
 +
* Le module est désactivé lorsque la sortie 13 est HIGH (niveau haut) - L'axe du moteur est donc totalement libre de tout mouvement puisque le moteur est désactivé.
 +
 
 +
<nowiki>// --- Commande d'un StepStick/Driver A4988 ----------------------
 +
// DRV8825_Test.ino
 +
//
 +
// Commande d'un moteur pas-à-pas à l'aide d'un pilote DRV8825 avec
 +
//    Arduino.
 +
//
 +
// Un projet www.mchobby.be (vente de kit et composant)
 +
// Meurisse D. - Licence CC-SA-BY
 +
//
 +
// Un tutoriel http://wiki.mchobby.be/index.php?title=DRV8825
 +
// Ou Acheter un StepStick DRV8825
 +
//    http://shop.mchobby.be/product.php?id_product=454
 +
//
 +
 
 +
#define pinEnable 13 // Activation du driver/pilote
 +
#define pinStep    9 // Signal de PAS (avancement)
 +
#define pinDir    8 // Direction
 +
 
 +
 
 +
void setup(){
 +
  Serial.begin(9600);
 +
  Serial.println("Test DRV8825");
 +
 
 +
  pinMode( pinEnable, OUTPUT );
 +
  pinMode( pinDir  , OUTPUT );
 +
  pinMode( pinStep  , OUTPUT );
 +
}
 +
 
 +
void loop(){
 +
  int i = 0;
 +
 
 +
  digitalWrite( pinDir  , HIGH); // Direction avant
 +
  digitalWrite( pinStep  , LOW);  // Initialisation de la broche step
 +
 
 +
  // Avance de 200 pas
 +
  for( i=0; i<200; i++){
 +
    Serial.println( i );
 +
    digitalWrite( pinStep, HIGH );
 +
    delay( 10 );
 +
    digitalWrite( pinStep, LOW );
 +
    delay( 10 );
 +
  }
 +
 
 +
  // Changer de direction
 +
  digitalWrite( pinDir  , LOW); // Direction avant
 +
 
 +
  // Refaire 200 pas dans l'autre sens
 +
  for( i=0; i<200; i++){
 +
    Serial.println( i );
 +
    digitalWrite( pinStep, HIGH );
 +
    delay( 1 );
 +
    digitalWrite( pinStep, LOW );
 +
    delay( 1 );
 +
  }
 +
 
 +
  // Pas de step et pas d'ordre...
 +
  //  l'axe du moteur est donc bloqué
 +
  Serial.println("Axe bloqué + attendre 5 sec");
 +
  delay( 5000 );
 +
 
 +
  // déblocage de l'axe moteur
 +
  Serial.println("Deblocage axe");
 +
  digitalWrite( pinEnable, HIGH ); // logique inversée
 +
 
 +
  // Fin et blocage du programme
 +
  // Presser reset pour recommander
 +
  Serial.println("Fin de programme");
 +
  while( true );
 +
}</nowiki>
 +
 
 +
== Diagramme ==
 +
[[Fichier:DRV8825-schema.png|640px]]
 +
 
 +
Les résistances senseurs de courant (R2 et R3) branchés sur le DRV8825 font 0.100 Ω. Le schéma est également disponible dans ce [http://www.pololu.com/file/download/drv8824-drv8825-stepper-motor-driver-carrier-schematic-diagram.pdf?file_id=0J603 fichier pdf] (196k pdf).
  
 
== DRV8825 et A4988 - les différences clés ==
 
== DRV8825 et A4988 - les différences clés ==
xx
+
Le pilote DRV8825 a été conçu pour être similaire au {{pl|349|pilote de moteur pas-à-pas A4988}} (autant que possible), et peut être utilisé pour remplacer le A4988 dans de nombreuses applications puisque ils ont tout deux: la même taille, le même brochage et la même interface de contrôle. Il y cependant quelques différences entre les deux modules:
 +
* La broche fournissant l'alimentation à l'étage logique du A4988 est aussi utilisé comme sortie FAULT sur le DRV8825. Le DRV8825 ne nécessite pas de tension d'alimentation pour l'étage logique (et que le A4988 n'a pas de signal FAULT). Sachez que vous pouvez connecter la broche FAULT directement sur l'alimentation de la logique en toute sécurité (il y a une résistance de protection de 1.5k entre la sortie du circuit intégré et la broche). Par conséquent le module DRV8825 peut être utilisé sur des systèmes conçu pour le A4988 et fournissant la tension d'alimentation de la logique sur cette broche.
 +
* La broche SLEEP sur le DRV8825 ne dispose pas d'une résistance pull-up par défaut (comme sur le A4988) mais la carte de contrôle connecte SLEEP sur la broche FAULT par l'intermédiaire de la résistance de 10K. Par conséquent les systèmes prévus pour A4988 appliquerons la tension logique sur la broche FAULT qui activera alors un pull-up sur SLEEP par l'intermédiaire de la résistance de 10k. (Cette résistance de 10k n'était pas présente dans la version initiale md20a du pilote DRV8825.)
 +
* Le potentiomètre de configuration du courant limite se trouve à une autre position.
 +
* La relation entre le courant limite et la tension sur la broche de référence est différente.
 +
* Le DRV8825 offre une résolution micro-stepping au 1/32 de pas; le A4988 est limité à 1/16 de pas.
 +
* Les broches de sélection activée pour le mode 1/16 de pas sur le A4988 correspond à 1/32 de pas sur le DRV8825. A l'exception de ce cas, toutes les autres configurations M0-M1-M2 de résolutions micro-stepping sont identiques sur le DRV8825 et le A4988.
 +
* Les contraintes de temps concernant la pulsation minimale sur la broche STEP (''pas'') est différent pour les deux pilotes. Avec un DRV8825, les impulsions STEP HAUT et BAS doivent avoir un temps d'au moins 1.9 µs; mais peut descendre jusqu'à 1 µs avec un A4988.
 +
* Le DRV8825 supporte une tension maximale plus élevée qu'un A4988 (45 V contre 35 V), ce qui signifie que le DRV8825 peut être utilisation en toute sécurité à plus haute tension et est moins susceptible au dommages de sur-tension induite par les circuit LC.
 +
* Sans système de refroidissement supplémentaire, le DRV8825 est capable de délivrer plus de courant que le A4988 (basé sur un test en full-step/pas-complet: 1.5 A par bobine pour le DRV8825 versus 1.2 A par bobine pour le A4988 Black Edition et 1 A par bobine pour le A4988 original).
 +
* DRV8825 utilise un convention de nom différent pour les sorties moteur mais la fonctionnalité (et brochage) est identique au A4988. Par conséquent le même raccordement moteur sur les deux pilotes moteurs produit le même résultat sur le moteur pas-à-pas.
 +
* Le contrôleur DRV8825 est pourpre (au cas ou cela pourrait être important pour votre application).
 +
 
 +
[[Fichier:STEPSTK-DRV8825-WIRE 00.png]]<br /><small>Câblage minimal pour connecter un microcontroleur. Version alternative, compatibilité avec le pilote A4988</small>
  
 
== Où Acheter ==
 
== Où Acheter ==
 
* {{pl|454|Le DRV8825 est disponible chez MCHobby}}
 
* {{pl|454|Le DRV8825 est disponible chez MCHobby}}
 +
* {{sl|pas-à-pas|Un de nos moteurs pas-à-pas}}
 
Vous trouverez également les produits suivants:
 
Vous trouverez également les produits suivants:
 
* {{pl|10|Arduino Uno}}
 
* {{pl|10|Arduino Uno}}
Ligne 123 : Ligne 264 :
  
 
{{MCH-Accord}}
 
{{MCH-Accord}}
 
{{ADF-Accord}}
 

Version actuelle datée du 30 avril 2018 à 10:59


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Présentation

DRV8825.jpg

Ce breakout de contrôle moteur pas-à-pas DRV8825 est basé sur le DRV8825 de Texas Instrument pouvant piloter un moteur pas-à-pas en micro-stepping (micro pas). Le module dispose d'un brochage et interface presque identique à notre contrôleur de moteur pas-à-pas A4988. Il peut donc être directement utiliser en replacement sur les différentes cartes d'interface avec ce modèle haute performance.

Le DRV8825 intègre un limiteur de courant actif et réglable. Vous disposez également d'une protection contre les surcourant, la surchauffe avec 6 résolutions de micro-stepping (jusqu'au 1/32 de pas). Il fonctionne entre 8.2 et 45 V et sait délivrer approximativement 1.5 A par phase sans refroidissement (par refroidisseur ou air forcé - conçu pour 2.2A par bobine en utilisant un système de refroidissement efficace/adéquat).

Nous recommandons de lire attentivement la fiche technique du DRV8825 (1Mb pdf) et notre tutoriel avant d'utiliser le produit. Ce pilote est capable de contrôler un moteur pas-à-pas bipolaire avec un courant allant jusqu'à 2.2 Amp par bobine (voyez la section dévolue à la Dissipation de Chaleur pour plus d'information).

Détails techniques

Voici quelque-unes des caractéristiques clés:

  • Interface de contrôle super-simple pour les pas et de la direction.
  • 6 résolutions de pas: Pas complet (full-step), demi-pas, 1/4 de pas, 1/8 de pas, 1/16 de pas et 1/32 de pas
  • Contrôle du courant ajustable vous permettant de fixer le courant maximum pouvant passer dans les bobine. Le réglage se fait à l'aide d'un potentiomètre. Vous pouvez donc utiliser votre moteur pas-à-pas avec une tension plus élevée... vous permettant ainsi d'atteindre des vitesses plus élevées.
  • Electronique de contrôle de "coupure" intelligent sélectionnant automatiquement le mode de décroissance du courant (décroissance rapide ou lente)
  • Intelligent chopping control that automatically selects the correct current decay mode
  • Tension d'alimentation max: 45 V
  • Régulateur de tension intégré (donc pas besoin d'une tension externe pour alimenter la logique de contrôle).
  • Peut s'interfacer directement avec des systèmes 3.3 V et 5 V
  • Coupure automatique en cas de surchauffe. Coupure en cas de surcourant.
  • Blocage en sous-tension (pour éviter les fonctionnements erratiques/imprévisibles de l'électronique de commande)
  • Protection de retour à la masse (short-to-ground) et de court-circuit de la charge (shorted-load).
  • Carte 4 couches utilisant plus de cuivre pour améliorer la dissipation de chaleur.
  • Pastille de masse soudable exposé sous le circuit intégré (sur la surface inférieure de la carte)
  • La taille du module, le brochage et l'interface correspond au StepStick A4988 sous de nombreux aspects (voyez le tutoriel pour plus d'information)
  • Fiche technique du DRV8825

Brochage

DRV8825-PINOUT.jpg

  • Enable: Logique Inversée, permet d'activer ou désactivé le moteur. Etat Haut=High=Moteur actif... et axe bloqué entre les pas. Etat bas=Low=Axe totalement libre
  • M0, M1, M2: permet de sélectionner la configuration Step/MicroStep. Ces broches disposent de résistances Pull-Down ramenant le potentiel à 0v lorsque rien n'est connecté sur ces broches. Voir la section ci-dessous pour plus d'information.
  • Reset: Logique inversée. Permet de faire une réinitialisation du module. Généralement connecté sur la broche "sleep", voir le schéma ci-dessous.
  • Sleep: Logique inversée. Généralement connecté sur la broche "Reset" du module.
  • Step: Envoyer un signal d'horloge (Niveau Haut puis Niveau bas, High puis Low) pour avancer le moteur d'un pas.
  • DIR: Permet d'indiquer la direction de rotation du moteur. Etat Haut=High pour tourner dans un sens, Etat bas=Low pour tourner dans l'autre sens.
  • VMot: Tension d'alimentation pour les moteurs pas à pas. Tension entre 8.2 et 45v.
  • GND: Sous "VMOT", masse pour l'alimentation moteur.
  • A1 A2: Première bobine du moteur pas à pas bipolaire (voir exemple ci-dessous)
  • B1 B2: Deuxième bobine du moteur pas à pas bipolaire (voir exemple ci-dessous)

Alimentation de la logique de contrôle::

STEPSTK-DRV8825-WIRE 00.png
Câblage minimal pour connecter un microcontroleur. Version alternative, compatibilité avec le pilote A4988

  • Fault: Logique inversée. Branchez une tension entre 2.5 et 5.25v, celle qui alimente votre microcontrôleur.
  • GND: sous FAULT. Masse commune avec votre microcontrôleur.

Brancher le DRV8825

Voici le diagramme de raccordement minimal (cfr Pololu) pour connecter le contrôleur de moteur pas-à-pas DRV8825/DRV8824 sur un microcontrôleur (en mode full-step/pas complet)

STEPSTK-DRV8825-WIRE 01.png

Connecter l'Alimentation

Le pilote nécessite une tension d'alimentation moteur entre 8.2 et 45 V devant être connecté entre VMOT et GND. Cette alimentation devrait idéalement disposer de capacités de découplahe appropriés près de la carte et doit être capable de délivrer le courant nécessaire au fonctionnement du moteur pas-à-pas.

Connecter le moteur

Vous pouvez piloter des moteurs pas-à-pas à 4, 6 et 8 fils avec le DRV8825 si vous les branchez correctement; La Foire Aux Questions (FAQ) de Pololu explique comment réaliser ce montage en détail.

Step et micro-Stepping

Les moteurs pas-à-pas documentent la taille du pas dans leur spécification (ex: 1.8° ou 200 pas par révolution), ce qui représente un pas complet. Il vous faudra donc 200 pas complet pour effectuer une rotation de l'axe.


Un pilote micro-Stepping (Micro Pas) tel que le DRV8825 permet d'atteindre une résolution plus élevée en autorisant le positionnement de l'axe sur plusieurs positions intermédiaires entre deux pas complet. Cela est rendu possible en contrôlant la puissance dans les bobinage du moteur avec plusieurs niveau de courant différent. A titre d'exemple, si vous pilotez un moteur 200 pas par révolution en 1/4 de pas, vous obtiendrez au final un moteur disposant de 800 micro-pas par révolution (le DRV8825 utilisera 4 niveaux de courant intermédiaire pour contrôler la position des micro-pas).


Les broches de sélection de la résolution (de la taille des pas) sont les entrées M0, M1 et M2 (MODE0, MODE1 et MODE2). Ces broches permettent de choisir une résolution de micro-stepping parmi les 6 disponibles (voir la table ci-dessous). Les 3 entrées disposent d'une résistance pull-down interne de 100kΩ par conséquent, si vous ne brancher pas ces 3 broches, elles sont toutes les 3 au niveau bas et le DRV8825 fonctionnera en mode full-step (pas complet).

Pour que le micro-stepping puisse fonctionner correctement, vous devez suffisamment limiter le courant (suffisamment bas) de façon à ce que le contrôle de limitation de courant puisse fonctionner correctement... sinon les niveaux de courants intermédiaires ne pourrons pas être maintenu et le moteur sautera des micro-step.

STEPSTK-DRV8825-StepResolution.jpg
High est un signal haut (entre 2.5 et 5.25v) et Low un signal bas (0v)

Contrôle des entrées

Chaque impulsion sur l'entrée STEP correspond à un micro-pas du moteur dans la direction sélectionnée avec l'entrée DIR. Ces deux entrées disposent d'une résistance Pull-down interne de 100kΩ (sauf signal appliqué sur la broche, une résistance pull-down ramène toujours le potentiel au niveau bas). Si vous avez uniquement besoin de tourner dans un seul sans, vous pouvez laisser la broche DIR déconnectée.


Cette puce dispose de 3 entrées différentes pour contrôler ses états de puissance: RESET, SLEEP et ENBL (enable). Voyez la fiche technique pour plus de détails à propos de ces états de puissance (cherchez "power states"). Notez que le pilote tire le potentiel de la broche SLEEP au niveau bas à l'aide d'une résistance pull-down de 1MΩ et qu'il tire aussi le potentiel des broches RESET et ENBL au niveau bas via une résistance interne de 100kΩ (pull-down). Cet état par défaut des broches RESET et SLEEP empêche le pilote de fonctionner (pratique lors de la mise sous tension ;-) ); Ces deux broches doivent être au niveau haut (high) pour activer le pilote (elle peuvent être connectée directement au niveau logique haut via une tension située entre 2.2 et 5.25 V. Elles peuvent également être contrôler dynamiquement en utilisant des sorties digitales de votre microcontrôleur.

L'état par défaut de la broche ENBL active le pilote. Cette broche peut donc rester déconnectée. Vous pouvez également la brancher sur une sortie de votre microcontrôleur pour activer/désactiver dynamiquement le moteur. Placez la broche au niveau logique HAUT pour désactiver le contrôle moteur.


STEPSTK-DRV8825-nSleep.jpg
Schema des broches nSLEEP et nFAULT sur les pilotes DRV8824/DRV8825/DRV8834.

Le DRV8825 dispose également d'une option "FAULT", broche qui passe à l'état bas lorsque les FET du pont-H sont désactivés suite à l'activation de la protection sur-courant ou sur-chauffe. La carte du DRV8825 connecte cette broche sur la broche SLEEP par l'intermédiaire d'une résistance de 10k. La résistance de 10K agit comme une résistance pull-up pour Fault (lorsque la brochhe SLEEP est maintenue au niveau Haut de façon externe; par conséquent, pas besoin de résistance pull-up sur la broche FAULT).

Note: la carte inclus également une résistance de protection de 1.5k en série sur la broche FAULT ce qui permet de la connecter la broche directement sur l'alimentation de la logique de contrôle (ce qui sera le cas si vous utilisez une carte conçue pour être compatible avec un pilote A4988). Dans un tel système, la résistance de 10K entre SLEEP et FAULT agira comme un pull-up pour SLEEP --- cela permet d'utiliser cette carte DRV8825 comme un remplacement directe du A4988 (le A4988 dispose d'un pull-up interne sur sa broche SLEEP). Pour empêcher les erreurs/protection de ramener le potentiel de SLEEP au niveau bas, vous pouvez utiliser une résistance pull-up sur l'entrée SLEEP mais elle ne devrait pas excéder 4.7k.

Limitation de courant

Le contrôle actif du courant - Un avantage clé

Ce pilote de moteur pas-à-pas dispose d'un circuit actif de limitation de courant. C'est une caractéristique assez incroyable car elle permet de piloter des moteurs pas-à-pas avec une tension plus élevée sans griller le moteur. Admettons que vous avez un moteur prévu pour 2.8V à 1.7 ampère. S'il alimenté directement avec une tension de 5.6 Volts (le double à titre d'exemple) alors la bobine laisserait alors passer un courant de 3.4 Amp. Cependant, à 3.4 Amp, la bobine chauffe tellement que le moteur grille rapidement (l'échauffement augmente au carré du courant!).

Mais si vous disposez d'un circuit limitant activement le courant, vous pourriez régler celui-ci sur 1.7A max (ou 1.5A, le maximum du DRV8825). Par conséquent, même si vous alimentez le moteur en 5.6v, le courant ne pourra pas dépasser 1.7 Amp (1.5A pour le DRV8825) et le moteur ne grille pas.

Quel sont les avantages à utiliser une tension plus élevée?

  1. Le moteur est plus beaucoup plus réactif.
  2. Le passage d'un pas à l'autre plus rapide avec un tension plus élevée car le champ magnétique est plus puissant.
  3. Si le moteur est plus réactif alors vous pouvez également atteindre des vitesses plus élevées.
  4. Avec une tension plus élevée, vous pouvez utiliser un piloter nécessitant une tension minimale de fonctionnement plus importante (comme le DRV8825) même avec un moteur en assez basse tension. Du moment que le courant est limité activement, il n'y aura pas de dégât sur les bobines.

Concernant le moteur 2.8V 1.7Amp mentionné, vous pourriez le piloter avec une alimentation 9V (confirmé par Pololu) avec un DRV8825 en limitant activement le courant à 1.5Amp (le maximum toléré par le DRV8825 sans refroissement).

Réglage - comment faire

Afin d'atteindre des vitesses plus élevées (de plus hau-débit de pas), il faut typiquement utiliser une tension d'alimentation moteur plus élevée, ce qui ne serait pas possible sans électronique de limitation active de courant.

Prenons par exemple un moteur prévu pour supporter 1 Ampère avec une résistance de bobine de 5Ω, cela indiquant que la tension maximale de l'alimentation moteur est de 5 Volts (U=RxI; u=5 Ohms x 1 Amp). Utiliser un tel moteur avec un tension de 12 V permettrait d'atteindre une plus haut débit de pas mais le courant doit absolument être limité à 1Amp (de façon active) sinon le moteur sera rapidement endommagé.

Le DRV8825 supporte cette fonctionnalité de limitation active de courant et un petit potentiomètre (sur la carte) permet de fixer cette limite de courant. La limite de courant est typiquement fixé soit à la limite, soit un peu en dessous de la limite de courant du moteur (voir spécification du moteur). Une façon de mesurer la limite de courant est de bracnher le contrôleur en mode "full step" et de mesurer le courant passant dans une seule des bobines (sans envoyer de signal sur la broche STEP). Le courant mesuré représente 0.7x le courant limite (puisque les deux bobines son toujours limités à environ 70% du courant limite en mode "full-step").

Une autre façon de fixer le courant limite est de mesurer la tension sur la broche “ref” et de calculer le courant limite correspondant (La résistance permettant de mesurer le courant fait 0.100Ω). La tension de la broche "ref" est accessible un point de mesure entourer d'un petit cercle (sur la sérigraphie,de la carte). La relation entre le courant limite et la tension est la suivante:

Current Limit = VREF × 2

Donc, si vous avez un moteur prévu pour 1A, vous pouvez fixer la courant limite à 1 A en sélectionnant une tension "ref" de 0.5 V.

Dissipation de chaleur - considérations

Le circuit intégré DRV8825 qui pilote la carte support un courant maximum de 2.5 A par bobine mais la résistance senseur de courant limite le courant à un maximum de 2.2A. Hormis ces considérations le courant que vous pourrez vraiment utiliser dépend de votre capacité à refroidir efficacement le circuit intégré. La carte est conçue pour évacuer la chaleur hors du circuit intégré mais si vous désirez utiliser un courant approchant ou supérieur à 1.5 A par bobine, vous devez utiliser un dissipateur de chaleur ou autre système de refroidissement.

Notez que mesurer le courant à la sortie de l'alimentation n'est pas représentatif du courant que l'on peut mesurer sur une bobine du moteur. Etant donné que la tension de l'alimentation peut être significativement plus élevée que la tension sur un bobine du moteur, le courant mesuré sur l'alimentation peut être un peu inférieur à celui circulant dans la bobine du moteur (le pilote et les bobine agissent un peut comme une alimentation à découpage step-down [switching step-down power supply']). De même, si la tension d'alimentation est beaucoup plus élevée que les besoins du moteur, la limitation de courant imposera forcement un cycle utile très court (duty cycle will be very low), ce qui peut conduire à une différence entre le courant moyen et le courant efficace/RMS (Wikipedia.fr). D'autre part, le courant dans une bobine est fonction du courant limite sélectionné mais n'est pas forcément égale à cette limite étant donné que le courant sera différent pour chaque micro-step. Voyez la fiche technique du DRV8825 pour plus d'information.

Exemple Arduino

Vous trouverez ci-dessous deux montages types de moteurs pas-à-pas bipolaires à 4 fils. Ces exemples sont issus de notre tutoriel sur le pilote de moteur pas-à-pas A4988 (moins puissant) qui dispose d'un brochage compatible avec le DRV8825 :-)

Ces exemples du DRV8825 utilisent le second schéma de branchement proposé par Pololu. Ce qui permet d'utiliser soit un StepStick DRV8825, soit un Steptick A4988.

Codification rouge, bleu, vert, noir

DRV8825-Montage Rouge-Bleu-Vert-Noir.jpg
Cliquez pour agrandir

Codification rouge, jaune, vert, gris

Cette codification est utilisé pour les moteurs pas-à-pas que nous proposons ici chez MC Hobby.

DRV8825-Montage Rouge-Jaune-Vert-Gris.jpg
Cliquez pour agrandir

Le code

Le seul point a relever dans ce code est le comportement de la broche ENABLE branché sur la sortie 13 d'Arduino.

Enable fonctionne en logique inverse!

Cela signifie que:

  • Le module est activé lorsque la sortie 13 est LOW (niveau bas) - L'axe du moteur est donc maintenu bloqué en attente du prochain pas.
  • Le module est désactivé lorsque la sortie 13 est HIGH (niveau haut) - L'axe du moteur est donc totalement libre de tout mouvement puisque le moteur est désactivé.
// --- Commande d'un StepStick/Driver A4988 ----------------------
// DRV8825_Test.ino
//
// Commande d'un moteur pas-à-pas à l'aide d'un pilote DRV8825 avec
//     Arduino.
//
// Un projet www.mchobby.be (vente de kit et composant)
// Meurisse D. - Licence CC-SA-BY
//
// Un tutoriel http://wiki.mchobby.be/index.php?title=DRV8825
// Ou Acheter un StepStick DRV8825
//    http://shop.mchobby.be/product.php?id_product=454
//

#define pinEnable 13 // Activation du driver/pilote
#define pinStep    9 // Signal de PAS (avancement)
#define pinDir     8 // Direction 


void setup(){
  Serial.begin(9600);
  Serial.println("Test DRV8825");
  
  pinMode( pinEnable, OUTPUT );
  pinMode( pinDir   , OUTPUT );
  pinMode( pinStep  , OUTPUT );
}

void loop(){
  int i = 0;
  
  digitalWrite( pinDir   , HIGH); // Direction avant
  digitalWrite( pinStep  , LOW);  // Initialisation de la broche step
  
  // Avance de 200 pas
  for( i=0; i<200; i++){
    Serial.println( i );
    digitalWrite( pinStep, HIGH );
    delay( 10 );
    digitalWrite( pinStep, LOW );
    delay( 10 );
  } 
  
  // Changer de direction
  digitalWrite( pinDir   , LOW); // Direction avant
  
  // Refaire 200 pas dans l'autre sens
  for( i=0; i<200; i++){
    Serial.println( i );
    digitalWrite( pinStep, HIGH );
    delay( 1 );
    digitalWrite( pinStep, LOW );
    delay( 1 );
  } 
  
  // Pas de step et pas d'ordre... 
  //   l'axe du moteur est donc bloqué 
  Serial.println("Axe bloqué + attendre 5 sec");
  delay( 5000 );
  
  // déblocage de l'axe moteur
  Serial.println("Deblocage axe");
  digitalWrite( pinEnable, HIGH ); // logique inversée
  
  // Fin et blocage du programme
  // Presser reset pour recommander
  Serial.println("Fin de programme");
  while( true );
}

Diagramme

DRV8825-schema.png

Les résistances senseurs de courant (R2 et R3) branchés sur le DRV8825 font 0.100 Ω. Le schéma est également disponible dans ce fichier pdf (196k pdf).

DRV8825 et A4988 - les différences clés

Le pilote DRV8825 a été conçu pour être similaire au pilote de moteur pas-à-pas A4988 (autant que possible), et peut être utilisé pour remplacer le A4988 dans de nombreuses applications puisque ils ont tout deux: la même taille, le même brochage et la même interface de contrôle. Il y cependant quelques différences entre les deux modules:

  • La broche fournissant l'alimentation à l'étage logique du A4988 est aussi utilisé comme sortie FAULT sur le DRV8825. Le DRV8825 ne nécessite pas de tension d'alimentation pour l'étage logique (et que le A4988 n'a pas de signal FAULT). Sachez que vous pouvez connecter la broche FAULT directement sur l'alimentation de la logique en toute sécurité (il y a une résistance de protection de 1.5k entre la sortie du circuit intégré et la broche). Par conséquent le module DRV8825 peut être utilisé sur des systèmes conçu pour le A4988 et fournissant la tension d'alimentation de la logique sur cette broche.
  • La broche SLEEP sur le DRV8825 ne dispose pas d'une résistance pull-up par défaut (comme sur le A4988) mais la carte de contrôle connecte SLEEP sur la broche FAULT par l'intermédiaire de la résistance de 10K. Par conséquent les systèmes prévus pour A4988 appliquerons la tension logique sur la broche FAULT qui activera alors un pull-up sur SLEEP par l'intermédiaire de la résistance de 10k. (Cette résistance de 10k n'était pas présente dans la version initiale md20a du pilote DRV8825.)
  • Le potentiomètre de configuration du courant limite se trouve à une autre position.
  • La relation entre le courant limite et la tension sur la broche de référence est différente.
  • Le DRV8825 offre une résolution micro-stepping au 1/32 de pas; le A4988 est limité à 1/16 de pas.
  • Les broches de sélection activée pour le mode 1/16 de pas sur le A4988 correspond à 1/32 de pas sur le DRV8825. A l'exception de ce cas, toutes les autres configurations M0-M1-M2 de résolutions micro-stepping sont identiques sur le DRV8825 et le A4988.
  • Les contraintes de temps concernant la pulsation minimale sur la broche STEP (pas) est différent pour les deux pilotes. Avec un DRV8825, les impulsions STEP HAUT et BAS doivent avoir un temps d'au moins 1.9 µs; mais peut descendre jusqu'à 1 µs avec un A4988.
  • Le DRV8825 supporte une tension maximale plus élevée qu'un A4988 (45 V contre 35 V), ce qui signifie que le DRV8825 peut être utilisation en toute sécurité à plus haute tension et est moins susceptible au dommages de sur-tension induite par les circuit LC.
  • Sans système de refroidissement supplémentaire, le DRV8825 est capable de délivrer plus de courant que le A4988 (basé sur un test en full-step/pas-complet: 1.5 A par bobine pour le DRV8825 versus 1.2 A par bobine pour le A4988 Black Edition et 1 A par bobine pour le A4988 original).
  • DRV8825 utilise un convention de nom différent pour les sorties moteur mais la fonctionnalité (et brochage) est identique au A4988. Par conséquent le même raccordement moteur sur les deux pilotes moteurs produit le même résultat sur le moteur pas-à-pas.
  • Le contrôleur DRV8825 est pourpre (au cas ou cela pourrait être important pour votre application).

STEPSTK-DRV8825-WIRE 00.png
Câblage minimal pour connecter un microcontroleur. Version alternative, compatibilité avec le pilote A4988

Où Acheter

Vous trouverez également les produits suivants:

A voir aussi


Documentation réalisée par Meurisse. D pour MCHobby.be. En partie basé sur les informations disponible sur le site de Pololu

Traduit avec l'autorisation de Pololu - Translated with the permission from Pololu - www.pololu.com

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.