Archiv verlassen und diese Seite im Standarddesign anzeigen : Messung Wasserstand über Sichtfenster mit Liniensensor ?
Sheridan
17.02.2009, 21:42
Hallo Elektronik-Experten,
im Thread https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=247080#247080 habe ich mit einem Shard-Infrarotsensor den Wasserstand einer Kaffemaschine gemessen.
Das für mich sehr spannende Projekt wurde auch fertig und lief in etwa 2 Wochen, aber es stellte sich heraus, dass der Sharp Infrarotsensor wegen des Kurvenverlaufs Abstand/Spannung nicht optimal war.
Nun möchte ich das Projekt wieder aufgreifen und diesmal das Sichtfenster des Wasserbehälters zur Wasserstandsmessung heranziehen.
Wie im Foto erkennbar, markiert ein roter Lichtstrahl den Wasserpegel.
Unterhalb des Wasserbehälters ist eine rote LED die durch die Reflektion den aktuellen Wasserstand markiert.
Ist ein Liniensensor für diese Art von Messung geeignet? Welche Sensorarten kämen für die Messungen des roten Lichtes (gegenfalls auch der hell/dunkel Unterschied) im Sichtfenster noch in Frage?
https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=2244
Vielen Dank und
LG
Georg
i_make_it
18.02.2009, 08:22
Eine Scannerzeile von einem Flachbettscanner würde gehen.
Eventuell noch eine rote Scheibe/Folie um andersfarbenes Störlicht zu eliminieren.
Eine Webcamm ggf. auch mit Farbfilter und ein Linienerkkennungsalgorithmus.
Eine Reihe von Fotodioden/Fototransistoren ggf. gegen seitliches Streulicht per Tubus abgeschirmt. Das ist eigentlich das selbe wie die Scannerzeile nur mit geringerer Auflösung und im Selbstbau.
Sheridan
18.02.2009, 12:21
Hallo i_make_it,
vielen Dank für deine Antwort.
Eine Reihe von Fotodioden/Fototransistoren ggf. gegen seitliches Streulicht per Tubus abgeschirmt. Das ist eigentlich das selbe wie die Scannerzeile nur mit geringerer Auflösung und im Selbstbau.
Die (selbstgebaute) Fotodioden-Variante gefällt mir persönlich am Besten, die Auflösung ist nicht so dramatisch, da genügt 0,5 oder 1 cm und die Bauhöhe kann ich selber bestimmen.
Gibt es dazu Schaltpläne oder Stichwörter nach denen ich suchen kann?
Vielen Dank und
LG
Georg
i_make_it
18.02.2009, 13:42
Die einfachste Schaltung ist wohl je Photodiode/-transistor einen Digitalen Eingang zu verwenden.
Damit hat mann allerdings auch schon eine Scannerzeile, die belibige Bitmuster darstellen kann und eine Verschwendung von IOs.
Nächste Variante ist ein Schieberegister als parallel/seriel Wandler.
Ein 8bit Schieberegister liest parallel die Signale von 8 Photodioden/-transistoren ein und gibt auf einem IO Seriel ein byte ein.
Mit einem weiteren IO als Ausgang kann die Datenübernahme und anschließend der Schiebetakt erzeugt werden.
Die erste steigende Flanke startet einen Timer und die Datenübernahme. Der Timer sperrt den Enable Eingang des Registers und die 8 folgenden steigenden Flanken schieben die 8 Datenbits durch den Übertrag Ausgang des Schieberegisters an den µc.
Wenn der Timer ausläuft gibt er den Enable Eingang wieder frei.
Wer ein Analogsignal möchte, sollte Phototransistoren nehmen und als Schalter (spannungsverstärkung 1) beschalten.
Die Ausgänge werden mit Wiederständen zu einem Spannungsteiler beschaltet der µc Eingang wird entweder mit dem obersten Wiederstand als Pullup oder mit dem untersten Weiderstand als Pulldown gegen VSS oder GND gezogen.
Die Wiederstände sind so zu wählen das auch wenn zwei benachbarte Phototransistoren aktiv sind ein eindeutiger Wert am Eingang anliegt.
Das ist dann ein bischen was zu rechnen oder trial and error halt zu messen.
Den mechanischen Aufbau kann man in einem kunststoff U-Profil machen in das man zwichen zwei Sensoren noch je eine lichtdichte Wand einzieht.
Bei Photodioden sollt von unten über die Verdrahtung noch ein zweites Profil lichtdicht drüberkommen um Fremdlicht von hinten zu vermeiden.
Sheridan
18.02.2009, 14:39
Hallo i_make_it,
vielen Dank für deine tolle Erklärung =D>
Habe auf Grund deiner Angaben ein wenig recherchiert und folgendes gefunden:
http://www.sander-electronic.de/be00010.html
Lt. meiner Interpretation dürften diese fertigen Fotodiodenzeilen für meine Zwecke gut geeignet sein, oder? Selbstbauen wäre wahrscheinlich teilweise günstiger, aber warum das Rad neu erfinden :-k
Auf jeden Fall bin ich mal einen Schritt weiter
Vielen Dank und
LG
Georg
i_make_it
18.02.2009, 15:27
Eventuell ist TSL1410 geeignet da die Zeilenbreite (=Messbereich) 81,3mm ist.
Der nächste kleinere ist TSL202 mit 64mm wobei da vom Preis her drei Stück drin sind gegenüber dem TSL1410.
Die Auflösung von um 0,12mm als gröbste Auflösung wird dir aber einen riesen Datenoverhead bescheren.
Der Selbstbau ist ziemlich sicher billiger und vom Lerneffekt auch interessanter.
Für entsprechende Aufgaben, bei denen die gebotene Auflösung notwendig ist, sind die Teile aber bestimmt interessant.
Sheridan
18.02.2009, 20:20
Hallo i_make_it,
danke für das interessante Brainstorming -)
...
Die Auflösung von um 0,12mm als gröbste Auflösung wird dir aber einen riesen Datenoverhead bescheren.
...
Für entsprechende Aufgaben, bei denen die gebotene Auflösung notwendig ist, sind die Teile aber bestimmt interessant.
Wenn ich mich auf das rote reflektierende Licht an der Wasserobefläche konzentrieren möchte, würde mir wahrscheinlich die Auflösung am ehesten entgegenkommen, oder?
Es würde ja ein Scann alle 1 oder paar Minuten genügen. sodass sich der Datenoverhead in Grenzen halten würde? Ich müßte lediglich alle Zellen durchlaufen und abfragen, wo die Farbe rot vorkommt.
In Pseudocode würde die Abfrage wie folgt aussehen:
public function ErmittleWasserstand() As Integer
for i As Integer = 0 to MaxAnzahlDioden -1
if Diodenwert(i) = Rot then return i
next
end function
Falls das nicht klappen sollte, kann ich mich noch immer auf den Hell/Dunkel-Grau Unterschied (Wasser da/nicht da) konzentrieren?
Zumindest ist das mal meine analytische Herangehensweise, ohne mit solchen Sensoren je gearbeitet zu haben...
Vielen Dank und
LG
Georg
i_make_it
21.02.2009, 11:37
Zur Auswahl des notwendigen Sensors, würde ich noch mal ein paar Gedanken anstellen.
Nach dem Bild ist das ein Kaffevollautomat für Pads.
Links oben sind ja anscheinend eine ganze Reihe Bedienelemente.
Um zu wissen, was muß ich messen um sinnvolle Daten zu haben, muß man sich erst mal ansehen was für Parameter gibt es.
Eine normale Kaffetasse hat so 150ml.
Ein Espresso unter 100ml.
Bei Mocca sind wir bei ca. 50ml.
Ein großer Cafelatte kann schon mal bis 400ml groß sein.
Bei dem Tank muß man wissen wieviel ml gehen rein bevor am Sichfenster der Wasserstand sichtbar/auswertbar wird.
Als nächstes, wie viel ml gehen rein bis das Sichtfenster Maximalstand zeigt.
Die Höhe des Sichtfensters schätze ich anhand des Bildes auf ca. 12cm.
Mit diesen Daten ergibt sich das Delta des Wasserstandes im Sichtfenster bei Entnahme für die verschiedenen Produkte.
Daraus ergibt sich dann die notwendige maximale Auflösung des Sensors und der abzudeckende Messbereich.
Sheridan
22.02.2009, 21:48
Hallo i_make_it,
danke für deinen Ideeninput.
Zur Auswahl des notwendigen Sensors, würde ich noch mal ein paar Gedanken anstellen.
...
Bei dem Tank muß man wissen wieviel ml gehen rein bevor am Sichfenster der Wasserstand sichtbar/auswertbar wird.
Als nächstes, wie viel ml gehen rein bis das Sichtfenster Maximalstand zeigt.
Die Höhe des Sichtfensters schätze ich anhand des Bildes auf ca. 12cm.
Das Sichtfenster ist ca. 10 cm hoch. Die Messung auf Produktebene (kleine Tasse, große Tasse, etc) ist meiner Meinung nach gar nicht notwendig.
Es sollte genügen, wenn der Messbereich in 10 gleiche Teile geteilt wird, sodass in 10 % Schritten gemessen wird (also alle 1cm oder noch genauer: alle 5mm).
Da der Tank nach unten hin nicht schmäler wird, ist die Abnahme des Inhalts linear. Als Endergebnis genügt eine Prozentangabe (zB 30% voll)
Eine Verbrauchszeitreihe wäre eventuell auch interessant, aber fürs erste vernachläßigbar. Da müsste man dann ev. auf 1 mm Messgenauigkeit runtergehen (Tankinhalt ca. 5 Liter glaube ich)
Vielen Dank und
LG
Georg
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.