Einfache digitale Wasserdurchflussmesserschaltung mit Arduino

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





In diesem Beitrag werden wir einen digitalen Wasserdurchflussmesser mit Arduino und 16 x 2 LCD-Display bauen. Wir werden einen Blick auf den Wasserdurchflusssensor YF-S201, dessen Aufbau und Funktionsweise sowie auf die Schnittstelle mit Arduino werfen, um einige nützliche Messwerte zu extrahieren.

Das vorgeschlagene Projekt kann die Wasserdurchflussrate in Litern / Minute und den Gesamtwasserdurchfluss in Litern messen.



Werfen wir einen Blick auf den Wasserdurchflusssensor YF-S201.

Abbildung von YF-S201:

YF-S201 ist a Hall-Effekt basiert Wassersensor. Es verfügt über drei Klemmen 5V (Nennbetriebsspannung), GND und Ausgang. Die + 5V sind rot gefärbte Drähte, die schwarzen sind GND und die gelben werden ausgegeben.



Der Sensor gibt eine Frequenz aus, die direkt proportional zum Wasserdurchfluss ist. Der YF-S201-Sensor kann von 1 Liter / Minute bis 30 Liter / Minute messen. Der Wasserdruck sollte kleiner oder gleich 1,75 MPa sein.

Das Wasser kann von einem Ende eingespritzt werden und Wasser fließt durch das andere Ende.

Der Sensor kann hinter dem Hauptschieber des Tanks platziert werden, wenn Sie den Wasserfluss in einem Netzwerk von Wasserleitungen messen möchten, oder Sie können ihn direkt vor einem Wasserhahn platzieren, um den Wasserfluss eines einzelnen Hahns zu messen.

Die Platzierung des Sensors kann je nach Bedarf des Benutzers erfolgen. Es muss jedoch darauf geachtet werden, dass kein Wasser austritt.

Der Sensor hat eine Magnet und Hall-Effekt-Sensor Wenn wir uns die Seiten des Wasserdurchflusssensors ansehen, können wir eine Kunststoffturbine auf dem Weg des Wasserflusses beobachten.

In der Mitte der Turbine ist ein runder Magnet eingebettet, und der Hall-Effekt-Sensor ist versiegelt und vor Feuchtigkeit geschützt und über dem Magneten angeordnet. Der Hall-Effekt-Sensor erzeugt für jede Umdrehung der Turbine einen Impuls.

Wasserflusswellenform auf seriellem Plotter

Wir können die vom Wasserflusssensor erzeugten Impulse auf dem seriellen Plotter der Arduino IDE sehen (siehe unten) (unter Verwendung des Arduino-Einkanaloszilloskops).

Wir haben Luft durch den Sensor geblasen Turbine drehen als Test und die erzeugte Wellenform ist oben gezeigt. Die dichtere Wellenform auf der linken Seite repräsentiert eine höhere Frequenz und eine schnellere Drehung der Turbine, die weniger dichte Wellenform auf der rechten Seite bedeutet das Gegenteil.

Ein gleichmäßiger Wasserfluss liefert eine gleichmäßige Frequenzabgabe.

Wir müssen Wandle die Frequenz um in Liter / Minute-Skala. Zu diesem Zweck hat der Hersteller eine Formel angegeben:

Wasserdurchfluss (Liter / min) = Frequenz / 7,5

Wir müssen also die erzeugte Frequenz messen und die obige Formel im Programmcode anwenden.

Technische Daten des YF-S201:

· Genauigkeit: +/- 10%. Wenn Sie eine bessere Präzision benötigen, müssen wir kalibrieren.

· Arbeitstemperatur: -25 bis + 80 Grad Celsius.

· Arbeitsfeuchtigkeit: 35% bis 80% rF.

· Arbeitszyklus der Ausgabe: 50% +/- 10%.

· Maximaler Wasserdruck: 1,75 MPa.

· Impulse pro Liter: 450.

· Maximale Stromaufnahme: 15 mA bei 5V

Damit ist der Wasserdurchflusssensor YF-S201 abgeschlossen.

Kommen wir nun zum Schaltplan.

Schematische Darstellung:

Der Ausgangsstift des Wasserdurchflusssensors ist mit A0 von Arduino verbunden. Verwenden Sie die 10K Potentiometer zum Einstellen des Anzeigekontrasts. Verdrahten Sie das Arduino und LCD Bildschirm gemäß obigem Diagramm.

Programmcode:

//-----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-----//

Prototyp des Autors:

Das „L / Min“ zeigt den aktuellen Wasserdurchfluss an und das „Total“ zeigt den gesamten Wasserfluss an, der seit dem Einschalten des Stromkreises geflossen ist.

Sie können auch Flüssigkeiten fließen lassen, deren Viskositätswert in der Nähe von Wasser liegt.

Wenn Sie Fragen zu diesem digitalen Wasserdurchflussmesser mit Arduino haben, können Sie diese gerne im Kommentarbereich ausdrücken. Möglicherweise erhalten Sie eine schnelle Antwort.




Zurück: Joystick-gesteuertes 2,4-GHz-RC-Car mit Arduino Weiter: Machen Sie diesen Buck Converter mit Arduino