timer arduino qui démare tout seul

Salut,
je fais appel à vous car je suis vraiment désespéré, mon code ne fait pas ce que je souhaiterais qu’il fasse, d’ailleurs le voici:

#include <MemoryFree.h>
 
const int led = 10;
const int button = 6;
int button_state = 0;
unsigned long time = 0;
long tempsfixe = 20000;
 
 
void setup()
{
  pinMode(button, INPUT);
  pinMode(led, OUTPUT);
  Serial.begin(9600);
}
 
void loop()
{
  button_state = digitalRead(button);
 
  time = millis();
  tempsfixe = 20000;
 
 
  if (button_state == LOW)
  {
    delay(500);
    digitalWrite(led, HIGH);
    delay(500);
    digitalWrite(led, LOW);
 
  }
 
  if (button_state == HIGH)
  {
    if (tempsfixe > time)
    {
      digitalWrite(led, HIGH);
      Serial.print("Temps :");
      Serial.println(time);
      Serial.println(freeMemory());
      delay(1000);
    }
  }
  if (tempsfixe < time)
  {
    digitalWrite(led, LOW);
 
  }
 
 
 
}

Pourtant j’ai l’impression que c’est une erreur vraiment bête, mais pas moyen… Voici le déroulement de monde code:

  • Lorsque le bouton est à l’état relâché, la LED doit cligoter (ça c’est OK)…

  • Lorsque la fonction millis() dépasse la valeur fixée, la LED devrait s’éteindre, mais ce n’est pas le cas…

  • Idem lorsque le bouton est enfoncé (ou pas), parce que même si il n’est pas enfoncé, le timer démare quand même…

Merci d’avance

time = millis(); Cette variable time croit continuellement, c'est le nombre de millisecondes depuis le lancement du programme.

Le seuil tempsfixe=20000 est donc dépassé une seule fois après 20sec et ensuite ça ne change plus. Il faut modifier tempsfixe en cours d'exécution Regarde l'exemple http://arduino.cc/en/Tutorial/BlinkWithoutDelay