Wasser Durchflusssensor YF-S401

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

→ zurück zum Hauptartikel: ST WS2020

Abblidung 1: Wasser Durchflusssensor YF-S401

Autor: Sven Posner
Betreuer: Prof. Schneider

Aufgabe

Innerhalb des Schwerpunkts Systems Design Engineering (SDE), sollte im Fach Sensortechnik ein Sensor ausgewählt und mit einem beliebigen Mikrocontroller ausgewertet werden. Dazu gehört das Ermitteln der Sensordaten und der Funktionsweise des Sensors. Des Weiteren soll der Sensor mit einer Auswerteschaltung und einer dazugehörigen Software in Betrieb genommen werden.
Dieser Artikel behandelt den Wasser Durchflusssensor YF-S401, der mit einem Arduino Uno R3 ausgewertet werden soll.

Einleitung

Der Durchfluss von Flüssigkeiten wird in Volumen pro Zeiteinheit, dem Volumenstrom, gemessen. Das kann auf direkte und indirekte Weise geschehen. Bei dem hier Vorgestellten Durchflusssensor handelt es sich um einen Flügelradzähler. Das heißt der Messwert wird indirekt über ein Flügelrad aufgenommen und die Drehbewegung des Flügelrads wird dann in ein elektrische Signal umgewandelt.

Technische Daten

Parameter Werte
Spannungsbereich
5 - 24 V DC
Pulsfrequenz pro l/min
98 Hz
Messbereich 0,3 - 6 l/min (mit einer Genauigkeit von ±10 %)
Maximaler Wasserdruck 0,8 MPa (8 Bar)
Betriebstemperatur -25 - 80 °C
Tastgrad 50 % ±10 %
Spannungspuls (Bei 5 V Eingangsspannung) 4,7 V


Pinout
Rot Vcc (5 - 25 V DC)
Schwarz GND
Gelb Signal

Prinziperklärung

Das Messprinzip des Flügelradsensors beruht auf der volumetrischen Messung des Durchflusses. Dabei wird der Volumenstrom mit den Messkammern des Flügelrads ermittelt. Das heißt, das Füllen der einzelnen Kammern des Flügelrads entspricht einem gewissen Volumen, das über die Drehbewegung in ein Verhältnis zur Zeit gesetzt wird. Die Rotation des Flügelrad wiederum wird über einen Hallsensor ermittelt, der somit als Primarsensor dient. Dazu sind an der Welle des Flügelrads in gleichmäßigen abständen Permanentmagneten platziert, deren Magnetfeld dann von dem Hallsensor erfasst wird. Der Hallsensor gibt die so entstehenden Impulse an den Arduino weiter. Dieser wertet die Impulse dann aus.

Der Primärsensor

Abblidung 2: Schematische Darstellung des Halleffekts [1]

Wie oben erwähnt, dient als Primärsensor dieses Sensorsystems ein Hall Sensor. Hallsensoren bestehen meistens aus dünnen Halbleiterplättchen. Fließt infolge einer Angelegten Spannung ein Strom durch den Sensor und wird zusätzlich durch das Magnetfeld gebracht, so wirkt eine Lorenzkraft auf die Ladungsträger. Diese Lässt sich vereinfacht mit folgenderweise darstellen:


 : elektrische Ladung
 : Geschwindigkeit der Ladungsträger in y-Richtung
 : magnetische Flussdichte in z-Richtung


Die durch die Lorenzkraft entstehende Ablenkung der Ladungsträger bewirkt die Entstehung eines elektrischen Feldes in Richtunge der Spannungskontakte. Diese Feld lässt sich so beschreiben:

= : Hallspannung im Leerlauf

Sobald die Kräfte im Gleichgewicht, sind kann man folgenden Ansatz wählen:

Des Weiteren gilt für den Steurstrom:

 : Zahl der Ladungstrager pro m3
 : durchströmte Fläche
 : Geschwindigkeit der Ladungsträger

Setzt man nun die Gleichungen zusammen erhält man;

und mit gilt dann


 : Hall-Konstante


So entsteht eine Spannung an den Spannungsabgriffen. Diese Hallspannung wächst mit der Stärke des Steuerstroms, und der Magnetischen Flussdichte.

Hallsensor IC

Dieser Hallsensor ist direkt in den IC TLE4905 integriert. Dieser IC besteht aus dem Hall-Element, der Stromversorgung, einem Verstärker, einem Schmitt-Trigger und der Ausgangsstufe. Das Hall-Element wird über die Stromversorgung versorgt. Das Signal des Hall-Elements wird dann über eine Verstärkerschaltung verstärkt und dann von dem Schmitt-Trigger in ein digitales Signal umgewandelt.

Sobald ein positives magnetisches Feld an dem IC anliegt und die die Einschalt-Induktion überschritten wird, wird der Ausgang des ICs auf die Ausgangsspannug (LOW) geschaltet. Wenn der magnetisch Fluss reduziert wird und der Relase Point unterschritten wird, wird der Ausgang wieder auf (HIGH) gesetzt.
Intern ist dem IC TLE4905 ein Pull-Up-Wiederstand vorgeschaltet. Ohne den Widerstand kann es sein, dass der Ein-Zustand nicht klar definiert ist. Deshalb zieht der Pull-Up-Wiederstand die Spannung auf (+5 V). Der IC, der hier als Schalter fungiert wird also zwischen Widerstand und Ground angeschlossen.
Auf der Welle des Flügelrads ist ein radial orientierter Ringmagnet befestigt. Dieses Magnetfeld wird von dem Hallsensor erfassst. Jedes mal, wenn ein Magnet sich an dem Hallsensor vorbei bewegt, sendet dieser kurz ein Low-Signal aus. Um das auszunutzen, wurden an der Welle des Flügelrads Permanentmagneten befestigt. durch diese Konfiguration sendet der Sensor Unterbrechungen mit einer Frequenz von 98 Hz bei einem Durchfluss von 1 l/min.

Equipment

Verwendete Software

Für die Abarbeitung der obgenannten Aufgabestellungen wurde folgenden Software verwendet:

  • Arduino Software IDE 1.8.13
  • Fritzing
  • Tortoise SVN

Verwendete Komponente

Für die Abarbeitung der obgenannten Aufgabestellungen wurde folgenden Komponente eingesetzt:

  • Wasser Durchflusssensor YF-S401
  • Arduino UNO R3 (AZ-Delivery Edition)
  • 5 V Tauchpumpe DollaTec

Messkette

Signalvorverarbeitung

Wie ein der Messkette zu sehen, wird die eigentliche Messgröße, der Volumenstrom , über das Flügelrad in eine Rotation mit der Frequenz übersetzt. Der Hallsensor erfasst dann die Magnetfeldänderung, die durch die Magneten an der Welle des Flügelrads hervorgerufen werden. Dieses Signal wird durch einen Verstärker, der mit dem Hallsensor in einem IC sitzt, verstärkt. Der Schmitt Trigger wandelt dieses analoge Signal in ein digitales Signal mit der gleichen Frequenz um. Es wird also kein analoges Signal übertragen, sondern ein Digitales bei dem dann die Frequenz ausgewertet wird. Das hat den Vorteil, dass kein A/D-Wandler benötigt wird und das Signal relativ unabhängig von der Leitungslänge ist.

Bussystem

Für den Sensor wird kein Bussystem benötigt.

Digitale Signalverarbeitung

Die digitalen Signale werden über einen digitalen Eingang des Arduinos eingelesen. Bei bedarf können diese noch mithilfe eines Filters geglättet werden. Danach erfolgt die Umrechnung der Frequenz in einen Volumenstrom in der Einheit l/min.

 : Zeitdifferenz während des Zählens der Impulse.
 : Anzahl der Pulse, die während der Zeitspanne gezählt wurden.
 : Pulsfrequenz pro l/min.

Möchte man nun das durchflossene Volumen bestimmen, ist die korrekte Möglichkeit das Integral des Volumenstroms über die Zeit zu bestimmen.

Vereinfacht kann man auch den jeweiligen Volumenstrom pro Zieteinheit aufsummieren. Dazu wird der Volumenstrom von l/min in ml/s umgerechnet und jede Sekunde aufsummiert. Dabei muss jedoch beachtet werden, dass so nur die Untersumme des Integrals gebildet wird.

Umwelteinflüsse auf die Messung

Die Messung hängt von der Viskosität ab, diese wird mit einem K-Faktor berücksichtigt. Dieser wird durch volumetrische Kalibrierung bestimmt. Da die Viskosität von Wasser temperaturabhängig ist, kann diese die Messung beeinflussen. Sie liegt bei Raumtemperatur (20 °C) bei 1 Pa*s und wird steigt mit sinkender Temperatur.

Hardwareaufbau

Datenblätter

Datenblatt des Sensors YF-S401
Datenblatt des Hallsensors TLE4905

Schaltung des Bauteils

Schaltplan und Steckplatine

Softwarearchitektur

Progammablaufplan des Auswerteprogramms

Die Software soll die Impulse des YF-S4021 zählen und in eine Frequenz umwandeln. mit dieser soll dann die der Volumenstrom berechnet werden. Um die Frequenz zu bestimmen, benötigt man einerseits die abgelaufene zeit und andererseits die Anzahl der Pulse in der Zeit. Die Ziet wird mit Hilfe der Bibliothek TimerOne bestimmt. Mit dieser kann relativ einfach ein Timerinterrupt erstellt werden, der zu einer gewünschten Zeit auslöst. Hier wurde eine Sekunde gewählt. Die Pulse werden ebenfalls über einen Interrupt gezählt.
Wenn der Timerinterrupt auslöst, wird als erstes der 1 s durch den Wert des Timers geteilt, da es im Programmablauf zu minimalen Differenzen kommt, die so ausgeglichen werden. Danach erfolgt die Berechnung des Durchflusses mit Hilfe der Formel .

Messabweichungen des Sensors

Systematische Messabweichungen

Messwete des Sensors mit den Vergleichswerten und Umrechnung in Volumenstrom

Laut Datenblatt ist der Fehler des Sensors bei 10%.Um die Messwertabweichung zu bestimmen, wird ein indirektes Verfahren Angewandt: Mit Hilfe einer Pumpe wird eine nahezu konstante Durchflussgeschwindigkeit erzeugt. Diese Pumpe wird über einen Schlauch mit dem Durchflusssensor verbunden. von diesem aus führt ein zweiter Schlauch in einem Messbecher, um so das Volumen zu bestimmen. Das insgesamt durchgeflossene Volumen wird berechnet in dem immer die Durchflussrate der letzten Sekunde aufaddiert wird. Die Vergleichsmessung erfolgt über einen Messbecher, der immer bis zu einem bestimmten Volumen gefüllt wird.hier wird der Messbecher immer mit 500 ml gefüllt, da das der größtmögliche Bereich war.

Die Absolute Messabweichung läst sich wie folgt berechnen:

 : Absolute Messabweichung
 : Gemessener Wert
 : Richtiger Wert

Daraus ergibt sich die Relative Messabweichung:

Fehler beim Parsen (Konvertierungsfehler. Der Server („cli“) hat berichtet: „[INVALID]“): {\displaystyle f_x = \frac{F}{x} \cdot 100% }

Diese lassen sich in der Tabelle ablesen. Sie korrelieren sehr gut mit dem angegeben Wert von 10%. Im nächsten Schritt wird nun die Systematische Messabweichung bestimmt:

 : Grenzabweichung
 : Messbereichsendwert

Mit einem Messbereichsendwert von 6 l/min und einer Grenzabweichung von 10% ergibt sich:

Zufällige Messabweichungen

In einem zweiten Schritt werden, die Volumenmesswerte in Einen Volumenstrom umgerechnet, um so so die zufälligen Messabweichungen zu bestimmen. Da es sich hier um eine sehr kleine Anzahl von Messwerten handelt, kann nur ein Schätzwert des Mittelwerts gebildet werden. Dieser Bestimmt sich folgendermaßen:

Fehler beim Parsen (Konvertierungsfehler. Der Server („cli“) hat berichtet: „[INVALID]“): {\displaystyle \bar \bar x = \frac{1}{n} \cdot \sum\limits_{k=1}^n x_k}

Daraus lässt sich dann die Standardabweichung des Schätzwerts berechnen:

Fehler beim Parsen (Konvertierungsfehler. Der Server („cli“) hat berichtet: „[INVALID]“): {\displaystyle \bar \sigma = \pm \sqrt{\frac{\sum\limits_{k=1}^n (x_k-\bar\bar x)^2}{n \cdot (n-1)}}}

Sie beträgt für diese Messwerte . Da es sich hierbei nur ein Schätzwert handelt, muss noch ein Korrekturfakor eingebracht werden.Der sogenante t-Faktor ist in der Norm DIN 1319 festegelet. Für die Anzahl von 25 Messwerten und einer Statistischen Sicherheit von 95% liegt er bei . So ergiebt sich eine Vertrauensgrenze von:

Messunsicherheit

Plot der Messwerte im Vergleich mit dem wahren Wert

Setzt man die zufällige Messabweichung und die systematische Messabweichung zusammen, erhält man die Messunsicherheit:

Damit ergibt sich für das Messergebnis des Versuchs:

Fehler beim Parsen (Konvertierungsfehler. Der Server („cli“) hat berichtet: „[INVALID]“): {\displaystyle \dot V = (0,642 \pm 0,6248) \frac{l}{min}; (t-Verteilung, S=95%, n=25)}

Bei diesem Sensor kann man also eine sehr große Messunsicherheit erkennen. Wenn man die vorherigen Berechnungen betrachtet, erkennt man, dass es sich hauptsächlich um systematische Fehler handelt. Das rührt einerseits daher, dass die Überprüften wahren Werte keinesfalls mit einer hohen Genauigkeit gemessen wurden. Dort können als auch schon eine Fehler entstanden sein. Des weiteren ist in dem Plot zu erkennen, dass die Messwerte fast immer unter dem wahren Wert sind. Das ist auf die Berechnung des Volumens zurückzuführen. Durch das Aufsummieren des Volumenstroms pro Sekunde berechnet man eigentlich die Untersumme des Integrals des Volumens und ist so immer etwas kleiner als der Messwert.









Bewertung des Sensors

Welche Fehler treten in welchem Verarbeitungsschritt auf?
Stellen Sie die Messunsicherheit bzw. das Vertrauensintervall dar.

Vorteile

Nachteile

Alternative

Zusammenfassung

Lernerfolg

YouTube Video

Schwierigkeitsgrad

Quellenverzeichnis


→ zurück zum Hauptartikel: ST WS2020