Utiliser un débit-mètre effet hall

Bonjour,
Matériel Arduino méga, petit débit-mètre effet-hall 3 sorties : 2 pour l'alimentation, 1 pour le signal.
le programme :

//* Code d'exemple pour la fonction pulseIn()
 /** Broche d'entrée du signal */
const byte PIN_SIGNAL = 2;
int compteur;
/** Fonction setup() */
void setup() {

  // Configure le port série pour l'exemple
  Serial.begin(115200);
  // Met la broche de signal en entrée
  pinMode(PIN_SIGNAL, INPUT);
}

/** Fonction loop() */
void loop() {

  // Mesure la durée de l'impulsion haute (timeout par défaut de 1s)
  noInterrupts();
  unsigned long duration = pulseIn(PIN_SIGNAL, LOW);
  interrupts();
  if (duration>0)//s'il y a un signal
    {compteur++;}//nombre de signal haut
  // Affiche la durée de l'impulsion (en us) sur le port série
  Serial.print("Total litres = "),Serial.println(compteur);
 Serial.print("Durée signal = "),Serial.println(duration);
  delay(10);
}

Problème si je branche le débit-mètre directement sur l'Arduino 5volts et Gnd cela fonctionne : je récupère bien les impulsions et j'ai Zéro (0) s'il n'y a pas d'impulsions.
Mais si je connecte le débit-mètre sur la "Breadboard", alimentée elle-même à partir des broches 5V et Gnd ( cela est nécessaire, car l'ai besoin de 4 débit-mètres) j'obtiens continuellement des impulsions même si le débit-mètre n'est pas actionné !!
Il faudrait peut-être intercaler soit un résistor ou un condensateur ? mais comment faire le montage ?
Merci de bien vouloir me renseigner sur ce problème, si possible !
Nb. J'ai quelques notions en c++ mais peut de connaissance en électronique! Mes débuts avec arduino ne date que d'un mois.
A+

Bonsoir

Une bonne photo du montage sur la plaque d'essais permettrait poeut être de comprendre ce qui se passe.

Bonsoir,
j’ai trouvé !; la plaque d’essai est divisée en 2 dans le sens de la largeur : il fallait mettre les 4 débit-mètres sur la même moitié et raccorder cette demi-plaque à 5Volts et GND !!!
Tout fonctionne! Comme souvent, c’est un manque de rigueur qui provoque les dysfonctionnements.
D’autre part, j’ai abandonné la fonction “pulseIn” et construit un programme POO.
Pour info: j’avais besoin de contrôler 4 débit-mètres et 4 electro-vannes d’arrêt en cas de fuite ( débit trop important).
Ci-joint pour le plaisir et aussi pour avoir des remarques constructives sur ce programme

//Croquis fonctionnel !! 01/09/2019 18h10 avec arduino mega
//permet de contrôler une fuite possible sur les  4 circuits :  ouest1, est2, lavoir3, terrasse4

//Définition de l'objet "Circuit" ( class)- 

class Circuit 
{			// 1-liste des variables membres (commence par m_ )
        int m_tour;//pour connaître le nombre de boucles
	int m_numCircuit;// permet de vérifier l'exécution de la "Carotte" en question
	unsigned long m_depart;// utilisation de Millis
	unsigned long m_fin;// utilisation de Millis
	int m_nbLitres;
	int m_total;
	int m_compteurImpulsions;
	int m_quotient;  //pour ajuster impulsions et débit en litres 
	int m_debitMetreStatut;         
	int m_dernierDebitMetreStatut;
	int m_ils;//le numéro de la broche "Débit-mètre"
	int m_ledIls; 						// le numéro de la broche de la LED  : signale un débit > "debitAutorisé"	
	int m_signalElectro;      //contact  vers relais pour fermer l'électrovanne
			//2-variable "m_interval" : durée de la boucle qui comptabilise le débit (à modifier selon les essais )								
	unsigned long m_interval; 
  
			// 3-Constructeur - crée un objet "Circuit"   
	public:
    			// initialisation les variables membres et l'état de la led 
    			//"denominateur", c'est le quotient nécessaire pour déterminer le nombre de litres par rapport aux impulsions
          // 7 variables pour personnaliser les  "Circuits" : le numéro du circuit ;les broches utilisées, le quotient et le nombre de litres autorisés
    Circuit(unsigned long interval,int numCircuit,int brocheIls,int brocheLedIls,int brocheSignalElectro,int denominateur, int nbLitresAutorises)
      	{ 	 
               m_interval=interval;       
      		m_numCircuit=numCircuit;
	        m_ils=brocheIls;
      		pinMode(m_ils,INPUT);        
      		m_ledIls=brocheLedIls;
      		pinMode(m_ledIls,OUTPUT);      
  		m_signalElectro=brocheSignalElectro; 
  		pinMode(m_signalElectro,OUTPUT);	
      		m_nbLitres=nbLitresAutorises; 
  		m_quotient=denominateur;			
      	}		
        			//4-création de la "procédure Carotte" et initialisation des variables de cette procédure 
	void Update() 			
  	{	 
         m_tour++ ;              
	 m_depart = millis();       
            // la boucle
    	while (m_fin < m_depart + m_interval)
       
  			{
  				m_debitMetreStatut = digitalRead(m_ils);        
  				if (m_debitMetreStatut != m_dernierDebitMetreStatut) 
  					{
  						if (m_debitMetreStatut == 1) 
  							{
  							  m_compteurImpulsions++; 
  							  m_total=m_compteurImpulsions/m_quotient;  
  							}
  						m_dernierDebitMetreStatut = m_debitMetreStatut;
  					}
  				m_fin = millis();
  				if (m_total>=m_nbLitres)
  					{
  						 digitalWrite(m_ledIls,HIGH); 
  						 digitalWrite(m_signalElectro,HIGH);//et fermeture electrovanne					 
  					}
      		}       
			        //affichage des résultats pour contrôle 
	Serial.println("*******************");
        Serial.print("Nombre tour = "),Serial.println(m_tour);    
	Serial.print("Numéro Circuit = "),Serial.println(m_numCircuit);		
        Serial.print("Départ = "),Serial.println(m_depart); //départ millis
        Serial.print("Nb d'impulsions = "),Serial.println(m_compteurImpulsions); // faire un calcul pour ajuster   	 
        Serial.print("Fin = "),Serial.println(m_fin); 
        Serial.print("BrocheIls = "),Serial.println(m_ils);//n°brocheils     
        Serial.print("BrocheLedIls = "),Serial.println(m_ledIls);//n°ledbrocheils 
        Serial.print("BrocheSignal de dépassement = "),Serial.println( m_signalElectro); //actionne  l'électro   
        Serial.print("Total litres = "),Serial.println(m_total);// pour ajuster le nombre d'impulsions aux litres               
        Serial.println("*******************");   	 				 
  	}   //fin Update   
};      //fin de la construction de l'objet et des instructions à effectuer

		
		//5-instances de l'objet Circuit et notification des variables
                  //nombre de "millis-intervalle"(urée de la boucle), le numéro du circuit,les broches : débit-mètre(Ils), led-débit-mètreIls, signalElectroRelais ;
                  //autres variables : quotient,débit autorisé
          Circuit ouest1(1000,1,22,23,21,10,20);  
            Circuit est2(2000,2,24,25,20,10,11); 	
         Circuit lavoir3(3000,3,26,27,19,10,50); 	
       Circuit terrasse4(4000,4,28,29,18,10,50); 	
    // 6-le setup
  void setup()  
  {       
    Serial.begin (115200); //initialisation de communication série    
  }
    //7-Exécution des instances : ici les 4 Circuits
void loop() 
    {   
		ouest1.Update();
		est2.Update();
		lavoir3.Update();
		terrasse4.Update();   
    }

Prochainnement, j’ajouterai une possibilté de “rouvrir” les électrovannes par internet

Donc “Post” résolu!!!.. sauf pour les commentaires possibles!!!
Merci