Description
Le capteur de débit d’eau se compose d’un corps en cuivre, d’un rotor à eau et d’un capteur à effet Hall. Lorsque l’eau traverse le rotor, celui-ci roule. Sa vitesse change en fonction du débit. Le capteur à effet Hall émet le signal d’impulsion correspondant. Celui-ci est adapté pour détecter le débit dans un distributeur d’eau ou une machine à café.
La durée de vie est plus longue que celle d’un corps en plastique.
Caractéristiques
- Compact, facile à installer
- Haute performance d’étanchéité
- Capteur à effet Hall de haute qualité
- Conforme RoHS
Caractéristiques
- Mini. Tension de fonctionnement : 4,5 V CC
- Courant de fonctionnement max. : 15 mA (DC 5 V)
- Tension de fonctionnement : DC 5V~15V
- Plage de débit : 1 à 30 l/min
- Fréquence : F=6,6*Q(Q=L/MIN)
- Capacité de charge : ≤ 10 mA (DC 5 V)
- Température de fonctionnement : ≤80℃
- Température du liquide : ≤120℃
- Humidité de fonctionnement : 35 % à 90 % HR
- Pression de l’eau : ≤ 1,75 MPa
- Température de stockage : -25 à + 80 ℃
- Humidité de stockage : 25 % à 95 % HR
Prise en main du capteur de débit d’eau liquide à effet Hall avec filetage G3/4″
Cela fait partie d’un projet sur lequel j’ai travaillé et j’ai pensé que je le partagerais ici car il y a eu quelques fils de discussion sur la façon de lire le débit d’eau en litres par minute à l’aide du capteur de débit d’eau.
Matériel requis
- Arduino Uno
- Fils de liaison
- Capteur de débit d’eau liquide à effet Hall avec filetage G3/4″
- Résistance 10k
Connexion du matériel
Le câblage du capteur de débit d’eau est assez simple. Il y a 3 fils : noir, rouge et jaune. Noir à la broche de terre Rouge à la broche 5v Le fil jaune devra être connecté à une résistance de rappel de 10k, puis à la broche 2 de l’Arduino.
Téléchargez l’exemple de croquis
Mesurez le débit de liquide/eau à l’aide de ce code.
Connectez Vcc et Gnd du capteur à l’Arduino et la
ligne de signal à la broche numérique 2 de l’Arduino.
*/
état de l’octetLed = 13;
byte sensorInterrupt = 0; // 0 = broche numérique 2
byte sensorPin = 2;
// Le capteur de débit à effet Hall génère environ 4,5 impulsions par seconde par
litre/minute de débit.
float calibrationFactor = 4.5;
nombre d’impulsions d’octets volatiles ;
float débit;
unsigned int débitMilliLitres;
unsigned long totalMilliLitres;
unsigned long ancienHeure;
configuration vide()
{
// Initialiser une connexion série pour signaler les valeurs à l’hôte
Serial.begin(9600);
// Configurer la ligne de LED d’état comme une sortie
pinMode(statusLed, OUTPUT);
digitalWrite(statusLed, HIGH); // Nous avons une LED active-basse attachée
pinMode(capteurPin, ENTRÉE);
digitalWrite(capteurPin, HAUT);
pulseCount = 0;
flowRate = 0.0;
flowMilliLitres = 0;
totalMilliLitres = 0;
oldTime = 0;
// Le capteur à effet Hall est connecté à la broche 2 qui utilise l’interruption 0.
// Configuré pour se déclencher lors d’un changement d’état en CHUTE (transition de
l’état HAUT à l’état BAS)
attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
}
/**
* Boucle du programme principal
*/
void loop()
{
if((millis() – oldTime) > 1000) // Traiter les compteurs uniquement une fois par seconde
{
// Désactiver l’interruption lors du calcul du débit et de l’envoi de la valeur à
// l’hôte
detachInterrupt(sensorInterrupt);
// Étant donné que cette boucle peut ne pas se terminer dans des intervalles d’exactement 1 seconde, nous calculons
// le nombre de millisecondes qui se sont écoulées depuis la dernière exécution et l’utilisons
// pour mettre à l’échelle la sortie. Nous appliquons également le calibrageFactor pour mettre à l’échelle la sortie
// en fonction du nombre d’impulsions par seconde par unité de mesure (litres/minute dans
// ce cas) provenant du capteur.
flowRate = ((1000.0 / (millis() – oldTime)) * pulseCount) / calibrationFactor;
// Notez l’heure à laquelle cette passe de traitement a été exécutée. Notez que comme nous avons
désactivé les interruptions, la fonction millis() n’augmentera pas réellement
à ce stade, mais elle renverra toujours la valeur à laquelle elle a été définie juste avant
la disparition des interruptions.
oldTime = millis();
// Divisez le débit en litres/minute par 60 pour déterminer combien de litres ont
traversé le capteur dans cet intervalle de 1 seconde, puis multipliez par 1 000 pour
convertir en millilitres.
flowMilliLitres = (flowRate / 60) * 1000 ;
// Ajoutez les millilitres passés dans cette seconde au total cumulé
totalMilliLitres += flowMilliLitres;
frac int non signé ;
// Imprimer le débit pour cette seconde en litres/minute
Serial.print(“Flow rate: “);
Serial.print(int(flowRate)); // Imprimer la partie entière de la variable
Serial.print(“L/min”);
Serial.print(“t”); // Imprimer l’espace de tabulation
// Imprimer le total cumulé des litres écoulés depuis le démarrage de
Serial.print(“Quantité de liquide en sortie : “);
Serial.print(totalMilliLitres);
Serial.println(“mL”);
Serial.print(“t”); // Imprimer l’espace de tabulation
Serial.print(totalMilliLitres/1000);
Serial.print(“L”);
// Réinitialiser le compteur d’impulsions afin que nous puissions recommencer à incrémenter
pulseCount = 0;
// Réactivez l’interruption maintenant que nous avons fini d’envoyer la sortie
attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
}
}
/*
Interrompre la routine de service
*/
void pulseCounter()
{
// Incrémenter le compteur d’impulsions
pulseCount++;
}
REMARQUE : SI vous obtenez des erreurs « 223 » ou des erreurs « 226 » dans le programme, le problème vient de vos caractères « / = ( et « ) – * > ». Remplacez-les par des guillemets ordinaires « / = » () – * > et tout devrait bien se passer.
Test du circuit
Une fois que vous avez câblé le câble, vous devrez télécharger le code suivant. Une fois qu’il est téléchargé et que du liquide circule dans le capteur de débit d’eau, vous pouvez ouvrir le moniteur série et il affichera le débit.