Problème Programmation arrosage

Bonjour,

J’essaie de faire mon premier programme et je n’y connais rien, j’ai regardé divers tuto mais je coince.

C’est un système d’arrosage avec sol moisture et électrovanne.

phase_repos = 0 // Arrosage ON
Cette phase doit se déclencher lorsqu’il y a moins de 10%
Et arroser jusque temps qu’il détecter un remplissage a 90%
Jusque-là tout va correctement.

La-il permute sur la phase_repos = 1 // Arrosage OFF
Ici il devrait laisser s’assécher la plante de 90% jusqu’à 10%, puis permuter sur phase_repos = 0

Problème :
Au-dessus de 90% il permute entre phase_repos 0 et 1
En dessous de 90% il retombe en phase_repos 0, alors qu’il devrait continuer sur phase_repos 1 jusqu’à asséchement a 10% et seulement la basculer sur phase_repos 0.

Comment faire, merci

// Mesure analogique de l'humidité du sol 
// Avec le module Humidité Sol 
//****************************************************
// Brancher +V -> 5V et GND
// Sortie analogique du capteur -> A0 Arduino

int watertime = 5000; // Temps d’ouverture eau en millisecondes
int waittime = 10000; // Temps d'attente entre les arrosages 3600000
int pinA =A0;          // Pin Analogique du capteur
int Sensor = 3;        // Pin d'alimentation du capteur
int Ralay1 = 2;        // Pin Relay 1 (Vanne 1)
boolean phase_repos = 0;

void setup() 
{
 Serial.begin(9600);
 pinMode(pinA,INPUT);
 pinMode(Ralay1,OUTPUT);
 pinMode(Sensor,OUTPUT);
}

void loop() 
{
digitalWrite(Sensor,HIGH);
delay(watertime);
float h=analogRead(pinA);
float taux = (1023.0-h)/6.65;
 Serial.print(h);
 Serial.print(" ");
 Serial.println(taux);
 Serial.println(phase_repos);
 Ralay(taux);
 digitalWrite(Sensor,LOW);
 delay(waittime);
}

void Ralay(float taux) 
{
  if(phase_repos == 0) {               //Arrosage ON
   if (taux > 10 && taux > 90){
      digitalWrite(Ralay1,HIGH);
      phase_repos = 1;
    }
  }
  else if (phase_repos == 1){          //Arrosage OFF
    if (taux > 90 && taux > 10){
      digitalWrite(Ralay1,LOW);
      phase_repos = 0;
    }
  }
}

Bonjour,

Il y a visiblement un problème
ici

 if(phase_repos == 0) {               //Arrosage ON
  if (taux > 10 && taux > 90){

et là

 else if (phase_repos == 1){          //Arrosage OFF
   if (taux > 90 && taux > 10){

if (taux > 10 && taux > 90) et if (taux > 90 && taux > 10) sont équivalents à if (taux > 90)