far compiere ad un motore passo passo un certo numero di giri

Buon giorno,
vorrei chiedere se qualcuno ha un po' di tempo per correggermi un programmino per fare girare l'albero di un motore stepper per un certo numero di volte es: 200 per poi fermarsi. La cosa dovrebbe essere ripetibile premendo un pulsante.
Ho provato a fare un programma con l'istruzione "FOR" ma purtroppo il ciclo non si arresta mai per cui il motore gira di continuo. Forse dovrei usare l'istruzione "WHILE" ?
di seguito metto la base del programma nella speranza che qualcuno possa aiutarmi.

Grazie.

int motorPin1 = 8;
int motorPin2 = 9;
int motorPin3 = 10;
int motorPin4 = 11;
int delayTime = 2;

void setup() {
:confused:
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);

}

void loop()

{

digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(delayTime);

}

ciao
2 richieste: correggi il post precedente mettendo il codice dentro i tag /code. Se noti c'e una faccina triste dentro il tuo programma....
Gia che ci sei, posta lo sketch con il ciclo for che non ti funziona; qui si preferisce far capire alla gente gli errori fatti e poi correggerli piuttosto che dare subito le soluzioni.
Puoi anche quardare nel reference di arduino come si usa il For

ciao
pippo72

Grazie per la risposta,
il massimo che sono riuscito a fare è questo programmino con il comando FOR, ma il ciclo si ripete all' infinito e quindi il motore non si ferma mai. Che istruzione o "segreto dovrei usare?"

int motorPin1 = 8;
int motorPin2 = 9;
int motorPin3 = 10;
int motorPin4 = 11;
int delayTime = 2;
int contatore;

void setup() {

pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
Serial.begin(9600);
}

void loop()
{

contatore=1;
for(contatore;contatore<200;contatore+1)
{

digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(delayTime);
Serial.println("contatore");
}

}

ti serve una condizione di uscita cerca di usare un while, una cosa tipo questa

...
  while (step_ <=200)
  { 
    step_++;
  }
...

metti il codice fra i tag

stefa24:
metti il codice fra i tag

Il codice devi racchiuderlo nei tag code, vedi sezione 7 del Regolamento, spiega bene come fare.
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

byte pulsantePin = 2;
byte motorPin1 = 8;
byte motorPin2 = 9;
byte motorPin3 = 10;
byte motorPin4 = 11;
byte delayTime = 2;
  
void setup() { 
  pinMode(pulsantePin, INPUT_PULLUP);
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  Serial.begin(9600);
}
 
void loop() {
  if (digitalRead(pulsantePin) == LOW)  {
    for (byte i = 0; i < 200; i ++) {
      digitalWrite(motorPin1, HIGH);
      digitalWrite(motorPin2, LOW);
      digitalWrite(motorPin3, LOW);
      digitalWrite(motorPin4, LOW);
      delay(delayTime);
      digitalWrite(motorPin1, LOW);
      digitalWrite(motorPin2, HIGH);
      digitalWrite(motorPin3, LOW);
      digitalWrite(motorPin4, LOW);
      delay(delayTime);
      digitalWrite(motorPin1, LOW);
      digitalWrite(motorPin2, LOW);
      digitalWrite(motorPin3, HIGH);
      digitalWrite(motorPin4, LOW);
      delay(delayTime);
      digitalWrite(motorPin1, LOW);
      digitalWrite(motorPin2, LOW);
      digitalWrite(motorPin3, LOW);
      digitalWrite(motorPin4, HIGH);
      delay(delayTime);
     }
  }  
}