Go Down

Topic: Probleme lancement pompe pour arrosage automatique  (Read 158 times) previous topic - next topic

Simon31300

Jun 25, 2019, 06:14 pm Last Edit: Jun 25, 2019, 06:27 pm by Simon31300
Bonjour à tous,

j'ai un problème pour lancer ma pompe pour l'arrosage automatique.

La pompe ne se lance pas du tout quand le seuil est dépassé ( enfin en dessous )

JE sais qu'il s'agit d'un code très simple mais je n'arrive pas a trouvé l'erreur quelqu'un peut-il m'aider ?

Code: [Select]
int allumage1(){

unsigned long priseT1; // variable pour calcul de temps

int humi1 = moyenneSonde(A4); //appel de la fonction pour calculer 20 valeur de la sonde d'humidité
      
      if(humi1 < seuilHumi && comptM1 == 0){ // seuiHumi = 350 et comptM1 = 0 au tous début du code
        priseT1 = millis(); // prise de temps
        digitalWrite(4,HIGH); // allumage de la pompe
        delay(4000); // 4 sec d'allumage pour 100ML
       digitalWrite(4,LOW);// extinction
       graph1 = seuilHumi-50; // état de la pompe pour le graphique
       comptM1 = 1; // compteur d'allumage
      }

      if(millis()-priseT1 >= pauseM && comptM1==1){ // pauseM = 20 minutes le temps que l'eau arrive a la pompe
        comptM1 = 0;
      
      
      }
      return(humi1);
}

lesept

Affiche les valeurs de humi1, seuilHumi et comptM1 avant le if pour voir si c'est normal qu'il ne rentre pas dans le if
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Simon31300

humi1 est variables en fonction de l'humidité de 0 a 1023

seuil humi est une constant = 500 avant le void setup
et comptM1 =1; avant le void setup

et il évolue comme il faut tous le long du code
mais si j'enleve le bloquage avec
Code: [Select]
if(millis()-priseT1 >= pauseM && comptM1==1){ // pauseM = 20 minutes le temps que l'eau arrive a la pompe
        comptM1 = 0;
     
       
      }


tous marche bien

lesept

A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

dbrion06

A quoi serr preiseT1? est il légitime d"en faire une variable locale à la fonction allumage? (elle perdra sa valeur si on quitte cette fonction, au return, donc...)

Go Up