[Non réglé] A4988 moteur pas a pas

bonjour,
je fais ce post car j'ai un projet de bras robotisé j'utilise donc des moteurs pas à pas avec des drivers A4988 il ont fonctionnes au début mais la plus rien alors je sais pas si y a une erreur dans le code dans le montage des drivers pour info je possède un arduino mega, une alimentation de laboratoire, des drivers de ce type et un moteur pas à pas de ce type

#define pinEnable 10 // 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<2000; 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<2000; i++){
    Serial.println( i );
    digitalWrite( pinStep, HIGH );
    delay( 10 );
    digitalWrite( pinStep, LOW );
    delay( 10 );
  } 
  
  // 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 );
}

hello
d'où sort ton code ? tu as suivi un exemple donné avec ta carte driver ?

si ton lien est bon, au vu de la carte avec l'instrument loupe, tu devrai gérer les signaux ms1, ms2, ms3

si ton code a fonctionné au début!!, qu'as tu changé ?

tu ne donnes pas assez de renseignements

pour info:
ta carte doit savoir faire : Five selectable step modes: full, 1/2, 1/4, 1/8, and 1/16

voir ce lien:Pololu - A4988 Stepper Motor Driver Carrier

le code sort d'internet j'en ai essayé plusieurs mais plus aucun ne marche , mais j'ai déjà fait tourné le moteur sans brancher les pin ms1, ms2 et ms3 car comme elle ne sont pas connectées elle sont en LOW donc une full step, j'ai juste débranché la carte et modifié un peu le programme et ça n'a plus marché j'ai donc remis le code à zéro mais ça n'a pas remarché. sur mon alimentation de labos quand je branche tous le voltage est a 12 mais l'ampère reste à zéro et le driver chauffe

j'ai celui ci que j'ai fait il y a environ 1 an. de mémoire il fonctionnait mais les commentaires ne sont peut etre pas à jour.
attention la liaison avec le moniteur est à 115200

/*
Test moteur PAP (pas entier)
Carte Pololu avec puce A4988 + régulateur de tension > http://www.pololu.com/catalog/product/1183
http://www.pololu.com/product/1182


UNO     platine micro pas
5          MS1
6          MS2
7          MS3
11         direcion
12         Step
13         Enable
           reset shunté avec sleep
           puis raccordé à Vcc via une R de 12 K
GND        GND de la cde
5 Vcc      VCC de la cde
A1 et B1   sur l'enroulement 1 du moteur
A2 et B2   sur l'enroulement 2 du moteur
VDM      alimentation 12 V pour moteur
GDN       masse alimentation 12 V pour moteur 
          ne pas oublier le condo electrolytique sur l'alim 12 V moteur ( 100 micro farads )
          
          
          */

const int dirPin = 11;  // DIR
const int stepPin = 12; // STEP
const int enablePin = 13; // ENABLE
int var = 0;
int essai = 0;
long resolutio = 0;
int mili = 0;
int micropulse = 0;
long micro = 0;
long tour = 240;
void setup()
{
  DDRD = B11100010;               // port D, les 1 sont en sortie 5,6,7 sont MS1 à 3
  Serial.begin(115200);
  pinMode(enablePin, OUTPUT);     // broche Enable en sortie
  digitalWrite(enablePin, HIGH);  // ensuite on met un niveau haut sur Enable pour relacher le moteur
  pinMode(dirPin, OUTPUT);        // broche Dir  en sortie
  digitalWrite(dirPin, HIGH);     // Tourner à droite (selon branchements !)
  pinMode(stepPin, OUTPUT);       // broche Step en sortie
  delayMicroseconds(2); // on donne un très court délais par précaution avant de tourner
}


void loop()
{
  Serial.println("debut de boucle");
  digitalWrite(enablePin, LOW); // active le moteur (il ne sera plus possible de le tourner à la main et l'intensité sera à son MAX !!
  for (int f = 0; f <= 4 ; f++)
  {
    resolution ( f );
    test();
  }
digitalWrite(enablePin, HIGH); // active le moteur (il sera plus possible de le tourner à la main et l'intensité sera à zéro !!
Serial.println("tempo 3 secondes fin de boucle");
delay ( 3000);
}


void test() //  faire tourner le moteur de 5 tours de 48 pas
{
  int j;
  for(j=0; j<=(tour*5); j++)               // ajuster le nb. de pas (ici 48 pas soit un tour. On compte le zéro !)
  { 
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(micropulse);           // à ajuster selon moteur, on peut essayer de diminuer à 2 us
    digitalWrite(stepPin, LOW);
    delayMicroseconds(micro);       // fréquence à ajuster selon moteur (contrôle la vitesse et le couple)
  }
}



void resolution ( int reso )
{
  Serial.print("resolution =  ");
    Serial.println(reso,DEC);
switch (reso) 
  {
    case 1:                          // 1/2 pas
      PORTD &= B00011111;
      delayMicroseconds(10);
      PORTD |= B10000010;            //128
      tour = (48*2);
      Serial.print("nombre de pas pour un tour  =  ");
      Serial.println(tour,DEC);
      micropulse = 10;
      micro = 2500;
      Serial.println("1/2 pas");
      resolutio=PIND & B11100000;
      Serial.print("port D, bits 7, 6 et 5  =  ");
      Serial.println(resolutio,DEC);
      break;
      
    case 2:                          // 1/4 pas
      PORTD &= B00011111;
      delayMicroseconds(10);
      PORTD |= B01000010;            //64
      tour = (48*4);
      Serial.print("nombre de pas pour un tour  =  ");
      Serial.println(tour,DEC);
      micropulse = 10;
      micro = 1250;
      Serial.println("1/4 pas");
      resolutio=PIND & B11100000;
      Serial.print("port D, bits 7, 6 et 5  =  ");
      Serial.println(resolutio,DEC);
      break;
      
    case 3:                          // 1/8 pas
      PORTD &= B00011111;
      delayMicroseconds(10);
      PORTD |= B11000010;            //192
      tour = (48*8);
      Serial.print("nombre de pas pour un tour  =  ");
      Serial.println(tour,DEC);
      micropulse = 5;
      micro = 625;
      Serial.println("1/8 pas");
      resolutio=PIND & B11100000;
      Serial.print("port D, bits 7, 6 et 5  =  ");
      Serial.println(resolutio,DEC);
      break;
      
    case 4:                          // 1/16 pas
      PORTD &= B00011111;
      delayMicroseconds(10);
      PORTD |= B11100010;            //224
      tour = (48*16);
      Serial.print("nombre de pas pour un tour  =  ");
      Serial.println(tour,DEC);
      micropulse = 2;
      micro = 312;
      Serial.println("1/16 pas");
      resolutio=PIND & B11100000;
      Serial.print("port D, bits 7, 6 et 5  =  ");
      Serial.println(resolutio,DEC);
      break; 
      
   default:                         // full pas
      PORTD &= B00011111;
     // PORTD |= B00000010;
     tour = 48;
     Serial.print("nombre de pas pour un tour  =  ");
     Serial.println(tour,DEC);
     micropulse = 10;
     micro = 5000;
     Serial.println("full pas");
     resolutio=PIND & B11100000;      //00
     Serial.print("port D, bits 7, 6 et 5  =  ");
     Serial.println(resolutio,DEC);
     break;
  }
}