Remettre à zéro un timer

Après quelque recherche assez compliqué vu mon niveau d'anglais.

Je pense avoir trouvé !

Voici ce que j'ai fait dans mon programme :

float pluie;
float mm;
int time2;
int time3;
int p = 2; // Lecture du capteur
int LED=5;
int etatpluviometre;
unsigned long time;
unsigned long timeAV = 0;


void setup() {
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  pinMode(p, INPUT);
  pluie=0;
}

// Boucle principale:

void loop() {

  etatpluviometre = digitalRead(p);
  time = millis()/1001;

  
  if (etatpluviometre == HIGH) {
    digitalWrite(LED, HIGH); // Allume la Led
  }
  else {
    digitalWrite(LED, LOW); // Eteind la Led
    pluie=pluie+2794; // Ajoute la capacité du réservoir du pluviomètre si il penche de l'autre côté
    mm=pluie/10000; // Divise par 10000 pour l'avoir en mm

  }

  if(time - timeAV == 10){ //si time - timeAV (qui est égal à 0 à l'origine) à un écard de 10 seconde
    Serial.println(mm); //
    pluie=0;
    timeAV = time;
  }

  delay(250);
}

Dans mon :

if(time - timeAV == 10){
    Serial.println(mm);
    pluie=0;
    timeAV = time;
  }

J'ai fait en sorte que si time - timeAV(qui à l'origine est égal à 0) est égal à 10, alors il m'affiche la précipitation, ensuite il la remet à zéro, et il fait en sorte que timeAV est égal à time.

J'ai testé et cela fonctionne bien.

Donc c'était bien ça qu'il fallait faire ?

Après je sais qu'il y aurait un problème du fait que au bout de 50 jour le time atteindra sa limite et il se remet à 0, mais vu que c'est pour mon projet de bac, notre station météo va fonctionner juste 30 minute pour savoir si tout fonctionne , on prend des photos ou vidéos en fonctionnement, et hop après c'est au placard et on pourra plus jamais y retoucher :slight_smile: