Moteur Pas a pas problème code

Bonjour,

J'ai ici un code qui permet à un moteur pas à pas de faire avancer un chariot en translation à vitesse constante aller-retour.

Seulement voici mon problème, j'aimerais que mon moteur moteur pas a pas fonctionne à une certaine vitesse puis que cette vitesse double à partir d'un temps T (2s par exemple) et je n'y arrive pas.

#define dirPin 2
#define stepPin 3
#define StepsPerRevolution 200
#define poussoirPin 4
#define nombreTours 9
#define tempsPause 2000
int etatPoussoir=0;

void setup() {
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(poussoirPin, INPUT);

}

void loop() {
etatPoussoir = digitalRead(poussoirPin);
digitalWrite(dirPin, HIGH);
while (etatPoussoir == HIGH) {
for (int i = 0; i< nombreTours*StepsPerRevolution; i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(tempsPause);
digitalWrite(stepPin, LOW);
delayMicroseconds(tempsPause);
etatPoussoir = digitalRead(poussoirPin);

}
delay(1000);

digitalWrite(dirPin, LOW);

for (int i=0; i< nombreTours*StepsPerRevolution; i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(1000);
digitalWrite(stepPin, LOW);
delayMicroseconds(1000);
etatPoussoir= digitalRead(poussoirPin);
}
delay(1000);
}
}

Merci d'avance.

Bonjour et bienvenue.

Remarque :
Tu as bien vu qu'avant la liste des questions il y a ceci :

Il y a de couleur : un drapeau, des panneaux "autre danger", ce n'est pas un hasard : c'est pour attirer le regard.

Il y a aussi cette image :

Mon petit doigt me dit que ceux qui appliquent ce qui est demandé dans ce message ont beaucoup plus de chance d'avoir des réponses que ceux qui jugent sa lecture une perte de temps.

Je vais déplacer ton sujet que tu as posté dans un emplacement interdit.
Je te conseille fortement de respecter ce qui est demandé si tu espère obtenir une réponse.

Et quelquesoit le forum où tu écris, je te conseille aussi d'en respecter les règles, j'en connais où ta question serait aller dirrectement à la poubelle sans explications.
C'est toi qui vois.