Lire deux capteur d'humidité a intervalle différent non bloquant.

Hello !

Il y a bien la fonction "millis" qui compte les millisecondes en temps réel, mais je n'ai pas réussi à la faire fonctionner correctement. Du coup je pense avoir trouvé mieux avec: "Metro"
C'est une fonction avancée non bloquante pour réaliser des actions à intervalles réguliers.

En gros, ça compte le temps (depuis le démarrage de ton code) en milliseconde et ça relève régulièrement le temps écoulé.
Tant que ton intervalle n'est pas atteint, il passe. Lorsqu'il est atteint (ou dépassé), tu peux engager l'action désirée. Il y a la possibilité de remettre à zéro et/ou de changer l'intervalle mesuré.

tu peux aller jeter un oeil ici : Metro Arduino Library, schedule repetitive events on Teensy

sinon je t'ai préparé un truc comme ça :

#include <Metro.h>
Metro mesureCanal = Metro(4000);	//objet qui a pour but de "mesurer" les 4 secondes
Metro mesureSol = Metro(300000); 	//objet qui a pour but de "mesurer" les 5 minutes


void loop()
{

//**********************************************************  FONCTION CANAL   ******* 

  if (mesureCanal.check() == 1)  // vérifie si mesureCanal a dépassé son intervalle
  {
    // si oui, alors je fais la mesure du niveau d'eau du canal
     }
    else
    {
      // si non, Blabla
    }
  }

//**********************************************************  FONCTION SOL  **************** 

  if (mesureSol.check() == 1)  // vérifie si mesureSol a dépassé son intervalle
  {
    // si oui, alors je fais la mesure de l'humidité du sol
     }
    else
    {
      // si non, Blabla
    }
  }

//**********************************************************  FONCTION SOL  **************** 


// ICI TU PEUX METTRE TOUT LE RESTE DE TON CODE AVEC TOUTES TES FONCTIONNALITES QUASI A L'IDENTIQUE



}

du coup tu n'es pas obligé de les lancer en même temps, ni même de placer ces deux blocs de code au même endroit de ton propre code, à la limite peu importe où tu les place, pourvu que ton programme balaye régulièrement ces fonctions. à chaque passage, ça ne prends qu'un temps-machine infinitésimal

je te laisse le soin de débugger tout ça avec ton code ^^

NiCk