Modifications

Sauter à la navigation Sauter à la recherche
2 283 octets supprimés ,  30 juin 2014 à 09:43
Ligne 67 : Ligne 67 :     
{{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.}}
 
{{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.}}
  −
=== 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>
      
== Step et micro-Stepping ==
 
== Step et micro-Stepping ==
29 910

modifications

Menu de navigation