kapazitive Füllstandsmessung mir variabler Tankhöhe

OP #2694338
Guten Tag,
ich habe mir eine Schaltung entwickelt, mit der ich den Füllstand eines 
Flüssigkeitstanks in einem Wohnmobil oder auch anderen Fahrzeug messen 
möchte. Vornehmlich geht es dabei um den Frischwassertank in meinem 
Wohnmobil.
Es handelt sich hierbei um eine kapazitive Messschaltung, die schon für 
sehr flache Tanks funktionieren soll. So ab 10cm Tankhöhe. Das ganze 
wird von einem AtMega8 gemessen. Nachdem ich nun gerade so geschafft hab 
die Auflösung bei der geringen Höhe annehmbar hin zu bekommen habe ich 
nun das nächste Problem.

Ich habe noch weitere Tanks im Wohnmobil und möchte den Sensor nicht 
jedesmal neu kontruieren. Ich habe  an den ADC Eingang ein Poti 
angeschlossen mit dem ich die Tankhöhe einstellen will. Nun bin ich mir 
nicht sicher, wie ich das in der Formel für die Ausgabe verpacken soll.

Wenn das Poti vom ADC in 10bit auflöst und ich nur die oberen 8bit 
nutze, dann muss ich dann für jeden der 256 Werte eine eigene Tabelle 
anlegen.
Also Messbereich von 10cm bis 2m oder so...

Wie erstelle ich die Tabelle am geschicktesten?

Vielen Dank im Vorraus
Dennis
OP
Hmmm, wäre möglich, aber wieviele Jumperblöcke bräuchte ich wohl, wenn 
ich eine Tankhöhe zwischen 10cm und 2m einstellen möchte?
Da ist der Teil mit den Jumperblöcken ja größer als meine ganze 
Schaltung.

Bei einem BCD Codierschalter bin ich auf 16 Stufen zwischen Min und Max 
Wert eingeschränkt, das erscheint mir doch etwas wenig.
Dennis Kaufmann schrieb:
> Hmmm, wäre möglich, aber wieviele Jumperblöcke bräuchte ich wohl, wenn
> ich eine Tankhöhe zwischen 10cm und 2m einstellen möchte?

Überlege mal, pro Jumper hast du 2 Möglichkeiten, bei 2 also 2 * 2, bei 
3 2* 2 * 2, ... nennt sich binäres Zahlensystem :-)
Das gleiche mit BCD Codierschaltern, einer hat 16, 2 haben ...
Gast
Da wuerde ich gleich eine Art Kalibrierung vorsehen.
Also einen jumper fuer jeden Kanal.

Ablauf:
Tank 1 ganz leer
Jumper fuer Kanal 1 auf Lernen stecken
Programm merkt sich den Wert fuer leer
Tank 1 ganz fuellen
Jumper fuer Kanal 1 auf normal stecken
Programm merkt sich den Wert fuer voll

Weiter so fuer die anderen Tanks.

Wenn Du Tasten mit einem Menu zur Verfuegung hast, geht das natuerlich 
noch viel eleganter.

fonsana
Dennis Kaufmann schrieb:
> Jetzt ist dies allerdings ja garnicht mein Problem, sondern eher das,
> wie ich von der eingestellten Tankhöhe über den Messwert zu meinem
> Ausgang komme.

Im einfachsten Fall eine lineare Gleichung:  Y = a + b * x

Jetzt brauchst du nur noch a und b zu bestimmen.
Das machst du einmal fuer den leeren Tank und einmal fuer den vollen 
Tank.
Damit hast du 2 Bestimmungsgleichungen fuer die 2 Unbekannten.
Und fertig ist die Kalibrieung.
Gast
HuJk schrieb:
> Damit ist noch nicht erklärt, wie ich die Wassermenge in Abhängigkeit
> von der Füllhöhe einer Kugel berechne.

Hallo,
vor ca. 13 Jahren habe ich das für einen (Öl) Tank mit Zylinderbauform 
berechnet. Die Stirnwand kann als ebene Platte, Halbkugel oder Ellipse 
geformt sein. Letzteres ist häufig anzutreffen.
Von Jumo gab (gibt es noch?) es einen Transmitter welcher diese Formel 
implementiert hatte, Parameter zur Eingabe r, l, etc., Eingangssignal 
die Füllstandshöhe (für Weg- oder Abstandssensor).
Angehängte Dateien:
OP
Helmut Lenzen schrieb:
> Jetzt brauchst du nur noch a und b zu bestimmen.
> Das machst du einmal fuer den leeren Tank und einmal fuer den vollen
> Tank.
> Damit hast du 2 Bestimmungsgleichungen fuer die 2 Unbekannten.
> Und fertig ist die Kalibrieung.


Das klingt soweit schon mal ganz gut.
Jetzt wollte ich das ganze ja aber dem Sensor über das Poti mitteilen.
Wenn ich das jetzt auf 1m Tankhöhe einstelle, dann müsste er den Wert 
für leer und voll ja schon parat haben...
Oder?
Dennis Kaufmann schrieb:
> Jetzt wollte ich das ganze ja aber dem Sensor über das Poti mitteilen.
> Wenn ich das jetzt auf 1m Tankhöhe einstelle, dann müsste er den Wert
> für leer und voll ja schon parat haben...

Noe. Du hast doch eine Messkette. Also einmal dein kapazitiver Sensor. 
Wieviel pF der bei leeren und vollen Tank macht weist du doch nicht. 
Dann dein Oszillator, wie genau der ist weist du auch nicht. Also must 
du einmal die Frequenz bei leeren und einmal bei vollen Tank kennen. Den 
Volumeninhalt weist du ja (0l und xxl). Erst dann kannst du a und b 
ausrechnen.
Vorraussetzung ist natuerlich ein linearer Zusammenhang zwischen 
Frequenz und Volumen.
OP
Also eigentlich weiß ich die Kapazität bei leerem und vollem Tank schon. 
Ich habe verschiedene Messungen mit einem Kapazitätsmesser an den 
Elektroden durchgeführt und dabei auch verschiedene Längen der 
Elektroden ausprobiert.
Wie zu erwarten gibt es dort einen linearen Zusammenhang.
Ich weiß also den den min und max Wert, der auftreten kann.
Die Frequenz ändert sich ja nicht bei meiner Messung. Die wird über den 
µC
fest vorgegeben. Lediglich das Das Pulsbreitenverhältnis ist ein 
anderes.

Vielleicht nochmal etwas genauer der Aufbau.
Ich lade einen Kondensator über einen 0,1%igen Widerstand. Das ganze 
lasse ich dann über den Analog Comparator abtasten. Wenn die Kondensator 
Spannung den Schwellwert überschreitet, schaltet der ACOja auf High.
Ich frage den Ausgang zyklisch ab und addiere die High Zustände.
Haben die High Zustände ein gewisses Verhältnis höre ich auf (zwecks 
Fehlerbeseitigung) zu zählen und beginne mit der Auswertung.
Über das Poti soll nun in die Auswertung mit eingefasst werden wie hoch 
der Tank ist, da ja unterschiedliche Kapazitäten zu einem von der 
Tankhöhe abhängigen Füllstand führen. Jetzt ist eben nur die Frage, wie 
ich diesen am besten berücksichtige...
Dennis Kaufmann schrieb:
> Lediglich das Das Pulsbreitenverhältnis ist ein
> anderes.

Ob Frequenz oder Pulsbreitenverhaeltnis ist bei der Messung eigentlich 
egal.

Dennis Kaufmann schrieb:
> Über das Poti soll nun in die Auswertung mit eingefasst werden wie hoch
> der Tank ist, da ja unterschiedliche Kapazitäten zu einem von der
> Tankhöhe abhängigen Füllstand führen.

Und was soll jetzt das Poti da bewirken? Du kannst doch nicht mit einem 
Poti einen Wert exakt einstellen. Versuch doch mal einfach durch drehen 
am Poti ohne Messung/Feedback einen Wert exakt einzustellen. Also ich 
kanns nicht. Warum machst du dann nicht da ein Drehgeber dran und ein 
kleines Display zum Feedback. Oder 2 Tasten rauf, runter. Auf jedenfall 
must du zur Kontrolle da ein Display dran haben.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.