Wie messe ich den Füllstand eines Wassertanks mit einem Mikrocontroller?
Wie messe ich den Füllstand eines Wassertanks mit einem Mikrocontroller?
Antworten:
Angenommen, Sie arbeiten hier auf der Erde (im Gegensatz zur Umlaufbahn), können Sie einen Schwimmersensor verwenden, den Sie mit dem Mikro messen. Die Frage ist: Müssen Sie das genaue Niveau kennen oder brauchen Sie nur eine Art Ausflug, wenn es zu hoch / niedrig wird?
Beim Thema "Fahrt auf einer bestimmten Ebene" können Sie Schalter wie diesen erhalten. Im Allgemeinen enthält der Schwimmer eine Art Schalter zur Erfassung der Fluglage. Wenn der Wasserstand niedriger ist, landet der Schwimmer auf der Seite, und der Schalter ist ausgeschaltet, während das Anheben des Wasserstandes den Schwimmer nach oben und damit nach oben drückt. Diese werden häufig für Sumpfpumpen eingesetzt. Sie sind ziemlich zuverlässig und sehr einfach zu handhaben, obwohl Sie vorsichtig sein müssen, um sie richtig zu verankern, und Sie müssen sicher sein, dass dem Schwimmer nichts im Wege steht.
Wenn Sie das tatsächliche Niveau kennen müssen, haben Sie viele Möglichkeiten, aber es ist weniger einfach. Sie können mit so etwas wie einem Ultraschallsensor arbeiten (Ultraschallstrahl, der von oben auf den Tank schießt, um den Wasserstand zu reflektieren).
Diese Typen scheinen Füllstandsanzeigen für BIG-Panzer zu machen, die aus einem Schwimmer und einem zusammen verkabelten Außengewicht bestehen. Während der Schwimmer auf der Flüssigkeit auf und ab fährt, bewegt sich die externe Anzeige entsprechend. Sie könnten etwas Ähnliches bauen und nichts Komplizierteres als Fotozellen zum Ablesen des Levels verwenden (wenn es sich um einen großen Panzer handelt oder Sie viel Granularität wünschen, benötigen Sie viele Fotozellen).
Alternativ können Sie nach der Idee eines verkabelten Schwimmers ein Laufrad anbringen, das sich bewegt, wenn sich das Kabel bewegt, und dann einen Encoder daran anbringen. Dies würde es Ihnen ermöglichen, den Pegel mit ziemlich hoher Genauigkeit zu verfolgen.
Ich weiß, dass in dem in Kürze erschienenen Buch Practical Arduino ein Wassertank-Tiefensensor- Projekt enthalten ist, bei dem ein Differenzdrucksensor verwendet wird, um den Wasserdruck am Boden des Tanks zu messen und daraus zu berechnen, wie voll der Tank ist.
Die Schaltpläne befinden sich auf dem obigen Link, zusammen mit einem Link zum Quellcode auf Github.
(Vollständige Offenlegung: Ich habe keine Verbindung zu dem Buch, habe aber einige Male einen der Autoren in unseren lokalen Hackerspaces getroffen.)
Eine Methode, die ich mag, aber noch nicht ausprobiert habe, besteht darin, zwei isolierte Platten in die Flüssigkeit zu geben. Keine Konduktion, Elektrolyse, Kontanimation ... Sie bilden die Platten einer Kappe. und werden in einer Art Oszillator verwendet (die Wahl liegt bei Ihnen). Da Wasser eine gute Dialetrie ist, hängt die Frequenz stark von der Wassermenge zwischen den Platten ab. Messen Sie die Frequenz, um die Tiefe zu erhalten.
Möglicherweise können Sie ein ähnliches Ergebnis erzielen, indem Sie ein Wechselstromsignal anlegen und den Strom durch die Kappe messen.
Weitere Details würden helfen, aber ich denke, die Ultraschallmethode ist, konzeptionell gesehen, wahrscheinlich die einfachste (daher die Notwendigkeit weiterer Details: -]). Mit einem MaxSonar-Ultraschallwandler habe ich einen Füllstandsensor für den Heizöltank in meinem Keller zusammengeschmissen. Ich wechsele zu einem Parallax Ping-Sensor, sobald ich einen in die Hände bekommen kann. Die MaxSonar-Einheit hat sich als etwas schmerzhaft erwiesen. Es stellt sich heraus, dass es nur eine Auflösung von einem Zoll (2,54 cm) hat, was fast 7 Gallonen in meinem Tank entspricht. Ich habe die MaxSonar-Einheit in eine PVC-Kappe oben auf dem Tank gesteckt, die nach unten zeigt (außerhalb der Reichweite der Flüssigkeit).
Eine Möglichkeit, dies zu tun, besteht darin, eine LED am Boden des Tanks nach oben und eine Fotodiode am oberen Rand des Tanks zur LED hin anzuordnen. Die LED wird durch das Wasser im Tank gedämpft, Sie müssen experimentieren, um zu bestimmen, wie viel. Außerdem ist es am besten, eine Reihe schneller Messungen durchzuführen und diese mit dieser Methode zu mitteln.
Es gibt überraschend viele Möglichkeiten, den Füllstand zu überprüfen. Es gibt Sensoren, die HF verwenden, einen Impuls über einen Wellenleiter senden und die Reflexion von der Oberfläche der Flüssigkeit im Tank erfassen. Es gibt Ultraschall, Schwimmer, Sprudelröhren, Druckhähne ... Die verwendete Methode hängt von der Größe des Tanks, dem Inhalt, der Umgebung und anderen Faktoren ab.
Mich wundern all die komplizierten elektronischen Lösungen hier, ich würde ein einfaches Potentiometer verwenden. Die meisten Mikrocontroller verfügen über einen grundlegenden analogen I / P.
+V
-----
|
|
/
\
/<----------> to analog i/p
\
|
|
-----
GND
Verwenden Sie einen Standard-Wassertankventilschwimmer (möglicherweise ist bereits einer vorhanden). Das verbleibende Problem ist das Ankoppeln des Schwimmers an den Topf, um den maximalen Schwung zu erzielen (Sie können auch einen Schiebetopf verwenden).
|-|
| |
|o| <--------Slider pot.
|||
|||
|
| <--------Coupling.
|
____ |
(float)----------o-----o <--Anchor point of float.
----
Einfachster Ansatz
Platzieren Sie ein Röhrchen in einer Ecke des Tanks, deren Durchmesser etwas größer ist als der eines Ping-Pong-Balls.
Platzieren Sie eine Infrarot-LED auf einer Seite der Röhre und einen Fotowiderstand gegenüber der LED (indem Sie ein Loch in die Röhre bohren oder außen platzieren, falls diese transparent ist). Kleben Sie die elektrischen Teile heiß, um sie wasserdicht zu machen, und lassen Sie den Tischtennisball in die Röhre fallen.
Wenn sich der Wasserstand so weit erhöht oder verringert, dass der Ping-Pong-Ball den Infrarotstrahl unterbricht, wissen Sie, dass er den gewünschten Pegel erreicht. Dies funktioniert, wenn Sie nur eine diskrete Füllstandsanzeige (Ein / Aus) benötigen.
Dieses System wird auch in Paintball-Pistolen verwendet, um das Hacken von Kugeln zu verhindern, indem sichergestellt wird, dass sich die gesamte Kugel in der Schusskammer befindet, bevor der elektronische Abzug den Schussmagneten scharf schaltet.
Es ist einfach, effektiv und erfordert wenig oder keine Kalibrierung.
Meine zwei Cent: http://www.circuitstoday.com/simple-water-level-idicator
Ein klügerer Ansatz: Nutzen Sie die größere Wärmeleitfähigkeit des Wassers (der Flüssigkeit). Die Idee ist, einen Temperatursensor zu haben und die Differenz seiner Eigenerwärmung zu messen, wenn er untergetaucht ist und sich in freier Luft befindet.
Eine andere Lösung (kein Wortspiel beabsichtigt);
Verwenden Sie ein Potentiometer wie oben beschrieben. Der normale Drehbereich beträgt 270 Grad. Befestigen Sie einen Schwimmer mit einem Ausleger am Potentiometer. (Länge = 1 Einheit)
Zwischen voll und leer bewegt sich der Auslegerarm um 90 Grad.
Der ADC auf einem PIC besteht entweder aus 256 oder 1024 Schritten (ja, Null ist ein Schritt).
Ich werde der Klarheit halber 256 Schritte verwenden.
270 Grad = 256 ADC-Schritte. 270/90 = 3 (ein Drittel des Potentiometerbereichs)
255/3 = 85 ADC-Schritte
Programmieren Sie einen Code, um den 0-Grad-Punkt (Tank leer) zu markieren, wenn eine Taste gedrückt wird.
Dadurch wird ein Versatzpunkt im PIC-EEPROM gespeichert. Jetzt muss das Potentiometer nicht mehr exakt auf Null stehen, da dieser Kalibrierpunkt eingestellt werden kann.
Berechnen Sie mithilfe der Trigometrie eine Nachschlagetabelle (Hinweis: PHP-Skript), die jedem Schritt des ADC entspricht.
Hinweis: Jeder ADC-Schritt entspricht 90/85 = 1,0588 Grad.
Ja, Sie hätten im Mathematikunterricht mehr Aufmerksamkeit schenken sollen. dumme Zeitverschwendung damals, jetzt unverzichtbar. das Gehirn einschalten. Trigonometrie lernen. andere unterrichten.
Akronym: Der alte Araber trug einen schweren Sack Heu.
Die Hypontenuse ist die Länge des Auslegerarms. Machen Sie es 1 Einheit lang. Die Nachschlagetabelle gibt dann den Prozentsatz der Tanktiefe an. (natürlich mit 100 multiplizieren)
Bitte überprüfen Sie den folgenden Link:
http://www.edgefxkits.com/contactless-liquid-level-controller
Ich denke, es könnte nützlich für Sie sein.