Alors ça semblait prometteur mais à moins que je l'utilise mal ça revient au même, les valeurs décroissent mais ne remontent pas et restent bloquées en bas.
int gDel = 150;//variable pour delay()
int prev_gDel = 2000;
void loop() {
while(prev_gDel>gDel){
prev_gDel -= 100;
Serial.println(prev_gDel);
delay(prev_gDel);
while(prev_gDel<gDel){
prev_gDel += 100;
Serial.println(prev_gDel);
delay(prev_gDel);
}
}
}
Tu oublies que la valeur finale n'est pas la même dans les deux boucles.
Dans un cas tu pars de 2000 pour aller jusqu'à 100.
Dans l'autre tu pars de 100 pour aller jusqu'à 2000.
Si tu regardes le pseudo-code que j'ai mis il y a valeur finale1 et valeur finale2
J'aurais du mettre valeurFinale1 et valeurFinale2 pour que ce soit plus clair. Je corrige le pseudo-code
Oui,merci à tous les deux. ce qui a marché pour moi c'est la proposition avec if, le while me parait aussi très intéressant mais je n'arrive pas à le mettre en oeuvre.
Ci dessous une belle accélération-décélération entre 2000 ms et 100 ms
int gDel1 = 150;//valeur finale1 pour delay()
int gDel2 = 2000;//valeur finale2 pour delay()
int prev_gDel = 2000;
int pas = 100;
void setup() {
Serial.begin(74880);// initialize menu Tools > serial monitor
delay(100);
}
void loop() {
if ((prev_gDel >= gDel2) || (prev_gDel <= gDel1))
{
pas = -pas;
}
prev_gDel += pas;
Serial.println(prev_gDel);
delay(prev_gDel);
}