Hallo zusammen, nachdem ich schon viel in diesem Forum gelesen und auch einige hilfreiche Tips bekommen habe möchte ich jetzt die Chance nutzen etwas zurück zu geben und mein erstelltes Projekt mit Euch teilen. Vielleicht hilft der ein oder andere Codeschnippsel sogar jemanden. Nachbauten des ganzen sind natürlich auch immer willkommen ;o). Das ganze Projekt sollte eine Tankanzeige sowohl für Wasser als auch Heizöltanks werden. Visualisiert wird das ganze auf einem Nokia Display. Entwickelt und programmiert wurde das ganze mit der CoIDE von Coocox. Unter zu Hilfe nahme eines NE555 wird eine Frequenz erzeugt die abhängig von der Kapazität des Sensors ist. Die so auftretenden Frequenzen werden mit dem Mikrocontroller gemesssen und in einen Füllstand umgerechnet. Zum testen des ganzen habe ich einfach eine 40mc lange Doppelader genommen, die ich am Ende mittels Heißkleber vor der Flüssigkeit isoliert habe. An dem Pinheader Button kann, wie der Name schon sagt ein Knopf angeschlossen werden. Mit diesem kann über einen langen Knopfdruck (>2000ms) in das Kalibrationsmenü gewechselt werden. Dort können für den leeren und vollen Tank die Freqeunzen ermittelt und im Flash gespeichert werden. Auch die Tankgröße kann dort eingestellt werden. Mit diesen Informationen wird dann bei der Messung der Füllstand bestimmt und die Restmenge der Flüssigkeit auf dem Display ausgegeben. Die Platine für die Tankanzeige wurde nach Fertigstellung von Elecrow gefertigt. Bei der ersten Inbetriebnahme habe ich dann noch einen Fehler gefunden. Warum auch immer habe ich R1 (Boot0) an VCC und nicht GND gehangen. So lief der Controller natürlich nicht mit dem Programm vom Flash los. Das ganze wurde mit einer kleinen Drahtbrücke auf der Platine repariert. Den Fehler in dem angehängten Plan sowie in den Boardfiles habe ich schon korrigiert. Auch sind meine 5Volt Spannungsregler im DPAK Gehäuse noch nicht gekommen, aus diesem Grund ist dort noch einer im TO220 Gehäuse verbaut. Jetzt muss ich mich die Tage nur noch daran machen ein kleines Gehäuse für das Projekt zu fertigen. Kritik, Anregungen und Verbesserungsvorschläge sind sehr gerne willkommen. Gruß, Markus
Über die Kapazitive Messung wurde schon viel geschrieben. Es scheint ein Problem mit dem diffundieren von Wasser in die Isolation zu geben. Da muss man mit den verwendeten Materialien höllisch aufpassen. Siehe: Beitrag "[V] Bausatz für Giess-o-mat Sensor"
Die Schaltung hat meines Erachtens leider den Nachteil, dass der 555 bei Temperaturänderungen driftet. Ich habe mal so etwas ähnliches gebaut und einen 556 (doppelter Timer) genommen. Der zweite Timer lief mit einer festen Frequenz. In der Software wurde die Kapazitätsänderung zur Driftkompensation benutzt. Max
An einen möglichen Temperaturdrift habe ich noch garnicht gedacht. Das werde ich auf jeden Fall mal untersuchen. In diesem Fall gebe ich dir natürlich recht ein zweiter Timer mit fester Freqeunz um darüber den Drift kompensieren zu können ist natürlich eine gute Möglichkeit. Mal schauen ob ich dem ganzen nochmal ein Facelift verpasse oder mit dem auftretendem Drift leben kann. Unter der Maßgabe der Möglichkeit den STM32F030F4P6 auch als STM32F031F6P6 zu verwenden wäre dann über den TIM2 ein weiterer external Counter verfügbar um so eine Kompensation zu betreiben.
Man könnte auch einfach den NE555 weglassen und den Oszillator per uC aufbauen. Z.B. könnte man mittels Meßbrücke und Geberfrequenz vom uC die Messung machen.
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.