Problème écran tactile ITEAD

Bonjour à tous.

Problème de réaction de l’écran sur mon programme de maintenance d’un bac récifal.

Ecran ITEAD 5 pouces ( non nextion), quand je coupe un relais à l’aide d’une zone définie le programme le remet en fonction peut de temps âpres, ou quand il teint en OFF et que je pointe une autre zone définie il met le premier en ON. et le second en OFF.

Je ne sais pas comment régler le problème.

Merci de votre aide.

New_Recifal_Touch_V1.1.ino (11.8 KB)

Je pense que ça vient de la manière dont tu traites l’appui sur l’icone ON/OFF :

  if (myTouch.dataAvailable()) 
  {
    myTouch.read();
    x = myTouch.getX(); // X coordonnée de pression.
    y = myTouch.getY(); // Y coordonnée de pression.
    // Si icone On/Off pressé.

    if ((x >= 690) && (x <= 733) && (y >= 133) && (y <= 170)) 
    {
      digitalWrite(relai_Pompe1, LOW);//on met en fonction la Pompe.
    }
    else 
    {
      digitalWrite(relai_Pompe1, HIGH); //on met en arret la Pompe.
    }
  }

Ce que tu as écrit, c’est : si on touche l’écran dans la zone du bouton (690 < x < 733 et 133 < y < 170) alors on met la pompe en fonction, sinon on éteint la pompe. Donc, si on touche l’écran hors du bouton, on éteint la pompe.

Je pense que ce que tu veux faire c’est : si on appuie sur le bouton alors

  • Si la pompe est allumée: éteindre la pompe
  • Si la pompe est éteinte : allumer la pompe
    Pour ça, tu dois créer une variable booléenne qui contient l’état de la pompe, que tu initialise comme il faut au début du programme. Si le bouton est touché, tu fais
etatPompe = !etatPompe;
digitalWrite(relai_Pompe1, etatPompe);

Et même chose pour les autres pompes, l’éclairage et l’écumeur.

Lesept bonjour.

Je modifie mon code après le taf et te dirais ce qu'il en est.

Mais un grand merci à toi.

Bonne chance ! :)

Lesept bonjour.

Nickel j’ai mis une bonne heure à tout comprendre et mettre en forme, Mais cela fonctionne.

Un grand merci.

Pascal.