Füllstandssonde auslesen

Hallo.

Ich brauche mal wieder Hilfe.
Ich habe mir eine Cabotron Füllstandssonde geholt, um den Füllstand meines Wassertanks abzufragen. Diese Sonde besteht aus 4 unterschiedlich langen Metallstäben plus einem der so lang ist wie der längste. Oben kommen dann die 5 Kabel raus.
Hat sowas schon mal jemand mit einem Arduino ausgelesen? Ich bin da jetzt leider total Planlos.
Eigentlich wir da 12v drauf gegeben. Würde das auch mit 5v gehen?

Mein Gedankengang wäre 5v auf den langen Stab zu geben und die anderen 4 an jeweils einen analogen Eingang zu stecken. Da wo Strom reinkommt ist Wasser, das den Strom leitet. Soweit korrekt? Müssen da noch Widerstände dazwischen? Eigentlich nicht, wenn man es bei 5v belässt, oder?

Viele Grüße
HeAdLeSs

Das Problem Deines Verfahrens ist die Elektrolyse. Wenn ein Strom fließt, wandern Metallionen ins Wasser. Das ist weder fürs Wasser, noch für die Elektroden gut.

Ich hoffe, dass es kein Trinkwasser ist.

Gruß Tommy

Hallo,

Du kannst den längsten an +5V und die anderen jeweils an ein analog Eingang legen.

Oder den längsten an +5V und dazwischen Widerstände, wo im Programm dann die jeweilige Spannung einem Wasserstand zugewiesen wird. Somit braucht es dann nur noch einen analogen Eingang.

HeAdLeSs:
....Würde das auch mit 5v gehen?....

Um die von Tommy genannte Elektrolyse zu verhindern, solltest du Wechselspannung verwenden.
Dafür gibt es spezielle ICs, die eine entsprechende Spannung erzeugen und auswerten und ein digitales Signal ausgeben.
Z.B. LM1830

Etwas abmildern ließe sich der Effekt der Elektrolyse auch durch Schalten der 5V Spannung für den langen Stab durch einen Digitalausgang des Arduinos.
Also Ausgang auf HIGH schalten, messen, Ausgang auf LOW schalten.
Wenn dann noch recht selten gemessen werden muss wird kaum eine elektrolytische Zersetzung statt finden.

Gruß Peter

Sorry, hätte ich mit erwähnen sollen, es sollen nur 2 messungen am Tag erfolgen. Und evtl bei Bedarf. Also max. 2-4 messungen am Tag. Es soll nicht dauerhaft unter Strom stehen.
Also so wie Peter es gesagt hat.

Es handelt sich nicht um Trinkwasser. Reines Brauchwasser.

Das mit den Widerständen in Reihe klingt noch interessant. Welche Widerstände müsste ich da am besten nehmen?

Oder wie schon tausendmal im Forum erwähnt:
Per kapazitiver Feuchtemessung:

So, zurück zu dieser Baustelle. Ja, da bin ich noch immer nicht weiter. Bzw. habe mich jetzt doch nicht getraut den Sensor mit Gleichstrom rein zu hängen.

Zwischenzeitlich hatte ich ein anderes Projekt, bei dem ich einen kapazitiven Schalter verwendet habe. Bin ja schon ein bisschen begeistert jetzt von Kapazität.
ABER... es gibt dann für dieses Projekt doch noch ein paar Sachen.

Der Wassertank ist verbaut und ich kann ihn nicht mal eben rausnehmen um das mit dem kapazitiven Sensor rumzutesten. Ich brauche einen Plan und der muss funktionieren.

Mein Plan, bis jetzt: Ein Kupferklebeband von außen an den Tank kleben. (Diese Lösung ist dafür geeignet, denke ich: GitHub - PaulStoffregen/CapacitiveSensor: Detect touch or proximity by capacitve sensing). Dann mit den richtigen Widerständen an einen Arduino anschließen. Soweit.
Fragen:

Macht die größe des Kupferbandes einen Unterschied? Es gibt die ja in unterschiedlichen Größen (0,5cm - 5cm??). Ich habe hier noch ein bisschen was mit 5mm rumliegen. Sollte ich lieber breiteres Bestellen? Der Wassertank hat eine Wandstärke von ca. 5mm.

Und wie kriege ich raus welche Widerstände ich nehmen muss damit bei leerem Tank ein Wert von 0 und bei vollem Tank ein Wert von ca. 1000-1024 raus kommt? (Das ist für mich Rocket science) ... Kupferband an den Tank kleben... und dann, mit dem Multimeter, ? bei vollem und bei leerem Tank messen. Und wie kriege ich aus dem Wert dann den Widerstandswert raus?

Da habe ich Null Ahnung von. Brauche noch mal eure Hilfe.

Hi,

die Links hast Du verfolgt? Du wirst dich nur experimentell an Deine benötigten Werte nähern können.
https://playground.arduino.cc/Main/CapacitiveSensor

Ich habe mich in letzter Zeit mit dem messen von Kondensatoren beschäftigt, dafür habe ich diesen Link als Ausgangsbasis benutzt: https://www.arduino.cc/en/Tutorial/CapacitanceMeter

Gruß André

Hi

Das Kupferband und der Inhalt des Wassertank bilden einen (einstellbaren) Kondensator.
Je breiter das Kupferband, desto 'fetter' wird dieser Kondensator.
Wenn Du zwei Kupferbänder nebeneinander verklebst (elektrisch verbunden, dürfte reichen, wenn nur oben ein Draht an alle Streifen geht) erhöht sich ebenfalls der Wert des Kondensator.
Mir ist noch nicht ganz klar, wie lange das Kupfer-Band in der Erde halten kann bzw. was für Seiteneffekte das Weggammeln des Bandes hat - neben der Verringerung der Kapazität.

Ok, gehen wir davon aus, Du hast das Kupferband aufgeklebt - dann kannst Du damit einen Schwingkreis aufbauen - z.B. mit einem NE555.
Die Periodendauer ist abhängig vom Ent-/Ladewiderstand und des Kondensator - den Widerstand gibst Du vor, der Kondensator ergibt sich aus der Füllhöhe.
Jetzt musst Du 'nur' mit dem Arduino mitzählen, wie schnell dieser Schwingkreis schwingt.
Bei vollem Tank langsamer, als bei Leerem!
Diese beiden Grenzwerte kannst Du dann auch noch auf 0...1023 aufblasen, wenn gewünscht.
Für eine Balkenanzeige mit x LEDs würde ich Das einfach per anzahl_LED=MAP (messwert,minwert,maxwert,1,x) erschlagen - je nach Füllhöhe leuchten entsprechend viele LEDs.

Der NE555 bzw. der ganze Aufbau wird auf die Umwelt reagieren, also wohl unterschiedliche Werte bei z.B. unterschiedlicher Temperatur bringen.

Eine weitere Möglichkeit ist, einen Drucksensor den Druck auf dem Boden des Behälter messen zu lassen - dazu wird eine Glocke (unten offen) mit Luft befüllt - Diese perlt aus, wenn die Glocke voll Luft ist.
In dieser Luftleitung misst man den Druck - Dieser ist proportional zur 'stehenden Wassersäule' ... also der Wasserhöhe.
Hier wird für die Messung eine mit Luft gefüllte Glocke benötigt.
Man kann diesen Drucksensor aber auch selber, wasserdicht verpackt, im Tank versenken ... Möglich ist Da viel.

MfG

@SpaghettiCode
Ja, den Links bin ich gefolgt. Aber so ganz werde ich daraus nicht schlau. Besonders was die größe der Widerstände angeht.

@postmaster-ino
Das klingt toll... aber ich verstehe nur Bahnhof. Wieso muss ich den NE555 mit einbauen? In dem Link von mir (im letzten Post) hat er das Kupferband mit 2 Widerständen direkt an den Arduino angeschlossen.

Achso, vergessen zu schreiben. Der Wassertank ist innen (Wohnmobil). Er ist keinen Umweltbedingungen ausgesetzt. Nur Temperaturunterschieden. Ich brauche nur die Werte. Keine LED Anzeige. Die Werte werden auf einem Monitor ausgegeben bzw. grafisch Dargestellt. Es muss auch nicht auf den MM genau sein. Ein (nicht zu) grober Überblick reicht mir.

Die Methode mit der Luft/Druck habe ich auch schon gesehen. Ist mir aber zu viel Aufwand und ich möchte im Tank nichts verändern/kleben/etc.

Es wäre toll wenn ihr mir 'Idiotensicher' helfen könntet. Also mit so wenig Fachchinesisch wie möglich. :slight_smile:

Wie gesagt ist der Tank eingebaut (und in dauerhafter benutzung). Es ist ein 200 Liter Tank. Ich könnte ihn mal leer machen und dann wieder auffüllen. Aber leer, voll, leer, voll... das ist schlecht. Sollte beim ersten mal alle Werte kriegen.
Ich hatte mal irgendwo gesehen das soetwas mal jemand gemacht hat. Im leeren Zustand das Multimeter ran gehalten und ... irgendwas gemessen. Ohm? Volt? Ich weiß es nicht. Und dann voll gemacht und wieder gemessen. Und daraus dann die passenden Widerstände errechnet. Kann das sein? Ich weiß es nicht mehr genau und finde das Video nicht mehr.

Ich habe mir jetzt 50mm Kupferband bestellt. Das klebe ich von außen auf den Tank.

Hi,

was Arduino betrifft, also C-Code kann ich Dir nicht helfen, da bin ich ein Noob, deshalb auch mein Nick. Deshalb kann ich Dir auch nicht sagen was genau dieser Code für den Sensor macht.
Aber ich kann Dir sagen, daß bei dem Sensor ein Kondensator gemessen wird, also die Metallfolie stellt die ein Kondensatorplatte dar, “Du” bist die andere Kondensatorplatte, die mehr oder weniger geerdet ist.
Einen Kondensator misst man entweder über die Auf- bzw. Entladezeit über einen Widerstand, daraus ergibt sich dann die Zeitkonstante Tau (T=R*C), und der Kondensator lässt sich bestimmen. Die andere Variante ist, man baut einen Schwingkreis auf, und je nach sich ergebender Frequenz lässt sich der Kondensator bestimmen.
Wenn Du jetzt an Deinen Wassertank einen breiten Metallstreifen vertikal anklebst, ergibt sich mit dem Wasser ein veränderlicher Kondensator, leerer Tank klein, voller Tank groß, das Wasser ist die 2. Kondensatorplatte. Das wird ausgewertet.
Meine Vermutung (da ich den Code nicht deuten kann), der Kondensator wird über die Zeitkonstante (Variante 1) bestimmt, Du erhällst also eine Zeit zurück. Kleiner Kondensator, kurze Zeit, großer Kondensator längere Zeit. Deshalb hatte ich Dir den 2. Link geschickt.
Da der Widerstand direkt in die Rechnung mit einfließt, bestimmt er die Messzeit Tau, und Tau muss groß genug sein, um überhaupt gemessen werden zu können. Also wie schon in den anderen Links erwähnt, wird ein Wert von 1-10MOhm zu verwertbaren Ergebnissen führen.

Gruß André

Hi

Der Kondensator wird nur eine sehr kleine Kapazität aufweisen - auch bei vollem Tank.
Deshalb ist der Widerstand recht groß, damit sich daraus eine brauchbare Periodendauer ergibt.
Der Widerstand ist unkritisch, genau so, wie der eigentliche Wert des 'Tank-Kondensator'.

Du kannst mit dem Arduino natürlich auch Kondensatoren ausmessen - müsste man sich Mal schlau machen.
Der Umweg über einen AMV (astabiler Multivibrator), per 4093 (Quad 2x Schmitt-Nand), Operationsverstärker, NE555, ... wird Da wohl noch dutzende Möglichkeiten geben - ergibt Dir eine Frequenz proportional zum Kondensator.
Hier erfasst Du die Maximal-Werte, also leerer Tank und voller Tank, gehst 10% davon weg und die restlichen 80% sind Deine Messwerte. Also 0...10% wären leer, 90...100% wären voll. Dazwischen ein Zwischenstand, sofern von Interesse.
Wenn die Frequenz zu hoch/zu tief ist, wird der Widerstand angepasst.
Wenn zu hoch, kannst Du auch zusätzliche Kupferfolie auftragen - muß nur elektrisch mit der bereits verbauten Folie verbunden werden.
Im Umkehrschluß kannst Du auch die Kupferfolie 'ausdünnen', wenn die Frequenz zu gering ist, damit die Kapazität geringer wird und so die Frequenz wieder ansteigt.
Alles aber unglaublich aufwändiger, als den Widerstand auszutauschen/anzupassen.

Selber werde ich wohl über einen US-Sensor von Oben messen, wie weit der Wasserspiegel weg ist.
Ob das Außen auch so geht, wird sich zeigen - aber hier führen viele Wege nach Rom.

MfG