Horloge imprimé en 3D, Moteur pas à pas

Essaies avec ce programme A9488_Test en câblant:

D13 sur ENABLE
D9 sur STEP
D8 sur DIRECTION

Ne pas oublier de faire le pont entre RESET et SLEEP

Gilbert

[// --- 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
//


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

int pas=200;
int temps=10;

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

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