Füllstand eines Wassertanks mit einem Mikrocontroller


24

Wie messe ich den Füllstand eines Wassertanks mit einem Mikrocontroller?


1
Dies ist keine Antwort wert, aber ein Freund von mir hat dies vor ein paar Jahren für ein Kunstprojekt getan. Jeder, der interessiert ist, würde sich freuen, Sie vorzustellen, und ich bin sicher, er würde sich freuen, zu erklären, wie er es getan hat. Sein Projekt ist hier zu Ende: unixarts.com/sealevel.html Dies kombinierte beide Pumpen und die Sensoren und erforderte eine ausreichende Genauigkeit, um ohne zu großen
Zeitversatz

7
Wenn der Mikrocontroller nicht mehr funktioniert, ist er unter Wasser.
John U

Antworten:


23

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.


15

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.)


11

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.


Beachten Sie, dass dies in hohem Maße von der Dielektrizitätskonstante der Flüssigkeit abhängt. Wenn ich mich nicht irre, wird die kapazitive Abtastung eher zur Erkennung von An- / Abwesenheit als zur Erkennung des Pegels verwendet. Es scheint jedoch so gut wie jede Methode, die ich durchlaufen habe, von der spezifischen Dichte abhängig zu sein. Tanks mit Flüssigkeiten unterschiedlicher Zusammensetzung sind schwer zu regulieren.
Wackyvorlon

Die kapazitiven Füllstandsensoren erfassen am besten das Vorhandensein oder Nichtvorhandensein von Flüssigkeit. Um den Wasserstand abzulesen, laden / entladen Sie die Platten mit einem festen Widerstand und messen Sie die Zeit. Wie oben erwähnt, kann das Hinzufügen von Verunreinigungen zum Wasser (wie Salz) zu einer drastischen Änderung der Kapazität und damit zu einem Ablesen eines festen Flüssigkeitsstandes führen. Wenn die zu messende Flüssigkeit homogen ist, ist dies weniger problematisch.
mjh2007

Ich habe einen Dynatron-Oszillator mit einer einfachen SMD-Spule von der Stange hergestellt, die mit isolierten Platten wie russ postulated in Resonanz geriet.
Autistic

10

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).


7

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.


1
scheint sehr anfällig für Fehler, Umgebungslicht, Schwappen, etc.
Jason S

7

Ich verwende einen billigen Bolzensensor aus dem örtlichen Baumarkt mit einem Fototransistor, um die LED-Anzeige zu erfassen. Mit diesem an der Seite des Tanks aufgeklebten Symbol erkennt es, wann der Füllstand über den Sensor steigt, und weist uns auf einen hohen Wasserstand hin.


6

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.


4

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

Wie stellen Sie sicher, dass der Topf wieder in seine ursprüngliche Position zurückkehrt?

Das Gewicht des Schwimmers wird es nach unten ziehen, wenn der Wasserstand fällt ...
ttt

Da bin ich mir nicht so sicher. Das richtige Gewicht des Schwimmers so zu finden, dass er in Gegenwart von Wasser schwimmt und den Topf in Abwesenheit von Wasser fallen lässt, ist nicht so einfach. Die meisten Töpfe haben eine relativ hohe Haftreibung. Ich denke, es ist jedoch möglich, die richtige mechanische Einstellung vorausgesetzt.

Viele der längeren Slider-Potis weisen eine sehr geringe Reibung auf (verwendet in Mixern mit Fingerspitzensteuerung und DJ-Decks). Ich habe einen 4 "-Schieber aus meiner Bits-Box verwendet und ihn mit einem normalen Wassertank-Schwimmer getestet. Er funktionierte sogar mit einem kleineren Toilettenspülkasten-Schwimmer! Übrigens, ich würde einen festen Widerstand in Serie mit dem Topf verwenden, selbst wenn es so wäre Kurzschlüsse in feuchter Umgebung übersteigen nicht die Leistung eines Controller-Ports (oder ziehen zu viel Strom von einem festen Vref). Ich habe in meinem
ttt

Beim Testen habe ich nur ein Stück gebogenes Kabel verwendet, um am Schwimmerarm zu rasten. In der Toilettenspüle ist der Arm aus Kunststoff mit quadratischem Querschnitt, so dass es wirklich einfach wäre, ein kleines Loch zu bohren, um den Aufsatz herzustellen.
TTT

4

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.



1

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.


Dies wurde tatsächlich in CHCH NewZealand gemacht, wo ich bin, aber ich habe es nicht getan, ich glaube, es ist ungefähr 20 Jahre alt. Es gab eine Reihe von vielen Thermistern an der Außenseite des Tanks.
Autistic

1

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)


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.