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
Dennis Kaufmann schrieb: > Ich habe an den ADC Eingang ein Poti > angeschlossen mit dem ich die Tankhöhe einstellen will. Ich gehe davon aus, daß du diese Höhe für Berechnungen brauchst. Dann ist ein Poti doch ziemlich suboptimal. Warum liest du das nicht digital über einen Jumperblock oder BCD Codierschalter ein?
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 ...
Ich möchte nicht ausschließlich entweder 10cm oder 2m Tankhöhe messen, sondern wie oben beschrieben auch Tankhöhen, die dazwischen liegen...
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
Ok, ok.... überzeugt. 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.
Dennis Kaufmann schrieb: > Hmmm, wäre möglich, aber wieviele Jumperblöcke bräuchte ich wohl, für jeden Sensor genau 1 oder 2 EEPROM Bytes. Gruß Anja
Gibt es auch kugelförmige Tanks? Nach welcher Formel errechnest Du dabei die Wassermenge, wenn Du nur den Wasserstand kennst?
Das ganze ist erstmal nur für Tanks in Form eines Quaders. Mit einer Kugel müsste es aber gehen, wenn man auch über eine Tabelle jedem Messwert eine feste Ausgangsgröße zuweist. Mit Hilfe der Kugelformel http://www.walter-fendt.de/m14d/kugelvolumen.htm kann man ja dann das ganze in Relation setzen.
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.
Dennis Kaufmann schrieb: > Mit Hilfe der Kugelformel > http://www.walter-fendt.de/m14d/kugelvolumen.htm > kann man ja dann das ganze in Relation setzen. Damit ist noch nicht erklärt, wie ich die Wassermenge in Abhängigkeit von der Füllhöhe einer Kugel berechne.
Guckst Du hier: http://www.wer-weiss-was.de/theme50/article4571427.html Allerdings wird das fuer einen AVR sicher schwierig. (Kubikwurzel) fonsana
fonsana schrieb: > Allerdings wird das fuer einen AVR sicher schwierig. (Kubikwurzel) Warum? Willst du pro Sekunden 1 Million mal das Volumen ausrechnen? Der uC hat doch Zeit ohne Ende dafuer.
Probier es. Ich wuerde wahrscheinlich eine Tabelle verwenden. fonsana
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).
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.