Hi Ich wollte mich jetzt mal an die Digitalisierung meiner Tankanzeige machen. Also ich habe einen Tankgeber, der besteht einfach aus einem sich änderndem Widerstand. bei Tank leer 1,9 Ohm bei Tank voll 78,3 Ohm. Der ADC Eingang von meinen Atmega8 (16MHz Quarz) liest ja nur Spannungen ein. Wenn ich also über einen Spannungsteiler gehe, wie müsste ich die Schaltung aufbauen und wie müsste die Befehle in Basom lauten? Ich habe leider noch nie mit ADC Eingängen gearbeitet und kenne mich mit den Befehlen dafür auch nicht so recht aus. |-------Vcc-------' ' --- ' ' '1k ' ' ' ' ' --- ' '--------------- Portc.0 ' ' --- ' ' ' ' Tankgeber 1,9 - 78,3 Ohm ' ' ' ' --- ' ' ' ------GND---------' Wollte die Schaltung über einen Spannungsteiler so aufbauen. Ich habe leider keinen Schimmer, ob der Vergleichswiderstand so gut ist, oder ob er zu klein oder zu groß ist und ob die Schaltung überhaupt so geht. Ich wollte den Füllstand in Prozent anzeigen lassen (auf LCD), aber wie kann ich das im Atmega berechen. Jetzt ist noch die Frage, wie müsste der Quellcode dafür aussehen. Ich habe leider keine brauchbares Tut für Bascom gefunden. Ich habe auch nach Temperaturmessungen geschaut, das es dort ja ähnlich funktionieren müsste. Ich hoffe ihr könnte mir ein bischen auf die Sprünge helfen :)
Hilfe zur Selbsthilfe: Bascom-Hilfe -> Getadc Formelsammlung -> Spannungsteiler-Regeln -> Dreisatz/Verhältnisgleichung ...
Karsten schrieb:
> Ich hoffe ihr könnte mir ein bischen auf die Sprünge helfen :)
Und Du bist dir ganz sicher daß Deine Schaltung nicht doch nach
Ex-Schutz (Explosionis-Schutz) Richtlinie aufzubauen ist?
Gruß Anja
Im Tank passiert doch sowieso nichts, da das Gemisch völlig übersättigt ist...
Als Faustregel kann man sagen, dass der zweite Widerstand etwa in der Mitte deines Sensorbereiches liegen sollte (also etwa 39 Ohm). Das heißt jedoch, dass bei dir gute 120 mA durch den Spannungsteiler bei leerem Tank fließen.
Karsten schrieb: > Hi > > Ich wollte mich jetzt mal an die Digitalisierung meiner Tankanzeige > machen. Also ich habe einen Tankgeber, der besteht einfach aus einem > sich änderndem Widerstand. bei Tank leer 1,9 Ohm bei Tank voll 78,3 Ohm. Bist du sicher, dass dein Ohmmeter nicht im falschen Messbereich war?
Chris schrieb: > Als Faustregel kann man sagen, dass der zweite Widerstand etwa in der > Mitte deines Sensorbereiches liegen sollte (also etwa 39 Ohm). Das heißt > jedoch, dass bei dir gute 120 mA durch den Spannungsteiler bei leerem > Tank fließen. Einen noch größeren Spannungsunterschied zwischen Minimum und Maximum erhält man, wenn für den zweiten Widerstand nicht das arithmetische, sondern das geometrische Mittel nimmt, also etwa 12Ω. Dann liegt aber der Maximalstrom schon bei 355mA. Nein, ich würde für den zweiten Widerstand 1kΩ nehmen und die Spannung mit einem TS912 o.ä. um den Faktor 13 verstärken. ... falls die gemessenen Widerstandswerte tatsächlich stimmen :)
hab noch nicht mit dem thema beschäftigt aber gerade mal nachgeschaut. Tankgeber liegen wirklich im Ohm bereich! Welch ein unsinn!
Philipp Karbach schrieb: > hab noch nicht mit dem thema beschäftigt aber gerade mal nachgeschaut. > Tankgeber liegen wirklich im Ohm bereich! Welch ein unsinn! Wenn man nicht weiß wie das ganze System funktioniert, könnte man das wirklich zunächst für Unsinn halten. Also, erstmal mit dem Thema beschäftigen, bevor man lospoltert!
Am besten mal messen welcher Strom durch den Sensor fliesst wenn er normal eingebaut ist. Vileicht hängt da ja ein Hitzdrahtinstrument dran. Das wurde früher gerne genommen da es so träge ist, daß man kein Problem durch das Schwappen des Kraftstoffs im tank bekommt. Viel Spass beim Ausmessen den Kennlinie und linearisieren. Und viel Spass wenn beim Fahren in jeder Kurve der Tankinhalt zwischen 10 und 50 l hin und herpendelt :-).
Da muß ich mich meinem Vorposter anschließen. Hast Du schon mal gesehen wie kunstvoll ein Tank heute in die "freien Räume vor der Hinterachse" eingefügt ist? Da ist nichts mehr mit "linearem Zusammenhang zwischen Füllstand und Grundfläche"- trotzdem funktionieren die heutigen Tankanzeigen und Bordcomputer- Infos(Reichweite) erstaunlich genau. Ob die Anzeige wirklich beim Kurvenfahren schwankt, hängt auch vom Geber/Schwimmer und dessen (mechanischer) Dämpfung ab. Ich würde mir das Signal einfach mal anschauen (D.h. Beifahrer(In) soll das das Multimeter ablesen) Sonst kann das (die Dämpfung) der µC locker übernehmen.
Hallo, die Anteilname ist ja enrom hier in dem Forum. Also der die Ohmwerte stimmen zu 100%, da sie gemessen und verglichen wurden mit der Werksangabe. Bei meinem Auto handet es sich um einen Mercedes Benz 190 (W201). Mein Tank befindet sich nicht unterm Auto, sondern direkt hinter der Rücksitzbank. Es ist ein einfacher viereckiker Kasten. Gegen das Schwanken haben sich die Benzler damals was einfallen lassen. Der Tauchrohrgeber (ja, den tollen Namen trägt das Teil) ist ein Rohr, mit 2 kleinen Löchern drinn. In diesem Rohr ist ein Schwimmer, der auf Widerstansdraht schleift. Also schwankt es nicht bei Kurvenfahrten, da das Benzin in dem Rohr ja ne Weile brauchen würde um aus dem Rohr zu kommen. Solche Kurve fahre ich eher selten:) Ih probier mal mit Getad
Hallo nochmal habe den Spannungsteiler aufgebaut und mal durchgemessen. Also Tankgeber habe ich jetzt ein 100Ohm Poti genommen (was aber gemessen maximal nur 84 Ohm hat) Wenn ich das Poti fast auf 100 drehe, dann messe ich eine Spannung von 0,3 V, wenn ich es auf fast null drehe dann zeigt mir mein Messegerät 3,87 Volt an. Als Versorungsspannung habe ich stabilisierte 5V genommen. Ich verstehe aber immer noch nicht, welche Befehle ich wie einsetzten muss. Ich habe jetzt versucht etwas mit dem Befehl Getadc rumprobiert. Wie muss ich die Befehle definieren und was für Variablen muss ich dazu definieren? Ich kann ja nicht für jeden Widerstanswert die Füllmenge eintragen. Ich möchte die Informationen auf einen LCD anzeigen lassen, so als Prozentangabe. Das LCD funktioniert schon, aber wie kann ich mir darauf eine Variable anzeigen lassen? Hättet ihr vllt einen Code-Brocken für mich? Danke schon mal für die bisherige Hilfe.
Karsten schrieb: > Ich verstehe aber immer noch nicht, welche Befehle ich wie einsetzten > muss. Ich habe jetzt versucht etwas mit dem Befehl Getadc rumprobiert. > Wie muss ich die Befehle definieren und was für Variablen muss ich dazu > definieren? Gibt ews in der BASCOM Hilfe kein Beispiel? > Ich kann ja nicht für jeden Widerstanswert die Füllmenge > eintragen. Nö. Aber µC können rechnen. Mann kann auch eine Formel aufstellen, wie die Füllmenge mit der gemessenen Spannung (eigentlich dem ADC Wert) verknüpft ist. > Ich möchte die Informationen auf einen LCD anzeigen lassen, > so als Prozentangabe. Du musst dir nur die % ausrechnen :-9 > Das LCD funktioniert schon, aber wie kann ich mir > darauf eine Variable anzeigen lassen? Und schon wieder der Verweis in die BASCOM Hilfe. Diesmal heisst der Befehl pikanterweise 'LCD'. Du solltest dir wirklich die BASCOM Hilfe genauer durchsehen oder nach einem Tutorial dafür suchen.
Hallo, wenn mir die Bascom Hilfe in diesem fall weitergeholfen hätte, dann müsste ich euch ja nicht mit diesen Fragen belästigen.
Karsten schrieb: > Hallo, > > wenn mir die Bascom Hilfe in diesem fall weitergeholfen hätte, Du hast doch in Wirklichkeit noch nicht einmal hineingeschaut und dir angesehen welche Befehle es gibt.
Wenn man sich so einige Postings anschaut wäre Hellsehen nicht schlecht. Hier reicht aber auch Erfahrung.
Die "schlauen" Antworten verschiedener Schreiber hier sind mal wieder typisch für dieses Forum. Karsten, stell deine Fragen lieber im Roboter-Netz, da gibt es klügere Antworten und mehr Hilfe.....
Karsten tut sich vieleicht ein bischen schwer mit diesem Thema und auch mit der dortigen Hilfe. Ich denke mal, es sind hier nicht alle zu faul zum Lesen, die sich hier mit solchen Fragen melden, die für erfahrene Bascom-User kein Problem darstellen. Dann hilft man halt mit vernünftigen Argumenten und Tips und fertig. mfg
> Karsten tut sich vieleicht ein bischen schwer mit diesem Thema ...
Dann soll er kleiner anfangen und sich das notwendige Wissen erarbeiten,
so wie es ein "Anfänger" macht.
Die Bascom-Hilfe zeigt, wie man einen ADC-Messwert ermittelt. Falls
diese Infos nicht reichen, dann gibt es noch das Datenblatt zum
Controller, in dem die ADC-Einheit recht gut beschrieben ist.
Das Umrechnen des Messwertes in den gewünschten Zahlenwert zur Anzeige
(Skalieren) erfordert das Mathe-Wissen der Grundschule. Wie man das in
BASIC formuliert, erfährt man in der Bascom-Hilfe (oder in der Hilfe
eines anderen Basic-Dialektes, z.B. QBASIC).
Wenn Karsten ein "Anfänger" ist, dann sollte er jetzt langsam Eines tun,
nämlich "anfangen". Und zwar mit eigenen Recherchen und eigenen
Denkprozessen und nicht (nur) damit, anderen Leuten Löcher in den Bauch
zu fragen und die Antworten aufgrund fehlender eigener Mitarbeit ja doch
nicht zu verstehen...
Und nein, fragen ist hier NICHT verboten, aber etwas eigene Mitarbeit
sollte schon mit dabei sein.
...
Noch ein Gast schrieb: > Karsten tut sich vieleicht ein bischen schwer mit diesem Thema und auch > mit der dortigen Hilfe. Was bitte ist schwer daran, ein Beispiel aus der Hilfe mit Cut&Paste zu übernehmen, die Pins anzupassen und das einfach mal auszuprobieren? Ob wir hier ein Beispiel zusammenstellen oder gleich das Beispiel aus der Hilfe benutzt wird, ist ja wohl Jacke wie Hose. Wenn es konkrete Fragen gibt, dann her damit. Aber diese Rundumschlagfragen "Ich will alles wissen, was es zum Thema ADC zu wissen gibt, aber bitte in nicht mehr als 20 Wörter" funktionieren einfach nicht. Programmieren heißt in erster Linie: Doku lesen, Beispiele ausprobieren, Beispiele analysieren, Doku lesen, über das Gelesene nachdenken, Doku lesen ... mit der besonderen Betonung auf 'Doku lesen'
Ja werd ich wohl machen. Aussagen wie lies die Hilfe bringen mich echt nicht weiter.
Abgesehen davon, das es seit 5 Posts nicht mehr um das eigentliche Thema geht, ist das ja ein echt TOP Forum-.-. Aber ich hoffe ihr bekommt mal solche Antworten auf Gebieten von denen ihr keine Ahnung habt. Vllt postet ihr ja mal in ein Autoforum und bekommt dann solche netten Antoworten wie: Lies das Handbuch zum Auto.
Karsten schrieb: > Ja werd ich wohl machen. Aussagen wie lies die Hilfe bringen mich echt > nicht weiter. Dann stell konkrete Fragen. Aber niemand hier wird dir Dinge erzählen, die du genausogut auf eigene Faust aus der Hilfe herausziehen kannst. Um den Befehlssatz von BASCOM kennen zu lernen, genügt es am Anfang in der Hilfe in der linken Leiste mit dem Auge von oben nach unten zu schweifen. Die Dinge die du nicht kennst und die für dein Problem nicht relevant erscheinen, lässt du erst mal links liegen. Du suchst einen Befehl zur Ausgabe auf dem LCD. Wonach wird man in der Hilfe suchen? Wie wird man so etwas nennen? Da fallen einem Begriffe wie PRINT, OUTPUT, WRITE sofort ein. Also einfach in der Hilfe nachsehen ob es die gibt und was sie machen wenn es sie gibt. Nope. Keines trifft zu. ALso nochmal die Befehlsliste überfliegen. Und dann fällt einem plötzlich ein Befehl namens 'LCD' auf. Hmm. Ausgabe auf LCD - Befehl LCD. Da könnte ein Zusammenhang bestehen. Also - draufklicken und nachlesen - Bingo! Du musst lernen dir selbst zu helfen. Das ist eines der wichtigsten Dinge in der Programmierung. Sei froh, dass du wenigstens eine gute Hilfe hast, in der alles aufgeführt ist. Die andere Fraktion, die der C Programmierer, sollte sich eigentlich Literatur kaufen und tut es nicht. Und sie kämpfen mit genau dem gleichen Problem: Sie wissen gar nicht, was sie fix&fertig zur Verfügung haben bzw. die grundlegensten Dinge funktionieren. Warum? Weil sie nichts haben, wo sie nachlesen könnten. Bei ihnen lautet die vernünftigste Lösung: Buchhandlung gehen, Buch kaufen. Bei dir lautet eine, nicht unbedingt die vernünftigste, Lösung: In die Hilfe reinschauen. Die angegebenen Beispiele studieren. Ausprobieren.
Karsten schrieb: > postet ihr ja mal in ein Autoforum und bekommt dann solche netten > Antoworten wie: Lies das Handbuch zum Auto. Wenn die Frage lautet "Wie geht die Motorhaube auf", IST das eine angemessene Antwort. Und ja: Ich habe das Handbuch zu meinem Auto gelesen. Schon alleine weil ich wissen wollte * welche Symbole es am Armaturenbrett gibt und was sie bedeuten * wo die Einfüllöffnungen für Verbrauchsgüter sind (Waschwasser, Öl) * welches Motoröl ich brauche * ob ich zum Fremdstarten eine andere Autobatterie anschliessen darf und wo das zu machen ist. * wo der Hersteller den Wagenheber versteckt hat * bei welchen Drehzahlen ich den geringsten Verbrauch habe * was es sonst noch so gibt Das ganze hat mich einen Abend gekostet und wenn ich mir auch nicht alles gemerkt habe, so weiß ich doch ungefähr was im Handbuch steht und was nicht, wo mein Handbuch ist und ehe ich Fragen stelle schaue ich erst mal da rein, ob da nicht zu meiner Frage etwas steht. Zb wie man an die Blinkerbirnen hinten rann kommt. Und ja, das Handbuch lesen hat sich für mich auch schon in barer Münze bezahlt gemacht. Als bei einem Fremdstart mit einem anderen Fahrzeug die Steuerelektronik den Geist aufgegeben hat, hat zwar die Werkstatt die Hände über dem Kopf zusammengeschlagen und gemeint, das man das mit den neuen Autos nicht mehr dürfe. Als ich dann das Handbuch gezückt habe und ihm gezeigt habe, dass davon nichts im Handbuch steht und dort ganz im Gegenteil die exakte Prozedur zum Anschluss eines Fremdbatterie mit laufendem Motor des Spenderfahrzeugs angegeben ist, musste die Werkstatt und die Aurofirma klein beigeben und den Schaden aus eigener Tasche zahlen. Den vermeintlichen 'Benutzerfehler', den sie mir anhängen wollten konnte ich mit Handbuch zu einem Herstellerfehler ummünzen.
Ihr hättet Karsten mehr geholfen wenn ihr nichts gepostert hättet... Wenn ihr alle nicht bereit seid eine vernünftige Antwort zu posten, dann lasst es einfach. Irgendwer wird sich schon aufopfern ;)
Karl heinz Buchegger schrieb: > Wenn die Frage lautet "Wie geht die Motorhaube auf", IST das eine > angemessene Antwort. Wenn meine Frage gewesen wäre: Wie versorge ich den AVR mit Spannung, dann hät ich die Antwort so hingenommen. Aber da DU ja nicht in der Lage bist mir vernünftig und fachlich zu antworten, würd ich sagen du hälst dich jetzt mal aus diesem Thema fern und machst einen eigen Thread auf mit dem Namen: Ich suche Streit. Du hast Zeit mir hier halbe Romane zu schreiben aber, keine Zeit mal einen Codefetzten zu posten oder mal eine kurze Erklärung abzugeben. Das ist schon echt arm. Wenn du von dem ADC wie ich keine Ahnung hast, dann halt dich doch einfach mit dem schreiben zurück und schau fleißig zu was die Leute schreiben, die Ahnung davon haben. Ach übrigens, der Öleinfüllstutzen ist immer in der Nähe des Motors (rein von der Logik her) und da ist auch meistens so eine kleine Ölkanne drauf bzw es steht OIL drauf. Stell dir vor, ich habe das Handbuch von meinem Auto NICHT gelesen und ihn trotzdem gefunden. Zu deinem "Dann stell konkrete Fragen" Sieh mal in den Startthread. Da stehen Fragen drinn, aber den hast du wahrscheinlich nicht mal gelesen.
Karsten, Du bist ungerecht. Gerade Karl-Heinz bewundere ich immer wieder wegen seiner Ausdauer, wenn er Anfängern die ersten Schritte erklärt. Trotzdem will ich Deinen Wunsch nach Codefetzen erfüllen. Hier findest Du ein paar Spielereien mit dem ADC: http://www.hanneslux.de/avr/divers/pm24/index.html Da ist auch eine Bascom-Lösung dabei: http://www.hanneslux.de/avr/divers/pm24/VM_tn24_1.bas Und Du wirst lachen, Das Ding funktioniert sogar, obwohl der Lösungsweg nicht in irgendwelchen Foren zusammengefragt wurde... ;-) Natürlich funktioniert die ASM-Version bedeutend besser (sie verfügt zusätzlich über eine recht derbe Messwertberuhigung): http://www.hanneslux.de/avr/divers/pm24/vm24ko01.asm ...
Karsten schrieb: > mit dem Namen: Ich suche Streit. Du hast Zeit mir hier halbe Romane zu > schreiben aber, keine Zeit mal einen Codefetzten zu posten oder mal eine > kurze Erklärung abzugeben. Das war deine Frage > Ich verstehe aber immer noch nicht, welche Befehle ich > wie einsetzten muss. Ich habe jetzt versucht etwas mit > dem Befehl Getadc rumprobiert. Wie muss ich die Befehle > definieren und was für Variablen muss ich dazu definieren? Das ist das Beispiel aus der Hilfe
1 | '-------------------------------------------------------------------------------- |
2 | 'name : adc.bas |
3 | 'copyright : (c) 1995-2005, MCS Electronics |
4 | 'purpose : demonstration of GETADC() function for 8535 or M163 micro |
5 | 'micro : Mega163 |
6 | 'suited for demo : yes |
7 | 'commercial addon needed : no |
8 | 'use in simulator : possible |
9 | ' Getadc() will also work for other AVR chips that have an ADC converter |
10 | '-------------------------------------------------------------------------------- |
11 | |
12 | $regfile = "m163def.dat" ' we use the M163 |
13 | $crystal = 4000000 |
14 | $hwstack = 32 ' default use 32 for the hardware stack |
15 | $swstack = 10 'default use 10 for the SW stack |
16 | $framesize = 40 'default use 40 for the frame space |
17 | |
18 | 'configure single mode and auto prescaler setting |
19 | 'The single mode must be used with the GETADC() function |
20 | 'The prescaler divides the internal clock by 2,4,8,16,32,64 or 128 |
21 | 'Because the ADC needs a clock from 50-200 KHz |
22 | 'The AUTO feature, will select the highest clockrate possible |
23 | Config Adc = Single , Prescaler = Auto |
24 | |
25 | 'Now give power to the chip |
26 | Start Adc |
27 | |
28 | 'With STOP ADC, you can remove the power from the chip |
29 | 'Stop Adc |
30 | |
31 | Dim W As Word , Channel As Byte |
32 | Channel = 0 |
33 | |
34 | 'now read A/D value from channel 0 |
35 | Do |
36 | W = Getadc(channel) |
37 | Print "Channel " ; Channel ; " value " ; W |
38 | Incr Channel |
39 | |
40 | If Channel > 7 Then Channel = 0 |
41 | Loop |
42 | |
43 | End |
Was genau verstehst du jetzt daran nicht? Die eigentliche Arbeitsschleife besteht aus 4 Anweisungen, die jede für sich den Vorgang der abläuft gut beschreibt, die Variablennamen sind sogar sprechend und es sind sogar Kommentare enthalten, die beschreiben was da passiert. Dass du am Anfang den m163def.dat durch das dat File für deinen eigenen Prozessor austauchen musst, sollte eigentlich klar sein, wenn man nur die geringste AHnung hat. Was also ist dein Problem mit diesem Code Schnipsel? Ich such keinen Streit. Aber mir stinkt es, wenn du erwartest dass wir dir hier alles zum Arsch tragen anstatt selbst ein wenig Initiative zu zeigen. Du hast Problem mit dem Code. Welche sind das? Wo ist der Code mit dem du Probleme hast? Was denkst du ist das Problem? Woran machst du dein Problem fest? Welche Überlegungen hast du angestellt? > Ach übrigens, der Öleinfüllstutzen ist immer in der Nähe > des Motors (rein von der Logik her) und da ist auch meistens > so eine kleine Ölkanne drauf bzw es steht OIL drauf. Stell dir > vor, ich habe das Handbuch von meinem Auto NICHT gelesen und ihn > trotzdem gefunden. Super! Ich gratuliere. Vielleicht solltest du dich mehr auf Autos konzentrieren anstatt auf Programmiersprachen, wenn du da so ein Wiffzack bist, der kein Handbuch braucht :-)
@ Karsten Das Du Karl Heinz hier angehst ist absolut daneben. Gerade er ist einer derjenigen, die hier immer wieder und sehr konstant zeigen, das sie gewillt sind mit sehr viel Geduld auch noch so ungeschickt gestellte Fragen zu beantworten und den Fragern die Würmer aus der Nase zu ziehen. Das Problem liegt auch meiner Auffassung nach bei Dir. Lies endlich die verd... Hilfedatei.
Was mir auffällt ist, das dieses Anspruchsdenken an die freiwilligen Helfer immer mehr zunimmt. Unzureichend formulierte Fragen ohne ausreichendes Grundwissen und dann Vorwürfe wenn man die Fragestellung kritisiert. Projekte mit denen sich die Fragesteller ganz klar selbst überfordern wobei die Probleme dann hier gelöst werden sollen. Sogar bei avrfreaks, das vor etwa einem Jahr noch relativ frei von solchen Fällen war nimmt das zu.
Wenn ich daran denke, das viele von uns hier in den 80ern angefangen haben, ohne Internet, nur englische Fachbücher und Datenblätter und am Wochenende dann nur noch die Hoffnung das am Montag die Amerika Gedenk Bibliothek (oder was sonst so in der Nähe war) wieder aufmacht. Da hat man das verdammte Datenblatt dann so lange studiert bis man es endlich verstanden hat. Man hat sich durchgebissen weil man es ums Verrecken einfach verstehen wollte. Assemblerlistings studiert bis einem die Zahlen vor den Augen verschwammen. Und jetzt muss man sich von irgendwelchen Kiddies hier dumm kommen lassen.
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.