Kann mir denn keiner helfen???
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 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!!!
Kann mir denn keiner helfen???
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
In der Ruhe liegt die Kraft!Zitat von Robotik
Ü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.
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:
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 selbstCode:'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
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 )
Bin auf neue Lösungsvorschläge gespannt, mit so einem Sensor müsste dan eine Angabe im Liter Bereich möglich sein (oder?)
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 ) kannst du natürlich Literangaben machen...
MfG Xtreme
RP6 Test - alles zum Nachfolger des bekannten RP5 im neuen RP6 Forum!
Lesezeichen