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.