Afficher l'eau économisée

bonjour je suis actuellement en terminale STI2D, mon projet consiste à crée un WC qui fonctionne avec de l'eau de pluie. Une de mes tache est d'afficher l'eau économisée grâce à l'eau de pluie, pour cela j'utilise un capteur de débit qui me permettra de calculer le volume d'eau. On sait déjà que le débit de la pompe est de 10 L/min donc 1/6 L/s. Il me reste donc qu'a calculer le temps.

Programme :

int temps1; // le temps quant la pompe démarre 
int temps2; // le temps de variation entre le démarrage et l’arrêt de la pompe 
int I;          // Variable I
const int capt1 = 1; // le capteur de débit branché sur le pin analogique 1
int etatC1; // état du capteur de débit 
int EC = 0; // l'eau économisée  

void setup() 
{
  etatC1 = analogRead(capt1);
}

void loop()
{

if(etatC1 > 0) // si la pompe envoie de l'eau 
 
 {
  temps1 = millis(); // le temps de démarrage 
  I = 1; // la variable I =1
  }

if(etatC1 == 0 && I == 1) // si la pompe est à l’arrêt et a envoyer de l'eau avent 
  {
    temps2 = ((millis() - temps1)/ 1000); // le temps 2 est égale au temps final moins le temps départ
    EC = EC + 1/6 * temps2 // EC = EC + la nouvelle économie d'eau 
    delay(10); // délai de 10 ms  
    I = 0; // variable I = 0
   }

lcd.print(EC);
}

Problème mon afficheur n'affiche que des 0.

bonjour,
je pense que ton problème vient du fait que tu mesure l’état de ton capteur dans le setup,
n'oublie pas que dans le setup le code ne s’exécute qu'une fois donc si quand tu démarre ton arduino ton capteur indique 0 alors ton loop t'affichera toujours la valeur par defaut de EC qui est 0.

ok merci :wink: je regarderais sa des la rentré

Il faudra aussi gérer autrement le temps de démarrage car comme tu le fais, le temps est reinitialisé constemment quand la pompe est en marche ...