Modifications

Sauter à la navigation Sauter à la recherche
4 853 octets ajoutés ,  12 janvier 2014 à 20:54
aucun résumé de modification
Ligne 1 : Ligne 1 :  
{{MCH-Aider}}
 
{{MCH-Aider}}
      
== Présentation ==
 
== Présentation ==
 
Cette carte breakout supporte une pilote Microstepping Allegro A4988 (DMOS) incluant une protection contre les sur-courants (overcurrent). C'est le contrôleur de moteur pas-à-pas que l'on retrouve sur les cartes de commande des {{pl|41|imprimantes 3D comme OrdBot}} Hadron.
 
Cette carte breakout supporte une pilote Microstepping Allegro A4988 (DMOS) incluant une protection contre les sur-courants (overcurrent). C'est le contrôleur de moteur pas-à-pas que l'on retrouve sur les cartes de commande des {{pl|41|imprimantes 3D comme OrdBot}} Hadron.
 +
 +
[[Fichier:A4988 01.jpg|320px]]
    
Ce contrôleur permet de contrôler des {{pl|236|moteurs pas-à-pas bipolaires}} en micro-stepping avec un maximum de 2 ampères par bobine (attention aux conditions de dissipation de chaleur!!!).
 
Ce contrôleur permet de contrôler des {{pl|236|moteurs pas-à-pas bipolaires}} en micro-stepping avec un maximum de 2 ampères par bobine (attention aux conditions de dissipation de chaleur!!!).
Ligne 18 : Ligne 19 :  
* Une commande de hachage intelligente qui sélectionne automatiquement le bon mode de décroissance de courant (fast decay = baisse/chute rapide du courant OU slow decay = chute lente)
 
* Une commande de hachage intelligente qui sélectionne automatiquement le bon mode de décroissance de courant (fast decay = baisse/chute rapide du courant OU slow decay = chute lente)
 
* Protection (arrêt) en cas de surchauffe, sous tension, surcharge/sur-courant/court-circuit. Utile en cas de surcharge/blocage moteur (car le courant va monté en flèche, ce qui doit provoquer la mise en protection).
 
* Protection (arrêt) en cas de surchauffe, sous tension, surcharge/sur-courant/court-circuit. Utile en cas de surcharge/blocage moteur (car le courant va monté en flèche, ce qui doit provoquer la mise en protection).
 +
 
== Détail techniques ==
 
== Détail techniques ==
 
Pensez à prendre connaissance de la fiche technique du A4988. En effet, s'il est capable de piloter un courant important, cela ne se fait pas dans n'importe quel condition, il fait être attentif à la dissipation de chaleur.
 
Pensez à prendre connaissance de la fiche technique du A4988. En effet, s'il est capable de piloter un courant important, cela ne se fait pas dans n'importe quel condition, il fait être attentif à la dissipation de chaleur.
Ligne 30 : Ligne 32 :  
* Protection contre inversion de tension: NON 
 
* Protection contre inversion de tension: NON 
   −
* [http://mchobby.be/data-files/datasheet/A4988.pdf Fiche technique du A4988] (pdf)
+
* [http://df.mchobby.be/datasheet/A4988.pdf Fiche technique du A4988] (pdf)
   −
== Brochage ==
+
=== Brochage ===
    
[[Fichier:A4988-PinOut.jpg]]
 
[[Fichier:A4988-PinOut.jpg]]
Ligne 49 : Ligne 51 :  
* '''GND''': Sous "VDD", masse de la logique de commande. Souvent mise en commun avec la masse d'alimentation du moteur.
 
* '''GND''': Sous "VDD", masse de la logique de commande. Souvent mise en commun avec la masse d'alimentation du moteur.
   −
=== Entrées de contrôle ===
+
==== Entrées de contrôle ====
 
Chaque impulsion sur l'entrée STEP correspond à un microstep du moteur pas-à-pas dans la direction sélectionnée sur la broche DIR.  
 
Chaque impulsion sur l'entrée STEP correspond à un microstep du moteur pas-à-pas dans la direction sélectionnée sur la broche DIR.  
    
Notez que les broches STEP et DIR ne disposent pas de résistances pull-down ou pull-up interne. Vous devez contrôler les deux états Haut (''High'') et bas (''Low'') avec votre application. La tension sur ces broches ne peut pas être flottante. Ce qui n'est pas un problème pour les plateformes Arduino :-)
 
Notez que les broches STEP et DIR ne disposent pas de résistances pull-down ou pull-up interne. Vous devez contrôler les deux états Haut (''High'') et bas (''Low'') avec votre application. La tension sur ces broches ne peut pas être flottante. Ce qui n'est pas un problème pour les plateformes Arduino :-)
   −
Si vous ne devez faire tourner le moteur que dans un seul sens, vous pouvez placer la broche DIR directement sur VCC ou GND. Le circuit dispose de 3 entrées différentes pour contôler son étage de puissance: RST (''Reset''), SLP (''sleep'') et EN (''enabled''). Voyez [http://mchobby.be/data-files/datasheet/A4988.pdf la fiche technique pour plus d'information sur ces états].
+
Si vous ne devez faire tourner le moteur que dans un seul sens, vous pouvez placer la broche DIR directement sur VCC ou GND. Le circuit dispose de 3 entrées différentes pour contôler son étage de puissance: RST (''Reset''), SLP (''sleep'') et EN (''enabled''). Voyez [http://df.mchobby.be/datasheet/A4988.pdf la fiche technique pour plus d'information sur ces états].
    
'''Notez que la broche RST (''reset'') est flottante'''; Si vous ne comptez pas utiliser cette broche, vous pouvez la connecter sur la broche SLP (''sleep'') adjacente pour placer RST au niveau logique haut (''high'') et activer la carte.
 
'''Notez que la broche RST (''reset'') est flottante'''; Si vous ne comptez pas utiliser cette broche, vous pouvez la connecter sur la broche SLP (''sleep'') adjacente pour placer RST au niveau logique haut (''high'') et activer la carte.
   −
=== Configuration Step/MicroStepping ===
+
==== Configuration Step/MicroStepping ====
 
La configuration se fait à l'aide des broches MS1, MS2 et MS3.
 
La configuration se fait à l'aide des broches MS1, MS2 et MS3.
   Ligne 86 : Ligne 88 :  
|}
 
|}
   −
== Les sources d'alimentation ==
+
=== Les sources d'alimentation ===
 
Le pilote requière une tension d'alimentation entre 3 et 5.5 V pour la logique qui doit être connecté entre les broches VDD et GND (adjacente).
 
Le pilote requière une tension d'alimentation entre 3 et 5.5 V pour la logique qui doit être connecté entre les broches VDD et GND (adjacente).
   Ligne 93 : Ligne 95 :  
[[Fichier:A4988-decouplage.jpg|320px]]
 
[[Fichier:A4988-decouplage.jpg|320px]]
   −
{{ambox-stop|text=Cette carte utilise des capacités céramiques à faire résistance série équivalente ([http://www.jmax-hardware.com/forum/index.php?topic=5171.0;wap2 low-ESR]),ce qui la sensible aux destructions par les pointes de surtensions induites par les circuits LC, 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 35 V de tension maximale du A4988 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.}}
+
{{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 sensible aux destructions par les pointes de surtensions induites par les circuits LC, 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 35 V de tension maximale du A4988 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.}}
   −
== Branchement moteur ==
+
=== Branchement moteur ===
    
{{ambox-stop|text=Connecter ou déconnecter les moteurs pas-à-pas pendant que le pilote est sous tension peut le détruire.}}
 
{{ambox-stop|text=Connecter ou déconnecter les moteurs pas-à-pas pendant que le pilote est sous tension peut le détruire.}}
Ligne 101 : Ligne 103 :  
D'une façon générale, changer le câblage en cours de fonctionnement sera la source de problèmes.
 
D'une façon générale, changer le câblage en cours de fonctionnement sera la source de problèmes.
   −
== Limiter le courant ==
+
=== Limiter le courant ===
 
Pour pouvoir atteindre une vitesse plus élevée (un plus haut débit de pas), l'alimentation moteur est typiquement plus élevée que ce qui serait permit sans limitation active de courant. Par exemple, un moteur pas-à-pas typique pourrait avoir un courant maximum évalué à 1 Amp avec une résistance de bobine de 5Ω, ce qui nous indique que la tension maximale du moteur est de 5 Volts (U=R * I). Utiliser un tel moteur sous 12 V permettrait d'atteindre un débit de pas nettement plus important, mais le courant doit être activement limité à moins de 1 Ampt pour éviter d'endommager le moteur.
 
Pour pouvoir atteindre une vitesse plus élevée (un plus haut débit de pas), l'alimentation moteur est typiquement plus élevée que ce qui serait permit sans limitation active de courant. Par exemple, un moteur pas-à-pas typique pourrait avoir un courant maximum évalué à 1 Amp avec une résistance de bobine de 5Ω, ce qui nous indique que la tension maximale du moteur est de 5 Volts (U=R * I). Utiliser un tel moteur sous 12 V permettrait d'atteindre un débit de pas nettement plus important, mais le courant doit être activement limité à moins de 1 Ampt pour éviter d'endommager le moteur.
    
Le A4988 supporte cette fonctionnalité de "limitation active de courant" et le petit potentiomètre disponible sur la carte est utilisé pour fixer en fixer la valeur.  
 
Le A4988 supporte cette fonctionnalité de "limitation active de courant" et le petit potentiomètre disponible sur la carte est utilisé pour fixer en fixer la valeur.  
   −
=== Ajuster la limite de courant ===
+
==== Ajuster la limite de courant ====
 
Une façon d'ajuster la limite de courant est de placer le pilote en pas complet (''full step'') et de mesurer le courant passant dans une bobine du moteur '''sans envoyer de signal''' sur la broche d'entrée STEP. Le courant mesuré sera équivalent à 0.7 fois le courant limite (puisque en mode "full step" les deux bobines sont toujours actives et le courant limité à 70% du courant limite configuré/sélectionné).  
 
Une façon d'ajuster la limite de courant est de placer le pilote en pas complet (''full step'') et de mesurer le courant passant dans une bobine du moteur '''sans envoyer de signal''' sur la broche d'entrée STEP. Le courant mesuré sera équivalent à 0.7 fois le courant limite (puisque en mode "full step" les deux bobines sont toujours actives et le courant limité à 70% du courant limite configuré/sélectionné).  
    
Notez que la configuration du courant limite change lorsque vous modifiez la tension de la logique de commande (VDD); la tension appliqué sur la broche "ref" du A4988 par le potentiomètre dépend directement de la valeur de VDD.
 
Notez que la configuration du courant limite change lorsque vous modifiez la tension de la logique de commande (VDD); la tension appliqué sur la broche "ref" du A4988 par le potentiomètre dépend directement de la valeur de VDD.
   −
=== Autre méthode ===
+
==== Autre méthode ====
 
Si vous disposez de matériel de précision, vous pouvez localiser la broche "ref" et en mesurer la tension. Cela sera un tâche très délicate que nous recommandons pas mais documentons néanmoins (car plus facilement accessible sur les breakout Pololu).  
 
Si vous disposez de matériel de précision, vous pouvez localiser la broche "ref" et en mesurer la tension. Cela sera un tâche très délicate que nous recommandons pas mais documentons néanmoins (car plus facilement accessible sur les breakout Pololu).  
 
   
 
   
Ligne 124 : Ligne 126 :  
Comme mentionné ci-avant, en mode "pas complet" (''full step''), le courant dans les bobines sera limité à 70% du courant limite. Donc, pour obtenir un courant de 1 Amp (en mode ''full step''), le courant limite devrait être de 1 Amp/0.7=1.4 Amp,  ce qui correspond a un Vref de 1.4 A/2.5=0.56 V.  
 
Comme mentionné ci-avant, en mode "pas complet" (''full step''), le courant dans les bobines sera limité à 70% du courant limite. Donc, pour obtenir un courant de 1 Amp (en mode ''full step''), le courant limite devrait être de 1 Amp/0.7=1.4 Amp,  ce qui correspond a un Vref de 1.4 A/2.5=0.56 V.  
   −
Pour des informations plus détaillées, vous pouvez vous référer à la [http://mchobby.be/data-files/datasheet/A4988.pdf fiche technique du A4988] (pdf).
+
Pour des informations plus détaillées, vous pouvez vous référer à la [http://df.mchobby.be/datasheet/A4988.pdf fiche technique du A4988] (pdf).
   −
=== où mesurer le courant ===
+
==== où mesurer le courant ====
 
Le courant dans la bobine du moteur peut être vraiment différent du courant délivré par l'alimentation. Par conséquent, il ne faut pas mesurer le courant à la sortir de votre alimentation.  
 
Le courant dans la bobine du moteur peut être vraiment différent du courant délivré par l'alimentation. Par conséquent, il ne faut pas mesurer le courant à la sortir de votre alimentation.  
    
L'emplacement approprié pour relever le courant '''c'est en série avec la bobine du moteur''' donc entre la pilote et le moteur.
 
L'emplacement approprié pour relever le courant '''c'est en série avec la bobine du moteur''' donc entre la pilote et le moteur.
   −
== Dissipation de chaleur ==
+
'''Notez que mesurer le courant à la sortie de l'alimentation ne fournit pas une mesure fidèle du courant dans les bobines'''. La mesure du courant sur l'alimentation peut être plus faible que le courant de bobine car la tension d'entrée du pilote peut être significativement plus élevée que la tension de la bobine. Ainsi, si la tension d'alimentation est nettement plus élevée que celle nécessaire pour le moteur, le cycle utile (''duty cycle'') sera très court pour atteindre la limite de courant configuré, ce qui conduit à ne différence notable entre les courants moyens et les courants RMS.
The A4988 driver IC has a maximum current rating of 2 A per coil, but 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 A per coil, a heat sink or other cooling method is required.
+
 
 +
=== Dissipation de chaleur ===
 +
Le circuit intégré A4988 support un courant maximum de 2 Amp par bobine, mais le courant que vous pouvez vraiment délivré dépend principalement de l'efficacité du refroidissement du circuit intégré. Le carte est conçue pour évacuer la chaleur aussi efficacement que possible mais si vous voulez fournir un courant d'environ 1 Amp par bobine il faudra prévoir un dissipateur de chaleur et/ou autre méthode de refroidissement.
 +
 
 +
{{ambox|text=Ce produit peut devenir suffisamment chaud pour vous bruler longtemps avant d'entrer lui-même en état de surchauffe. Restez prudent lorsque vous manipulez ce produit ou d'autres composants connectés sur celui-ci.}}
 +
 
 +
== Exemple Arduino ==
 +
Comment raccorder et utiliser votre jouet avec un Arduino Uno
 +
 
 +
=== Montage ===
 +
Vous trouverez ci-dessous le montage avec les deux codification de couleurs des moteurs pas-à-pas les plus répandues
 +
 
 +
Pour commencer, nous alimentons le StepStick avec 5 volts.
 +
* Brancher le +5V d'Arduino sur la broche VDD
 +
* Brancher le GND d'Arduino sur la broche GND (en dessous de VDD)
 +
 
 +
Ensuite, nous branchons l'alimentation moteur en 12V
 +
* Brancher le +12V volts sur la broche VMOT
 +
* Brancher le GMD/Masse de l'alimentation 12V sur la broche GND (sous la broche VMOT).
 +
* Mettre les deux masse en commun. Brancher un fil entre le GND moteur (sous VMOT) et le GND de la logique (sous VDD).
 +
* <font color="red">Brancher une capacité électrolytique de min 47µF entre les deux broches GND et VMOT</font>
 +
 
 +
Raccorder Arduino sur le StepStick:
 +
* Brancher la broche 13 d'Arduino sur l'entrée ENABLE du StepStick
 +
* Brancher la broche 9 d'Arduino sur l'entrée STEP du StepStick
 +
* Brancher la broche 8 d'Arduino sur l'entrée DIR du StepStick
 +
 
 +
Configurer StepStick + MicroStepping:
 +
* Pour cet exemple, nous allons utiliser le mode ''Full Step'' (sans micro-stepping).<br />Ne brancher pas MS1, MS2 et MS3 qui seront donc LOW.
 +
* <font color="red">Brancher ensemble les broches SLEEP et RESET du stepstick.</font>
 +
 
 +
 
 +
==== Codification rouge, bleu, vert, noir ====
 +
[[fichier: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: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.
   −
{{ambox|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.}}
+
''Enable'' fonctionne en logique inverse!
   −
'''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.
+
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 ----------------------
 +
// A4988_Test.ino
 +
//
 +
// Commande d'un moteur pas-à-pas à l'aide d'un pilote A4988 avec
 +
//    Arduino.
 +
//
 +
// Un projet www.mchobby.be (vente de kit et composant)
 +
// Meurisse D. - Licence CC-SA-BY
 +
//
 +
// Un tutoriel http://mchobby.be/wiki/index.php?title=A4988
 +
// Ou Acheter un StepStick A4988
 +
//    http://shop.mchobby.be/product.php?id_product=349
 +
//
 +
 
 +
#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 A4988");
 +
 
 +
  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>
 +
 
 +
== Exemple Raspberry ==
 +
Selon toute vraisemblance, ce module devrait fonctionner avec un Raspberry Pi puisqu'il fonctionne avec une tension d'alimentation VDD à partir de 3v.
 +
 
 +
* Brancher le 3.3v de votre GPIO Raspberry sur l'entrée VDD (pour commander le stepstick en 3.3v)
 +
* Brancher les broches du GPIO sur les broches du StepStick.
 +
 
 +
{{ambox-stop|text=Si vous voulez tester un StepStick avec un Raspberry-Pi, alimentez le StepStick en 3.3v sur sa broche VDD.<br />*** N'ALIMENTEZ PAS *** LE STEPSTICK EN 5V SI VOUS UTILISEZ UN Raspberry-Pi}}
 +
 
 +
Nous ne l'avons pas encore testé et ne pouvons donc rien garantir.
    
== Ressources ==
 
== Ressources ==
* En apprendre plus sur l'effet transitoire LC: "[http://www.pololu.com/docs/0J16/1 LC Voltage Spikes]" publié par polulu.com  
+
* En apprendre plus sur l'effet destructeur des pointes de surtension dans un circuit LC.<br />Voir l'article "[http://www.pololu.com/docs/0J16/1 LC Voltage Spikes]" publié par polulu.com (''anglais'')
 +
 
 
== Où acheter ==
 
== Où acheter ==
 
* {{pl|349|Controleur moteur pas-à-pas A4988}}
 
* {{pl|349|Controleur moteur pas-à-pas A4988}}
 
* {{pl|236|Moteur pas-à-pas bipolaire}} et son {{pl|192|équivalent avec un couple plus élevé}}
 
* {{pl|236|Moteur pas-à-pas bipolaire}} et son {{pl|192|équivalent avec un couple plus élevé}}
29 836

modifications

Menu de navigation