Forum: Mikrocontroller und Digitale Elektronik Füllstandsmessung im Aquarium


von Iwiki I. (iwiki)


Lesenswert?

Hallo zusammen!

Ich hab mich jetzt eine Weile durch das Forum gelesen und auch einige 
interessante Beträge zum Thema Füllstandsmessung gefunden. Leider 
beziehen sich die meisten auf die Messung in große Behältern wie 
Zisternen.

Ich suche eine Lösung die ich in meinem Aquarium umsetzten kann.
Hier einige Eckdaten

- Maximaler Füllstand: 50cm
- Regelung auf ca. 1 cm genau und eine zusätzliche Absicherung für 
Überfüllung
- Verschmutzung durch alten und blockieren beweglicher Teile durch 
Schnecken und Fische möglich => daher keine Schwimmerschalter
- Möchte auch nicht unbedinge Strom ins Aquarium einleiten => Man weiß 
ja nie wie Fische darauf reagieren.
- Bei der Variante mit Drucksensoren sehe ich das Problem vom verlegen 
des Rohres/Schlauchs aus ähnlichen Gründen wie bei Schimmerschaltern
- Hohe Genauigkeit und Zuverlässigkeit nötig. => möchte keine 
Überschwemmung im Wohnzimmer haben.

Ich möchte damit periodisch einen Wasserwechsel durchführen.
Die entsprechende Verrohrung für Filterrückspülung und Ablauf in den 
Kanal sowie Zulauf von Warm, Kaltwasser und Regenwasser existiert 
bereits. Wird derzeit händisch über eine Schaltung mit einem Mega 644 
gemacht. ( Steuere gewissen Magnetventilkombinationen über Tasten / 
Temperaturmessung / Steuerung der Heizung usw. )

:-) Aber man entwickelt sich ja weiter also soll das künftige 
automatisiert werden.

Um das Ganze umzusetzen fehlt mir eben noch ein zuverlässiger 
Füllstandsanzeiger.


Ja soweit mein Problem :-) Würd mich über ein paar Ideen sehr freuen.

Liebe Grüße
iwiki

von Melchior Kurtz (Gast)


Lesenswert?

Hallo,

bin mir nicht sicher ob es funktioniert, aber versuch es doch mal auf 
optischen Weg, die Grenze zwischen Luft und Wasseroberfläche ist ja mit 
den Auge gut ekennbar, daher sollte auch eine optoelektronische 
Lösungsmöglichkeit bestehen evtl. eine Reflexionslichtschranke von außen 
auf Höhe des zu überwachenden Füllstandes.

Nebenbei:
Ich habe das Gefühl als besteht dein Hauptinteresse an der 
Steuerungstechnik und der Mikrocontrolleranwendung (sehr interessant - 
dafür gibt es ja dieses Forum).
Aber ein Aquarium sollte nicht nur "Mittel zum Zweck" sein, es werden 
Lebewesen gepflegt denen die Aufmerksamkeit geschenkt werden sollte,es 
ist kein Problem bei der täglichen Pflege festzustellen wie hoch der 
Wasserstand ist.

Melchior Kurtz

von Iwiki I. (iwiki)


Lesenswert?

Guten Morgen!

Danke für die Antwort und den Hinweis auf das Wohlbefinden meiner 
Fische. :-)
Keine Sorge es geht ihnen gut und das wird es wohl auch weiterhin 
zumindest soweit das in miener Macht liegt. Sie stehen neben meinem PC 
am Schreibtisch und ich beobachte sie regelmäßig zur Entspannung. 
Trotzdem t liegen meine Interessen eben darin Dinge zu automatisieren. 
Nicht weil es nötig ist sondern einfach weil ich Freude daran habe.

Natürlich kann der Wasserstand also träglich kontrolliert werden. 
Erfahrungsgemäß wird der auch nicht weniger.
Bei einem Wasserwechsel wird jedoch Wasser abgelassen, das dann wieder 
mit Frischwasser ergänzt wird. Dabei möchte ich eben kontrolliert 
ablassen und dann auch wieder kontrolliert auffüllen. Wobei beim 
Auffüllen eben zwischen Warm/Kalt und Regenwasser gemischt werden soll 
um die entsprechenden Wasserwerte wieder einzustellen. Deshalb ist es 
nötig die im Aquarium befindliche Wassermenge genau zu messen.
Und es muss unbedingt sichergestellt sein, dass da nichts 
überläuft.Unter dem Aquarium ist zwar ein Loch in der Decke aber ich 
möchte meine Keller ungern fluten. :-)

Die optische Variante halte ich für problematisch da die Oberfläche 
bewegt ist. ( Filterpumpe und CO2 - Anlage )

Liebe Grüße
iwiki

von os (Gast)


Lesenswert?

in der Industrie wird sowas oft mit Ultraschall gemacht - da gibts 
fertige Sensoren für. Sowas kann man bestimmt auch selber basteln...

von Michael (Gast)


Lesenswert?

Hallo

Druckmessung in der CO2 Anlage. Der Gasdruck ist liniear Abhängig von 
der Wassertiefe.

Mfg Michael

von Michael (Gast)


Lesenswert?

Vielleicht soetwas ähnliches wie z.b. in der Geschirrspülmaschine für 
den Klarspüler ?

Das ist so ein angespitzter Glasstab der die Helligkeit ändert wenn er 
mit der Flüssigkeit zusammenkommt, funktioniert irgendwie mit der 
unterschiedlichen Brechung vom Licht.

von Peter R. (pnu)


Lesenswert?

Das Aquarium auf der Wägezelle einer Personenwaage montieren.
Oder an einem Fuß des Aquariumsgestells  Dehnungsmessstreifen montieren.

Damit lassen sich über die Gewichtsänderung Wasserverluste 
kontrollieren.

Da kann sogar der Wasserwechsel mitgemessen werden.

von Frank P. (mauz)


Lesenswert?

os schrieb:
> in der Industrie wird sowas oft mit Ultraschall gemacht - da gibts
> fertige Sensoren für. Sowas kann man bestimmt auch selber basteln...

Ist bei Fischen eine ganz schlechte Idee. Die Fische im Zooaquarium 
reagieren teilweise auf Ultraschallantriebe moderner Autofokusobjektive, 
beim Versuch selbige zu fotografieren. Das kann man in diversen 
Fotoforen nachlesen. Kann natürlich sein, dass es nur bestimmte Fische 
und bestimmte Frequenzen sind, aber ich würde da die Fische nicht zu 
Versuchsobjekten machen wollen.
frank

von Iwiki I. (iwiki)


Lesenswert?

Mahlzeit :-)

Versuchsfische möchte ich keine. Das mit dem Ultraschall klingt wirklich 
nach Beeinträchtigung. Lassen wir mal lieber sein.

Die Wiegezellenidee gefällt mit grundsätzlich nicht schlecht. Da könnte 
das Problem allerdings werden dass das Aquarium an die 500kg wiegt und 
abgesehen davon das Personenwaage nicht so einen großen Gewichtsbereich 
abdecken, die Glasscheibe gleichmäßig belastet werden muss sonst gibs 
schnell eine Überschwemmung. Zwischen Aquarium und Unterbau befindet 
sich deshalb eine ca. 1cm dicke Schaumstoffmatte die eben alle 
Unebenheiten ausgleichen soll.

Gibt es nicht eine möglichkeit den Wasserstand durch die Scheibe 
irgendwie über Induktion zu messen? Wasser leite ja deutlich mehr als 
Luft. Vielleicht kann man darauf aufbauen.

Liebe Grüße
Iwiki

von Iwiki I. (iwiki)


Lesenswert?

Nachtrag!

Ich habe das Posting mit dem "Klarspüler" übersehen. Klingt interessant. 
Kennt sich damit jemand aus?

von David .. (david1)


Lesenswert?

Du kannst auch Kapazitiv messen, google mal danach, da gibts lauter 
sachen dazu, ansonsten würde ich vlt doch auf den Schwimmerschalter 
gehen, davon aber 2-3 oder 4 einbauen, da merkt man dann doch schnell 
wenn was nich stimmt.

von F. C. (random236)


Angehängte Dateien:

Lesenswert?

Hallo David,

Eine kapazitive Messung halte ich für die beste Variante! Wir haben 
sowas mal in der Projektwoche unserer Schule probiert, da ging es um 
eine Füllstandsmessung in einem Dieselöltank, wir sind auf zwei 
praktikable Lösungen gekommen!

Die erste Möglichkeit besteht in einer Messung des hydrostatischen 
Druckes! Wir hatten vom großen C einen Differenzdrucksensor und konnten 
so den Druck der Umgebungsluft und den Druck am Boden das Tankes der aus 
Flüssigkeitssäule und Außendruck besteht messen. Der Sensor gibt eine 
sehr geringe Spannung ca. 15mV aus! Bei uns ist der Sensor daran 
gescheitert das wir vermuten der Dieselkraftstoff hat die Membran des 
Sensors zerfetzt, Wasser dürfte da besser funktionieren!

Die zweite Möglichkeit war die kapazitive Messung, wir haben uns dazu 
einen Kondensator für den Tanke selbergebaut, im Anhang findest du zwei 
Bilder, sind zwei Aluplatten die mittels Plastikschrauben und Scheiben 
zwischen den Platten isoliert sind! Als Dielektrikum dient dann entweder 
Luft wenn der Tank leer ist, oder Diesel wenn er Voll ist! Die Kapazität 
errechnet sich aus:

C=E0*Er*A/a

E0 = Naturkonstante 8,854*10 hoch -12
Er = Konstante des Dielektrikums (Luft ~1, Wasser ~81)
A = Fläche der Platten
a = Abstand der Platten

Wir hatten damals eine Kapazität von 141,6 pF und 300pF für den leeren 
und vollen Tank errechnet.

Den Kondensator haben wir an einen CAV424 angeschlossen, ist ein IC 
welches Kapazitäten vergleicht und in eine Spannungs umwandelt. Diese 
Spannung haben wir dann noch verstärkt und mittels Logik-Schaltung in 
eine LED-Anzeige für den Füllstand umgewandelt! Hat funktioniert müsste 
jedoch noch verfeinert werden, wir hatten ziemliche Probleme mit 
elektromagnetischer Strahlung auf unserer Messergebnis!

Lg random

von Harald M. (mare_crisium)


Lesenswert?

Iwiki,

das Problem im Aquarium ist der Belag, der sich auf allen benetzten 
Flächen früher oder später bildet. Deswegen geht die Klarspüler-Methode 
nicht (die Totalreflektion wird durch den Belag verhindert) und die 
kapazitive Methode wird auch beeinträchtigt.

Wahrscheinlich perlst Du Luft in das Aquarium ein, um Deinen Fischen das 
Leben angenehmer zu machen. Da ist der Vorschlag von Gast Michael genau 
das Richtige: Miss den Differenzdruck zwischen dem Luftdruck in der 
Zuleitung zur Einperlung und dem Luftdruck im Zimmer. Er ist direkt 
proportional zum Wasserstand. Beläge stören diese Messung nicht, weil 
das Einperlrohr nicht zuwächst. Die Methode heisst in der industriellen 
Messtechnik "Einperlmessung". Die Methode ist kaum störanfällig; sie 
funktioniert sogar in stark verschmutzen Flüssigkeiten. Das einzige 
Problem bei Deiner Anwendung ist die sehr kleine Druckdifferenz.

Zweitbeste Methode ist die Ultraschallmethode - keine Bange, die Fische 
hören davon nichts :-). Man misst nämlich den Abstand zwischen dem ÜBER 
dem Wasser montierten Messgerät und der Wasseroberfläche. D.h. der 
Ultraschall läuft nur durch Luft. Ins Wasser gelang davon so gut wie 
nix. Der Mindestabstand zwischen Geber und Wasseroberfläche beträgt bei 
dieser Methode meist ca. 30cm und eine Auflösung von 1cm ist 
grenzwertig.

mare_crisium

von MaWin (Gast)


Lesenswert?

> Die entsprechende Verrohrung für Filterrückspülung und Ablauf in
> den Kanal sowie Zulauf von Warm, Kaltwasser und Regenwasser
> existiert bereits.

Na dann...

Bau einfach einen Überlauf dran.
Dann kann dein Aquarium überlaufen ohne die Wohnung einzusauen.
Dann sorge dafür, daß (bei offenem Ventil) weniger Zulaufwasser
reinfliessen kann als durch den Überlauf ablaufen kann.

Das ist wie beim Toilettenspülkasten: Sollte das Schwimmerventil
mal nicht schliessen, läuft das überschüssige Wasser einfach in
die Toilette ab.

Dann hast du keine Sorgen wehr, wenn etwas am Sensor oder der
Steuerung nicht stimmt. Man könnte sogar den Zulauf dauernd
geöffnet haben, sozusagen tropfenweise das Wasser austauschen,
und den Überlauf genau so anbringen, daß er den Wasserstand
durch seine Höhe regelt.

Spart jegliche unsinnige Technik "Ultraschall", "kapazitive
Sensoren" und sonstiger Mist von dem die Vorschlagenden
sicherlich keinerlei Ahnung haben.
Und die komplexen Messmethoden mit Einperldruck oder
hydrostatischem Druck sind ja auch teuer.

Als Füllstandsanzeiger reicht dann wieder ein billiger
Schwimmerschalter oder ein aussen am Glas angebrachter
Näherungsschalter.

von .ru (Gast)


Lesenswert?

Mawin der alte Russe !

von Iwiki I. (iwiki)


Lesenswert?

Hallo!

Zu der Lufteinperlung:
Ich perle keine Luft ein. Ich habe eine CO2-Versorgung über einen 
Hefe-Zuckerlösung und einen Ausströmstein. Da perlt zwar immer was aber 
eben ungesteuert. Die Versorgung mit Sauerstoff läuft über den Filter. 
Was Wasser wird so eingebracht, dass der Sauerstoff über die die bewegte 
Oberfläche aufgenommen wird. => niedrige Betriebskosten und hat sich die 
letzten 10 Jahre bewährt.

Das mit dem Bewuchs ist nicht so das Problem. Das Aquarium steht vor 
Sonneneinstrahlung geschützt und ist gut eingelaufen. Heißt mit anderen 
Worten. Die paar Algen die sich bilden werden von den Bewohnern 
aufgefressen. Bodengrundreinigung und Algenentfernung sind nicht nötig.

Aber eben gerade diese Bewohner sind das Problem für die mechanischen 
Einbauten. Erkäre mal einer Schnecke dass sie sich nicht auf Sensoren 
setzen darf. Und ich weiß aus Erfahrung. Die sitzen immer da wo sie 
nicht solle. Sie blockieren auch mit vorliebe meine 
Oberflächenabsaugung. Nur ist der das ziemliche egal weil sie sich wenn 
sie oben Luft erwischt über einen Schwimmer das Wasser von unten holt 
und damit trotzdem keine Luft in das Filtersystem kommt.

Wie soll das System mit dem kontinuierlen Überlauf funktionieren? Der 
Glaskörper ist oben gerade. Der Wasserstand normalerweise ca. 3cm unter 
dem Rand. ich muss das Wasser also anheben damit es überläuft.
Mit fällt das nur das - ich nenn es mal - "Wasserwaagenprinzip" ein. 
Sprich ein mit Wasser gefüllter Schlauch der aus dem Aquarium heraus 
nach untern und dann wieder bis auf Höhe der Sollwasserlinie nach oben 
läuft. Und dann sozusagen in den Abfluss fließt. Ich weiß nicht ob das 
jetzt verständlich war.
Erfordert eine sehr klein dimensionierte Zuleitung und ich kann damit 
den Filter nicht mehr Rückspülen.
Aber ein Gedanke gefällt mir an diesem Schlauch. Man könnte darin, 
unabhängig von den Tieren das Wasser Niveau im Aquarium bestimmen.
Vielleicht mit einem magnetischen Schwimmer der an außen angebrachten 
Sensoren vorbeisteigt und fällt.

Was denkt ihr darüber?

von Thilo M. (Gast)


Lesenswert?

Iwiki Iwiki schrieb:
> Zu der Lufteinperlung:
> Ich perle keine Luft ein.

Kannst du mit einem umgebauten Blutdruckmessgerät machen.
Glasrohr von oben bis knapp vor den Boden, von oben zyklisch Luft 
'reinpumpen und den Druck messen, bis er nicht mehr steigt. Das System 
kann leicht selbst kalibriert werden und ist sehr genau. Verschmutzung 
ist auch kein Problem, im Ernstfall muss nur das Glasröhrchen gereinigt 
werden.
Und die Fische dürften Luftblasen wohl gewöhnt sein. ;-)

von Peter R. (pnu)


Lesenswert?

Bei der Waagemethode reicht es, auf ein Bein des Aquariengestells oder 
auf ein sonstiges vom Gewicht belastetes Teil Dehnungsmessstreifen zu 
kleben. Da ist nicht unbedingt eine Wägezelle notwendig. Es geht ja 
nicht darum, ein genaues Gewicht zu erfassen sondern nur die Änderung. 
Die lässt sich dann durch dazuschütten von 10 Liter leicht kalibrieren.

Nur muss man die Klebetechnik für Dehnungsmessstreifen beherrschen. (Das 
dürfte das Hauptproblem darstellen.)

Danach könnte man die fertige aufgeklebte Brücke an einen 
hochauflösenden (dual-slope, 18 bit, Maxim: MAX132) AD-Wandler 
anschließen.

von Sebastian E. (senz) Benutzerseite


Lesenswert?

Der Kondensator für die kapazitive Messung muss nicht unbedingt im 
Wasser sein! Zwei vertikal, nebeneinander auf die Scheibe geklebte 
Leiterstreifen bilden auch ein C. Das Feld geht dann im Halbkreis durch 
das Wasser.
Zur Auswertung einfach ein paar Gatter als Oszillator mit dem C und im 
µC Impulse Zählen.
Da gab es in der Elektor irgendwann mal eine schöne Schaltung! 
(Füllstandsmesser)

von Gerd E. (robberknight)


Lesenswert?

http://dietmar-weisser.de/analogtechnik/BodenFeuchte/FeuchteSensor_1.php

Die Schaltung ist zwar für Bodenfeuchte gedacht, funktioniert aber vom 
Prinzip her genau wie Sebastian beschrieben hat. Du musst wahrscheinlich 
den R2 etwas anpassen.

Es gibt so fertige Kupfer-Klebefolie zu kaufen, die ist normal für 
EM-Schirme etc. gedacht. Davon sollten 2 Streifen gut von außen aufs 
Aquarium zu kleben sein.

von Ich (Gast)


Lesenswert?

Gab hier wieder so viele Infos das ich wieder mal zu Faul war mir alles 
durch zu lesen.

Mein Tipp (Habe selbst ein Aquarium):
Man nehme einen Schlauch und führe ihn in einer Ecke bis unter die 
Minimale Befüllungsgrenze. Auf die andere Seite dieses Schlauches 
montiere man nun einen Absolut Druck Sensor.

Steigt der Wasserpegel so steigt der Druck. Sinkt der Wassrspiegel so 
sinkt der Drunk.

Vorteile: Wartungsarm, Kann eig. nicht verstopfen, Keine Elektrik im 
Wasser, geringer Schaltungstechnischer Aufwand.

von Helmut (Gast)


Lesenswert?


von Harald M. (mare_crisium)


Lesenswert?

Nee, Jungs, Absolutdruck bringt's nicht: 1mbar entspricht ca. 1cm 
Wassersäule. Der Luftdruck ändert sich, wetterbedingt, locker um 
10-20mbar 'rauf und 'runter. D.h. der per Absolutdruck "gemessene" 
Wasserstand wackelt um ca. 10 bis 20cm. Man muss den Differenzdruck 
zwischen Umgebungsluft und dem Druck am Boden des Aquariums nehmen, 
sonst läuft's über oder ab ;-).

mare_crisium

von Wolfgang-G (Gast)


Lesenswert?

>Man muss den Differenzdruck zwischen Umgebungsluft und dem Druck am Boden >des 
Aquariums nehmen, sonst läuft's über oder ab ;-).
genau, nur so ist es richtig

von Frank P. (mauz)


Lesenswert?

Harald M. schrieb:
> Zweitbeste Methode ist die Ultraschallmethode - keine Bange, die Fische
> hören davon nichts :-). Man misst nämlich den Abstand zwischen dem ÜBER
> dem Wasser montierten Messgerät und der Wasseroberfläche. D.h. der
> Ultraschall läuft nur durch Luft. Ins Wasser gelang davon so gut wie
> nix. Der Mindestabstand zwischen Geber und Wasseroberfläche beträgt bei
> dieser Methode meist ca. 30cm und eine Auflösung von 1cm ist
> grenzwertig.

Die Leute, welche ein Reagieren der Fische auf ihre USM-Objektive 
beschreiben, standen auch vor der Aquariumscheibe. In Zooaquarien darf 
man üblicherweise nicht tauchen. Die Situation wird dann etwa so 
beschrieben: Fisch guckt schön fotogen in die Richtung des Fotografen, 
der nimmt den Fisch ins Visier, drückt den Abzug halb, das Objektiv 
stellt mittels USM-Antrieb scharf und in dem Moment macht der Fisch eine 
ruckartige Kehrtwende und schwimmt davon und auf dem Foto, das kurz nach 
dem inzwischen ganz gedrückten Knopf, entstand, ist nur noch die 
Schwanzflosse. Wie gesagt ich will mich nicht über Frequenzen, 
Schalldruck oder Fischarten streiten, aber so pauschal da hören die 
Fische schon nix, da wäre ich vorsichtig.
frank

von Clair Grube (Gast)


Lesenswert?

Differenzdruck ist doch eine gute Lösung.
Damit das Rohr nicht verdreckt reicht es doch, es mit klarem Wasser 
aufzufüllen und es am Ende mit einer Membrane zu verschliessen.
Der Druck wirkt dann auch innerhalb und es kommt kein Dreck rein.

von Wolfgang-G (Gast)


Lesenswert?

>und es am Ende mit einer Membrane zu verschliessen
bei den hier zu messenden Drücken ist der Fehler durch die Membran 
größer als der Differenzdruck
MfG

von zipp (Gast)


Lesenswert?

hmm
ich mach was gleichartiges damit:
http://www.watterott.com/de/Sharp-GP2D120XJ00F
und das nicht vergessen:
http://www.watterott.com/de/Anschlusskabel-fuer-Sharp-IR-Entfernungssensoren

kein elektro-smog
kein akustik-smog
keine fischsuppe ;-)

cu zipp

von Iwiki I. (iwiki)


Lesenswert?

Hallo!

Na dann will ich mich auch mal wieder zu Wort melden. Nachdem der 
Arbeitstag vorbei ist und ich alle Antworten gelesen. :-)
Danke übrigens für die rege Anteilnahme.

Ich fasse mal zusammen wie ich die Postings verstanden haben.
Also im Grund wären wir bei 3 möglichen Varianten:

Differenzdruckmessung:
- Grenzwertig bei der Genauigkeit aufgrund der geringen Wasserhöhe
- Wenn man keine Luft einperled Gefahr des verschließens des Schlauches
- Abhilfe wäre vielleicht das "Schlauchwasserwaagenprinzip" Ich nenns 
einfach mal so. Ist klar was ich damit meine?
- Schaltung wäre verfügbar. (Was mich sehr freut da ich keine 
Profientwickler bin)

Kapazitätsmessung:
- Alle Teile außerhalb des Aquariums und keine Berührung mit dem Wasser 
( gefällt mir gut )
- Auswertung erscheint mir kompliziert. Zumindest hab ich es noch nicht 
verstanden.
- Wie sieht es da mit der Genauigkeit aus? Wäre +-5mm möglich? Auch im 
Bereich der Kondensatorränder?

Infrarotmessung:
- Klingt interessant auch von den Kosten her. Hab ich bisher noch 
nirgends gelesen.
- Störanfälligkeit und Genauigkeit? Gibs da Erfahrungswerte?
Ad Zipp: Wäre sehr an einigen Details zum Aufbau und zur Auswertung 
interessiert.

Achja zum Thema Ultraschall:
Mir ist eingefallen, dass wir ein Ultraschall-Wasserbad in der Firma zur 
Reinigung verwenden. Das will ich meinen Fischen nicht zumuten. :-) Auch 
wenn sie dann immer schön sauber wären.

Die Wiegezellen oder Dehnungsstreifenmethode lass ich mal außen vor. 
Nicht böse gemeint nur kann ich mir nicht vorstellen, dass ein 
Dehnungsstreifen an meinem Unterschrank geklebet den Wasserstand messen 
soll.
Vielleicht fehlt mir auch einfach die Fantasie dazu.

Liebe Grüße und einen schönen Abend
iwiki

von zipp (Gast)


Lesenswert?

hi iwiki

das board:
http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=230578888840&ssPageName=STRK:MEWNX:IT
14,95€

die software in bascom:
1
'       ################### Pumpe mit MIN und MAX Füllstandserfassung$Regfile="m8def.dat"   ##############
2
'  hfuse = d8 lfuse = ad
3
'
4
Anwählen zum Simulieren
5
Start:                                                      ' Sicherheitshalber
6
7
$regfile = "m8def.dat"
8
$crystal = 3686400
9
$hwstack = 100
10
$swstack = 150
11
$framesize = 128                                            '48
12
$baud = 9600                                                'Normale Hardware RS232 (hier hängt PC dran)
13
14
Const Io_mode = 0
15
'Const Reload = 7935                                         ' zählerwert für 1 Sekunde
16
Const Reload = 64959
17
Const Kx = 18500                                            '9500                                             ' zählerwert für 10 mSek
18
Const Ax = 3
19
Const Bx = 8                                                '5
20
Const Cx = 0                                                '-20
21
'---------------------
22
'Declare Sub Tx_data
23
'Declare Sub Rx_data
24
'---------------------
25
Declare Function Linadc(xvadc As Word) As Single
26
27
'*******************************************************************************
28
'  Config
29
'*******************************************************************************
30
                                                            '= 1s
31
                                                            '################
32
Config Portb.0 = Output : Pmax Alias Portb.0
33
34
Config Portb.1 = Output : P_heartbeat Alias Portb.1
35
36
Config Portb.2 = Output : Pumpe Alias Portb.2               ' Pumpenrelais beim AVR_Ctr + LED6
37
38
Config Portd.2 = Input : Portd.2 = 1 : Imax Alias Pind.2
39
40
Config Portd.3 = Input : Portd.3 = 1 : Imin Alias Pind.3
41
42
'###  Dimensionieren und Declarieren ##
43
Dim Pumpe As Bit , P_heartbeat As Bit , Pmax As Bit , Imin As Bit , Imax As Bit
44
Dim Laufzeit As Word , Maxzeit As Word , Vadc As Word , Lvadc As Word
45
Dim New_second As Bit
46
Dim Seccnt As Word , Dummy As Word
47
Dim S_str3 As String * 3 , S_str3a As String * 3
48
Dim S_str4 As String * 5 , S_str4a As String * 6
49
Dim H_beat As Byte
50
Dim P_adc As Byte
51
Dim Lin_adc As Single , Tlx0 As Single , Tlx1 As Single , Tlx2 As Single , Tlx3 As Single , Tlx4 As Single
52
Dim Ladc As Single
53
Laufzeit = 0                                                ' Laufzeit gezielt zu 0
54
Maxzeit = 300
55
P_adc = 5                                                   ' max Pumpenzeit in Sec festgelegt
56
Print "Start"
57
Config Timer1 = Timer , Prescale = 64
58
On Timer1 Isr_timer1
59
Timer1 = Reload
60
Enable Timer1
61
Enable Interrupts
62
63
Config Adc = Free , Prescaler = Auto , Reference = Internal
64
Start Adc
65
66
Vadc = Getadc(p_adc) :
67
Vadc = Getadc(p_adc) :
68
Lvadc = Vadc
69
P_adc = 5
70
Wait 8                                                      ' nur zum starten des Terminals
71
72
Print "v02.10"
73
Reset Pumpe
74
'##### eigentliches Hauptprogramm  MAIN  ###
75
76
 Do
77
  If New_second = 1 Then
78
     New_second = 0
79
     Incr H_beat
80
     Lvadc = Vadc
81
     Vadc = Getadc(p_adc)
82
     S_str3 = Str(laufzeit) : S_str3 = Format(s_str3 , "000")
83
     S_str3a = Str(h_beat) : S_str3a = Format(s_str3a , "000")
84
     S_str4 = Str(vadc) : S_str4 = Format(s_str4 , "0000")
85
     Print "###" ; S_str3a ; "-" ; S_str3 ; "-" ; S_str4 ; "-" ; Pumpe ; "-" ; Imax ; "-" ; Imin ; "***"       '"-" ;; Ladc
86
     If H_beat = 255 Then H_beat = 0
87
  End If
88
  Dummy = Seccnt Mod 10
89
90
  If Dummy = 0 Then
91
     If Vadc > 440 And Pumpe = 0 And Imin = 1 Then          '440 * 0,0025V =1,1V entspricht ca. 11 cm
92
        Pumpe = 1 : Laufzeit = 0
93
     End If
94
95
     If Vadc < 240 And Pumpe = 1 Then                       '240 * 0,0025v = 0,6V entspricht ca. 22cm
96
        Pumpe = 0 : Laufzeit = 0
97
     End If
98
99
     If Pumpe = 1 And Laufzeit = Maxzeit Then
100
        Pumpe = 0 : Laufzeit = 0
101
     End If
102
103
     If Imin = 0 Or Imax = 0 Then
104
        Pmax = 1
105
     Else
106
        Pmax = 0
107
     End If
108
109
     If Imin = 0 Then
110
        If Pumpe = 1 Then
111
           Reset Pumpe : Laufzeit = 0
112
        End If
113
     End If
114
115
     If Imax = 0 Then
116
        If Pumpe = 0 Then
117
           Set Pumpe : Laufzeit = 0
118
        End If
119
     End If
120
121
  End If
122
Loop
123
124
'*******************************************************************************
125
'  TIMER1 Interrupt (called every second)
126
'*******************************************************************************
127
Isr_timer1:
128
129
 Timer1 = Reload                                            ' timer wird alle 10ms aufgerufen
130
131
 Incr Seccnt
132
133
 If Seccnt >= 100 Then
134
    New_second = 1
135
    Incr Laufzeit
136
    If Laufzeit >= Maxzeit Then
137
       Laufzeit = Maxzeit
138
    End If
139
    Seccnt = 0
140
141
 End If
142
143
If Seccnt < 2 Then
144
  Set P_heartbeat
145
Else
146
  Reset P_heartbeat
147
End If
148
149
Return
150
151
'---------------------------------------------------------------------
152
' lineaeisiere Ausgabe des Sharp Moduls
153
 Function Linadc(xvadc As Word)
154
  Print Xvadc
155
  Tlx0 = Xvadc - Cx                                         ' (S-c)
156
  Print Tlx0
157
  Tlx1 = Bx * Tlx0                                          'b* (S-c)
158
  Print Tlx1
159
  Tlx2 = Kx - Tlx1                                          'K-b* (S-c)
160
  Print Tlx2
161
  Tlx3 = Ax * Tlx0                                          ' a(S-c)
162
  Print Tlx3
163
  Linadc = Tlx2 / Tlx3
164
 End Function

sollte es klappen
{ist noch "spielcode" drin zur linearisierung des sharp. ist aber 
bullshit. prinzip geht, aber der ist je nach reflexion nicht-linearer 
als nicht-linear ;-)}
cu zipp

von zipp (Gast)


Lesenswert?

sorry, habe ich vergessen zu erwähnen:
ich pumpe AB!
wenn du das so übenimmst = stockfisch!

von Iwiki I. (iwiki)


Lesenswert?

Hallo!

Danke Zipp.
Das ist super Hilfreich. Das Board brauch ich nicht da meine Steuerung 
im Moment mit einem Mega 644 läuft.
Programm dafür ist auch in Bascom ( die einzige Programmiersprache die 
ich wirklich kann )
Würde sich also gut einbinden lassen. Muss ich mir dann am Wochenende 
mal im Detail ansehen.

Wenn ich das richtig verstehen schließt du den Sharp direkt an den ADC 
des Mega 8 an. Das wäre optimal weil keine zusätzlichen Schaltungen 
nötig wären.
Wie genau läuft die Sache. Schaffst du +- 5mm beim Wasserstand. Hattest 
du schon mal Störungen.

Nicht linear bedeutet dass ich eine Kalibierkurve benötige. Die liese 
sich aber eigentlich leicht durch geziehte Messungen bei definieten 
Pegeln bestimmen. Alles andere kann ich dann über die Geradengleichung 
berechnen.
läuft also ähnlich wie wenn ich einen NTC an den ADC anschließe.
=> richtig verstanden?

Schönen Abend!
iwiki

von Der D. (derdaniel)


Lesenswert?

Mal ein Gedankenanstoß zur Kapazitätsmethode (mein Favorit da keine 
teile IM Aquarium und die FehlerUNanfälligste).

Wie bei einem NE555 (ja das Prinzip is schon so alt) wird ein 
Kondensator zu erst voll ge- oder entladen.
Danach wird er über einen Wiederstand ent- oder geladen und gleichzeitig 
ein Timer gestartet. Nach einem tau hat der Kondensator seine Ladung um 
63% zur vorherigen ladung geändert, wobei sich tau durch R*C errechnet.

Nun lässt du per OpAmp ab einer festgelegten Spannung, respektiv Ladung, 
einen interrupt auslösen. Die gemessene Zeit sagt dir sozusagen welche 
Kapazität der Kondensator hat und dementpsrechen wie hoch das Wasser 
ist.

Um die verschidenen Kapazitäten zu erhalten solltest du am besten eine 
Messreihe machen, da das Rechnen dort zu ungenau wird.

von Thilo M. (Gast)


Lesenswert?

Wenn du schon den NE555 benutzt, dann als astabile Kippstufe.
Die Frequenz, die 'rauskommt, kann direkt per µC ausgewertet werden.

Die Kapazität als frequenzbestimmendes Teil liegt im Bereich von wenigen 
pF (15..50pF). Der NE555 ist recht empfindlich bei 
Temperaturschwankungen, also mit NE556 zweimal identisch aufbauen (einer 
mit Festkapazität) und die Differenz der Frequenzen auswerten.

von Norbert L. (norbert_l64) Benutzerseite


Lesenswert?

Thilo M. schrieb:
> also mit NE556 zweimal identisch aufbauen

Das funktioniert aber nur, wenn die ICs und die frequenzbestimmenden 
Bauteile die selbe Driftrichtung haben. Was sehr unwahrscheinlich wäre.


Mal ne Frage: Wie dick sind die Glaswände der Aquarien?

von Der D. (derdaniel)


Lesenswert?

Naja ich wollte den NE555 nicht als Bauteil verwenden, sondern sein 
Prinzip auf die kapazitive Füllstandsmessung übertragen, da ich glaube 
das jeder der auch nur bischen was von elektronik versteht den NE555 und 
sein Prinzip kennt (zumindest war das früher so ;-).

Die Idee mit dem NE555/556 als kippstufe ist aber interessant und setzt 
seine Intention voll durch.

Das Thema der störanfälligkeit ist bei so kleinen Kapazitäten denke ich 
auch das größte Problem, wird aber durch die zweite Festkapazität 
elegant behandelt.
Nur etwaige Lebewesen die sich im E-Feld Befinden können noch zu 
verwirrung führen, daher sollte man den Kondensator an einer 
'geschützten' Stelle wie einem Ausgleichs-/Filterbecken bauen...

von Sebastian E. (senz) Benutzerseite


Lesenswert?

Ich würde den Sensor so wie in dem oben genannten Feuchtemesser bauen. 
Den 74HC14 als Relaxation Oszillator, alles auf eine kleine Platine oder 
frei fliegend in die Nähe der Kondensatorplatten. Vlt kann man auch 
gleich eine Lange Platine machen, auf der sich die Platten befinden.
Das ganze über 3 Drähte an den µC. Die Übertragung ist störfest, da nur 
die Frequenz gemessen werden muss. Das macht dann der Controller mit 
einem Tiemr/Counter.

von Iwiki I. (iwiki)


Lesenswert?

Hallo :-)

Also um gleich mal die Frage zu beantworten: Die Scheiben sind ca. 1cm 
dick und es gibt keine Ausgleichs oder Filterbecken nebenan. Die Filter 
befinden sich im Keller.

von JoeWanne (Gast)


Lesenswert?

Gibt es da keine Probleme mit dem Kondenswasser?
Diesen Sensor würde ich dann auch nehmen.

von JoeWanne (Gast)


Lesenswert?

zipp schrieb:
> hmm
> ich mach was gleichartiges damit:
> http://www.watterott.com/de/Sharp-GP2D120XJ00F
> und das nicht vergessen:
> http://www.watterott.com/de/Anschlusskabel-fuer-Sharp-IR-Entfernungssensoren
>
> kein elektro-smog
> kein akustik-smog
> keine fischsuppe ;-)
>
> cu zipp

Gibt es da keine Probleme mit dem Kondenswasser?
Diesen Sensor würde ich dann auch nehmen

von Helmut -. (dc3yc)


Lesenswert?

Einen 8 Jahre alten Thread wieder ausgraben? Totenfrevler!!!

von JoeWanne (Gast)


Lesenswert?

Ja, so bin ich halt @Helmut

von Norbert S. (norproz)


Lesenswert?

cool, dieser totenfledderer. bin auch an einem solchen problem. gibts 
den to noch aktiv hier?

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
Noch kein Account? Hier anmelden.