PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wassertankanzeige suche schnell Hilfe nur 3 Tage zeit :(



Robotik
15.07.2006, 12:07
Hi, ich fahre mit meinem Womo in Urlaub und beim Check musste ich jetzt feststellen das meine Anzeige für die Wassertanks kaputt ist. Jetzt will ich mir aber keine neue kaufen weil die zu Teuer sind und die alte wie ich sie habe es nicht mehr gibt, außerdem sind mir die Anzeigen zu ungenau. Wenn ich wieder aus dem Urlaub komme möchte ich mir gern eine genaue selberbauen vieleicht eine die mit Ultraschall die Wasserhöhe misst oder anders nur ist das jetzt zu Zeitintensiv.
An meinem Wassertank ist ein Kontankt ganz unten angebracht und 4 weitere aller einem viertel des Tankes, meine alte Anzeige hat nur 1/4, 1/2, 3/4 und voll angezeigt.
Nun wollte ich mit einem Atmega8 und einem Display (was schon funktioniert) die Wasserhöhe anzeigen lassen nur schaffe ich es nicht die 4 Kontakte anzuschliessen ohne das Störungen drauf sind. Ich habe einfach den 5ten der unten am Tank ist auf Masse gelegt und die anderen als Eingang an den Atmega8 (wie es bei Schaltern gemacht wird) nur funktioniert das nicht :( das scheint zu empfinlich zu sein weil er ständig die Wasserhöhe ändert auch wenn kein Wasser drin ist. (Auch mit eingeschalteten PullUp funktioniert es nicht) Es gibt eine Funktion "Debounce" Die Schalter Entprellen soll damit Funktioniert es besser aber nur wenn alle Kontakte nicht weiter als 3mm vom Massekontakt sind, es sind aber 10cm (K0-K1=10cm; K0-K2=20cm; K0-K3=30cm u.s.w.) Benutzen tuhe ich die Pins PC0-PC3 und Für den Abwassertank 4 Pins von PB, PD sind für das Display.

Kann mir bitte jemand helfen was ich genau machen muss??? Bitte genau Antworten das keine neuen Fragen entstehen können weil die Zeit knapp ist!!! Am bessten Itiotensicher Schreiben O:) vieleicht mit Code und genauer beschreibung von Bauelementen die ich benutzen muss um es zu entstören oder so. Bitte Bitte Bitte!!!

Achso ich benutze das Bord von "Roland Walter" aus seinem Buch "AVR MikroController Lehrbuch" für den Urlaub muss das gehn ist nur ein Provisorium. Ich nehme mal an es sollte nicht die ganze Zeit Strom durch den Tank fliessen da sonnst die Kontakte im Tank schneller Oxidieren sind aber aus Edelstahl :) . Es kann also auch ein Schalter oder Led mit benutzt werden wenn jemand ne Supper Idee hat :) bin für alles offen Bitte nur schnell!!!

Robotik
15.07.2006, 22:05
Kann mir denn keiner helfen??? :(

Marco78
15.07.2006, 22:15
Eine schnelle und Idiotensichere Antwort habe ich nicht. Somit entstehen bei dir schonmal keine Rückfragen ;)
Aber ich habe eine! Wo kommt denn die Spannung für die Schaltung her? Aus dem "verseuchten" Bordnetz des WoMo?
Vielleicht liegt da eher das Problem?

Die Schalter zu entprellen bringt nicht viel denke ich. Das schliessen der Kontakte soll ja keinen Zähler aktivieren oder so. Wenn er 20 mal in einer Sekunde gesagt hat das der Tank halb voll ist, dann wird ja trotzdem nur halb voll angezeigt.

Da du sicherlich das Bordnetz verwendest, hast du da dann ja auch die Masse hergenommen. Hast du einen Spannungsunterschied zwischen deinen beiden verwendeten Massepunkten?

Versuch mal am Eingang der vier Schalter mit jeweils einem 100nF Kerko die Störungen zu vermindern.

Wenn das ganze Problem aber schon auftritt wen der Motor noch aus ist, dann hast du ein richtiges Problem.
Dan stimmt was an der Schaltung nicht oder am Programm.

Du hättest mal lieber einen Schaltplan und den Code mit veröffentlichen sollen, damit du noch schneller Hilfe bekommst :P

Marco78
15.07.2006, 22:17
Kann mir denn keiner helfen??? :(
In der Ruhe liegt die Kraft!

Überleg mal, was für ein tag heute ist und was die Mehrzahl hier wohl heute Abend macht!
Und so laut um Hilfe schreien bewirkt hier oft das Gegenteil.

Robotik
16.07.2006, 02:48
Hm, was soll heute sein??? Heute is Samstag und??? Ist doch normal nach jedem Freitag :) Spaß beseite!!!

Die Schaltung ist einfach, und noch nicht im Womo zum Einsatz gekommen sondern nur zum versuchsaufbau am Tisch. PD sind für display belegt und funktionieren einwandfrei da ich das schon in vielen anderen Schaltungen so mache und mir in im Display die Werte angezeigt werden nur wechseln die sehr schnell obwohl nix verändert wird oder zeigen gar das falsche an. Die Spannung für die Schaltung ist absolut sauber. PC0 habe ich an den Kontakt angeschlossen der für 1/4 da ist, PC1 an den Kontakt für 1/2 u.s.w bis PC3=voll. Der Kontakt am Boden des Tankes ist direkt auf Masse gelegt (die Gleiche Masse die der Atmega8 also die ganze Schaltung hat) Die Schaltung hat eine Spannung von 5V. Zum versuch hab ich nur 4 Drähte in das Bord gesteckt (PC0-PC3) und einen an Masse und diese nacheinander in eine Tasse mit Wasser. Also Masse in die Tasse und dann den Draht an PC0 in die Tasse also müsste auf dem Display stehen das der Tank 1/4 voll ist. Aber das passiert nicht ich kann alle Drähte aus der Tasse und einfach in die Luft halten ohne sie mit den Fingern zu berühren und auf dem Display wechselt die Anzeige ständich zwischen 2 Ständen hin und her oder bleibt kurz auf einem anderem stehen.
Der Code ist simpel weil ich nur die 4 Pins abfrage und dann halt ausgebe.

Alles anders!!! Durch das schreiben der letzten Zeilen ist mir noch eine Idee gekommen mein Code ist folender:


'Wassertankanzeige-Ver1.BAS: Version 1.0
'Hardware:
'---------------------------------------------------------
$regfile = "m8def.dat" 'ATmega8-Deklarationen
$crystal = 3686400 'Quarz: 3,6864 MHz


$baud = 9600 '9600 Baud, wenn Quarzfrequenz 3,6864MHz, UBRR: Bascom-"16-Bit-Register", faßt die Register UBRRH+UBRRL zusammen





Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2


Ddrc.0 = 0
Ddrc.1 = 0
Ddrc.2 = 0
Ddrc.3 = 0
'Portc.0 = 1
'Portc.1 = 1
'Portc.2 = 1
'Portc.3 = 1




'LCD
Cls 'clear the LCD display
Lcd "Wasserstandsanzeige "
Wait 1




Dim Stand As Integer
Dim Last As Integer

Do

Stand = 0

If Pinc.0 = 0 Then
Stand = 1
End If
If Pinc.1 = 0 Then
Stand = 2
End If
If Pinc.2 = 0 Then
Stand = 3
End If
If Pinc.3 = 0 Then
Stand = 4
End If




If Last <> Stand Then

Select Case Stand
Case 0
Locate 3 , 1
Lcd " "
Case 1
Locate 3 , 1
Lcd "1/4"
Case 2
Locate 3 , 1
Lcd "1/2"
Case 3
Locate 3 , 1
Lcd "3/4"
Case 4
Locate 3 , 1
Lcd "1/1"
End Select
Last = Stand
End If

Loop
End


Und meine "grosse Neuerung" ist das in meiner Schaltung 4 Transistoren zum einsatz kommen. Basis ist jeweils an einem der 4 Kontakte am Tank ohne Vorwiederstand da das Wasser so hochohmig ist das ich nicht glaube einen zu brauchen (oder???) Der Colektor ist an den jeweiligen PC0-PC3 angeschlossen und an einen 56kOhm wiederstand gegen +5V. Emitter an Masse versteht sich von selbst :)
Jetzt kann ich sogar die "PullUP" deaktivieren un die Schaltung funktioniert :) hätte ich auch gleich drauf kommen können ](*,)
Ohne die Transistoren kamm nur kwatsch raus mit PullUP Aktiv funktionierte es aber nur wenn ich echte Schalter verwendet habe. Im wasser ist zu wenig Strom geflossen um den eingang auf Masse zu ziehen.

So nun muss ich das nur noch schön verpacken :) und überlegen wie ich das nun mit dem Ultraschallsensor mache der muss ja wasserdicht sein ich kenne nur die wo ein Gitter am Sensor ist. Die müssten ja voll gekapselt sein und einen Bereich von naja am besten 0cm-50cm haben gibts so einen Sensor??? (Wasser reflektiert doch Ultraschallwellen oder? Müsste doch sonst würden doch ale Fledermäuse ins wasser fallen =P~ )

Bin auf neue Lösungsvorschläge gespannt, mit so einem Sensor müsste dan eine Angabe im Liter Bereich möglich sein (oder?) :)

Xtreme
16.07.2006, 09:21
Ja, Wasser reflektiert Ultraschallwellen...
Es gibt gekapselte US Sensoren, z.B. bei Reichelt oder beim großen C.
Wenn du die Maße des Tanks kennst und die extrem komplexe Formel für Volumenberchnung kennst (L*B*H O:) ) kannst du natürlich Literangaben machen...