Circuit de débitmètre d'eau numérique simple utilisant Arduino

Essayez Notre Instrument Pour Éliminer Les Problèmes





Dans cet article, nous allons construire un débitmètre d'eau numérique utilisant Arduino et un écran LCD 16 x 2. Nous examinerons le capteur de débit d'eau YF-S201, sa construction et son fonctionnement et comment s'interfacer avec Arduino pour extraire des lectures utiles.

Le projet proposé peut mesurer le débit d'eau en litre / minute et le débit d'eau total en litres.



Jetons un coup d'œil au capteur de débit d'eau YF-S201.

Illustration du YF-S201:

YF-S201 est un Basé sur l'effet Hall capteur d'eau. Il a trois bornes 5V (tension de fonctionnement nominale), GND et sortie. Le + 5V est un fil de couleur rouge, le noir est GND et le jaune est émis.



Le capteur donne une fréquence directement proportionnelle au débit d'eau. Le capteur YF-S201 peut mesurer de 1 litre / minute à 30 litres / minute. La pression de l'eau doit être inférieure ou égale à 1,75 MPa.

L'eau peut être injectée par une extrémité et l'eau s'écoule par l'autre extrémité.

Le capteur peut être placé après le robinet-vanne principal du réservoir si vous souhaitez mesurer le débit d'eau dans un réseau de conduites d'eau ou vous pouvez le placer juste avant un robinet d'eau pour mesurer le débit d'eau du robinet unique.

Le placement du capteur peut être n'importe où selon les besoins de l'utilisateur, mais il faut prendre soin d'éviter les fuites d'eau.

Le capteur a un aimant et capteur à effet Hall si nous jetons un coup d'œil sur les côtés du capteur de débit d'eau, nous pouvons assister à une turbine en plastique sur le trajet de l'écoulement de l'eau.

Un aimant de forme ronde est intégré au centre de la turbine et le capteur à effet Hall est scellé et protégé de l'humidité et placé au-dessus de l'aimant. Le capteur à effet Hall produit une impulsion pour chaque révolution de la turbine.

Forme d'onde de débit d'eau sur un traceur série

Nous pouvons voir les impulsions générées par le capteur de débit d'eau sur le traceur série d'arduino IDE, illustrées ci-dessous (en utilisant l'oscilloscope à canal unique Arduino).

Nous avons soufflé de l'air à travers le capteur pour faire tourner la turbine comme test et la forme d'onde générée est indiquée ci-dessus. La forme d'onde plus dense du côté gauche représente une fréquence plus élevée et une rotation plus rapide de la turbine, la forme d'onde moins dense du côté droit signifie l'inverse.

Un débit d'eau constant donne une sortie de fréquence constante.

Nous devons convertir la fréquence en échelle litre / minute. Pour ce faire, le fabricant a donné une formule:

Débit d'eau (litre / min) = fréquence / 7,5

Nous devons donc mesurer la fréquence générée et appliquer la formule ci-dessus dans le code du programme.

Spécifications techniques du YF-S201:

· Précision: +/- 10%, si vous avez besoin d'une meilleure précision, nous devons calibrer.

· Température de fonctionnement: -25 à + 80 degrés Celsius.

· Humidité de fonctionnement: 35% à 80% HR.

· Cycle de service de sortie: 50% +/- 10%.

· Pression d'eau maximale: 1,75 MPa.

· Légumineuses par litre: 450.

· Consommation maximale de courant: 15 mA à 5 V

Cela conclut le capteur de débit d'eau YF-S201.

Passons maintenant au schéma.

Diagramme schématique:

La broche de sortie du capteur de débit d'eau est connectée à A0 de l'Arduino. Utilisez le Potentiomètre 10K pour régler le contraste de l'écran. Câblez l'Arduino et affichage LCD selon le diagramme ci-dessus.

Code de programme:

//-----Program Developed by R.Girish-----//
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int X
int Y
float Time = 0
float frequency = 0
float waterFlow = 0
float total = 0
float LS = 0
const int input = A0
const int test = 9
void setup()
{
Serial.begin(9600)
lcd.begin(16, 2)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Water Flow Meter')
lcd.setCursor(0,1)
lcd.print('****************')
delay(2000)
pinMode(input,INPUT)
pinMode(test, OUTPUT)
analogWrite(test,100)
}
void loop()
{
X = pulseIn(input, HIGH)
Y = pulseIn(input, LOW)
Time = X + Y
frequency = 1000000/Time
waterFlow = frequency/7.5
LS = waterFlow/60
if(frequency >= 0)
{
if(isinf(frequency))
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('L/Min: 0.00')
lcd.setCursor(0,1)
lcd.print('Total: ')
lcd.print(total)
lcd.print(' L')
}
else
{
total = total + LS
Serial.println(frequency)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('L/Min: ')
lcd.print(waterFlow)
lcd.setCursor(0,1)
lcd.print('Total: ')
lcd.print(total)
lcd.print(' L')
}
}
delay(1000)
}
//-----Program Developed by R.Girish-----//

Prototype de l’auteur:

Le «L / Min» indique le débit d'eau actuel et le «Total» indique le débit total d'eau depuis la mise en marche du circuit.

Vous pouvez également faire couler tous les liquides dont la valeur de viscosité est proche de l'eau.

Si vous avez des questions concernant ce débitmètre d'eau numérique utilisant Arduino, n'hésitez pas à les exprimer dans la section des commentaires, vous pouvez recevoir une réponse rapide.




Une paire de: Voiture RC 2,4 GHz contrôlée par joystick utilisant Arduino Suivant: Faites ce convertisseur Buck en utilisant Arduino