Bonsoir,
ce n'est pas encore tout à fait ça :
- les digitalWrite doivent se faire depuis la fonction setWaterPump : c'est elle qui doit allumer et éteindre la pompe (allumer si l'argument est true, éteindre s'il est false)
- tu as toujours etat comme variable globale (indice : static)
- Mike t'avais demandé de ne pas utiliser delay, du coup, il faut revenir à l'utilisation de millis()
Peut-être qu'une petite explication sur le type bool peut t'aider.
Une variable de type bool peut prendre seulement deux valeurs :
- false (=0=LOW)
- true (=1=HIGH)
Elle sert donc généralement quand il n'y a que deux états possibles (par exemple pompe allumée (true) ou éteinte (false)
Quelques points intéressants avec les bool :
bool mon_bool_vrai=true; bool mon_bool_faux=false; bool mon_bool_variable; if(mon_bool_vrai) //tu peux juste mettre une variable bool au lieu d'une condition dans ton if : si la variable vaut true, tu entres dans le if, si elle vaut false, tu entres dans le else { //ce code sera exécuté } else { //ce code ne sera pas exécuté } if(mon_bool_faux) //tu peux juste mettre une variable bool au lieu d'une condition dans ton if : si la variable vaut true, tu entres dans le if, si elle vaut false, tu entres dans le else { //ce code ne sera pas exécuté } else { //ce code sera exécuté } digitalWrite(pin, mon_bool_vrai); //vas mettre la pin à HIGH car mon_bool_vrai est true digitalWrite(pin, mon_bool_faux); //vas mettre la pin à LOW car mon_bool_faux est false mon_bool_variable= 1<3; //mon_bool_variable vaut maintenant true car 1<3 est vrai mon_bool_variable= 1==3; //mon_bool_variable vaut maintenant false car 1==3 est faux