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 ![]()