PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tankfüllstandsgeber messen mit Attiny13?



Joggel84
02.08.2011, 15:43
Hallo
ich hoffe ihr könnt mir bei meinem nciht Robotik-problem auch weiter helfen :)
Folgender Sachverhalt:

Ich habe einen Tankfüllstandsgeber der bei leerem Tank einen wert von ca 2-0 Ohm liefert und bei nahe zu vollem Tank ca 40 Ohm.
Nun habe ich mir gedacht das ich den wert über einen Spanungsteiler über einen ADC von einem ATTiny den ich noch daheim rumliegen habe, messen könnte. So wie ich mich da rein gelesen habe bekomme ich ja dann 10 bit Werte raus von 0-1024 heraus.
Soweit Richtig?

Nun zur eigentlichen "Arbeit":
Diese werte von 0-1024 könnte ich ja nun über einen 2. ADC wieder rausschicken um einen Digitalen Poti anzusteuern oder? (Mit Einwenig Programmierarbeit da die mir vorliegenden Digipotis flanken gesteuert sind)

Hintergrund des Projekts ist, das ein Tankgeber verbaut ist der nicht zur Tankanzeige passt.
was ich nun gerne Anpassen würde da ich nicht wirklich an den Tankgeber komme um diesen zu wechseln.

Vielleicht könnt ihr mir bei der Beschaltung des Attiny helfen da ich etwas verwirrt bin bezügglich Refferenz Spannungen.
Vom Programmiererischen Teil müsste das ja relativ einfach umzusetzen sein denke ich mir.

MfG
Joggel84

Kampi
02.08.2011, 15:50
Ich habe einen Tankfüllstandsgeber der bei leerem Tank einen wert von ca 2-0 Ohm liefert und bei nahe zu vollem Tank ca 40 Ohm.
Nun habe ich mir gedacht das ich den wert über einen Spanungsteiler über einen ADC von einem ATTiny den ich noch daheim rumliegen habe, messen könnte. So wie ich mich da rein gelesen habe bekomme ich ja dann 10 bit Werte raus von 0-1024 heraus.
Soweit Richtig?

Fast richtig. Es kommen 1024 Werte bei 10 Bit raus. Diese gehen von 0-1023. 1024 wären schon wieder 11 Bit.



Nun zur eigentlichen "Arbeit":
Diese werte von 0-1024 könnte ich ja nun über einen 2. ADC wieder rausschicken um einen Digitalen Poti anzusteuern oder? (Mit Einwenig Programmierarbeit da die mir vorliegenden Digipotis flanken gesteuert sind)

Ein ADC ist ein "Analog to Digital Converter" d.h. er wandelt eine Analoge Spannung in einen Digitalen Wert um. Wenn du aus deinem Digitalen Wert einen Analogen machen willst brauchst du einen DAC (Digital to Analog Converter). Oder willst du die Dinger über ihr Interface ansteuern? Dann musst du die Pins von dem dementsprechenden Interface z.B. I²C nehmen. Da brauchste nicht zwangsweise einen ADC-Pin.



Vielleicht könnt ihr mir bei der Beschaltung des Attiny helfen da ich etwas verwirrt bin bezügglich Refferenz Spannungen.
Vom Programmiererischen Teil müsste das ja relativ einfach umzusetzen sein denke ich mir.

Wie genau muss die Referenzspannung sein? Weil sonst nimm Vcc als Referenzspannung oder Vcc/2. Wenn sie genau sein muss musst du eine Referenzdiode nehmen die eine ganz genaue Spannung ausgibt.

PICture
02.08.2011, 15:58
Hallo!

@ Joggel84

Sorry, aber aus deiner Beschreibung kann ich das eigentliches Ziel deines Vorhabens leider nicht erkennen. :(

Reicht es nicht aus den Stand aus dem vorhandenen Tankfüllstandsgeber auf einem Display in gewünschter Form darzustellen ? :confused:

Joggel84
02.08.2011, 17:28
Hi
so erstmal danke für die schnelle antworten :)

Als ergänzung der Hintergründe:
Es ist bereits eine Tankanzeige verbaut aber diese stimmt nich bei vollem Tank passt die anzeige nur bei leerem Tank wird 75% angezeigt.

Die Variante mit dem Display möchte ich nicht gehn da eine Digitale Anzeige auf einem "alten" Trike nicht schön ausschaut ^^ daher möchte ich gerne die Analoge weiter nutzen.

Und die Versorgungsspannung muss ich sowieso auf 5Volt Stabilisieren da die Bordspannung von 12 - 13,8 Volt zu hoch ist, daher denke ich müsste diese Ausreichend sein da es bei dem Projekt nicht um 100% Genauigkeit geht, sondern nur um die einigermassen richtige Anzeige vom 0-100% +- Bauteil toleranzen usw :)

Gäbe es den irgendwo eine Beispielschaltung für den Eingang + Referenzschaltung?

Und als Ausgangssignal müsste mir eigentlich auch ein Digitalausgang reichen ich muss mal schaun wie die Digipotis angesteuert wurden die ich noch hier habe.

MfG
Joggel84

Kampi
02.08.2011, 17:37
Hier hast du ein Bild wie du den A/D-Wandler beschaltest. Das Poti ist dafür da um eine Variable Referenz zu haben.

http://www.kreatives-chaos.com/images/39.png

Du kannst den AREF Eingang aber genauso gut an +5V (bei 5V Betriebssspannung!) oder an GND legen.

http://www.kreatives-chaos.com/images/41.png

Wenn es sich um eine Analoge Tankanzeige handelt wieso nimmst du dann nicht einfach einen billigen D/A Wandler? Der ist von der Programmierung her einfacher, weil du in Bascom einfach nur schreiben musst:

PortX = PrintBin (A/D-Wandler Wert)

und schon gibt er dir das was der A/D-Wandler gewandelt hat als Binärcode an dem Port aus wo dein D/A-Wandler ist. Du kannst den A/D-Wandlerwert natürlich auch noch vorher minimieren oder so je nachdem in welchem Bereich du den haben musst. Und so ein D/A-Wandler ist sicher Stromsparender als ein Digitalpoti. Und soweit ich weiß haben Digitalpotis auch Toleranzen die jenseits von gut und böse sind (bis 50%) oder irre ich mich da? Und wenn du das Ding an Board eines Trikes betreibst sorg für genug Sicherheit für die Schaltung! Weil solche Akkus sind unberechenbar :D

PICture
02.08.2011, 17:37
Es ist bereits eine Tankanzeige verbaut aber diese stimmt nich bei vollem Tank passt die anzeige nur bei leerem Tank wird 75% angezeigt.

Dann könnte es ausreichen ein Widerstand bzw. eine Zenerdiode seriell mit dem vorhandenen analogen Messgerät anzuschalten (einfachste Lösung, wenn keine hoche Genauigkeit notwendig ist). ;)

Übrigens, es sollte auch ausreichen eine PWM Spannung (es ist ja DAC) durch Tiefpass auf den bereits vorhandenen analogen Messgerät ohne Digitalpoti anzulegen.

ranke
02.08.2011, 21:03
Dann könnte es ausreichen ein Widerstand bzw. eine Zenerdiode seriell mit dem vorhandenen analogen Messgerät anzuschalten

Dieser Vorschlag scheint mir auch am ehesten sinnvoll zu sein.
Die Daten vom Füllstandsgeber hast Du uns schon verraten, was noch interessant ist, wäre Strom und Spannung am Anzeigegerät bei Anzeige "Voll" und Anzeige "Leer". Liegen irgendwelche Anschlüsse bereits auf einem bestimmten Potential (z.B. Masse)? Hat der Geber noch einen dritten Anschluß, wie ein Potentiometer?

Joggel84
03.08.2011, 08:06
Guten morgen erstmal


Dieser Vorschlag scheint mir auch am ehesten sinnvoll zu sein.
Die Daten vom Füllstandsgeber hast Du uns schon verraten, was noch interessant ist, wäre Strom und Spannung am Anzeigegerät bei Anzeige "Voll" und Anzeige "Leer". Liegen irgendwelche Anschlüsse bereits auf einem bestimmten Potential (z.B. Masse)? Hat der Geber noch einen dritten Anschluß, wie ein Potentiometer?

Also zu der Anschlussbelegung der Tankanzeige kann ich leider nur die Anschlüsse geben da leider kein Hersteller , Seriennnummer oder ähnliches Erkennbar ist.
Da wären einmal Batterie + und Masse also die Versorgungsspannung.
Dann noch ein Kabelsteckschuh für die Glühbirne
Und noch ein Kabelsteckschuh für einen Anschluss mit der Bezeichnung G , welchen ich als Gebersignal identifizieren würde da dort der Tankgeber angeschlossen ist. Und die andere Seite des Gebers liegt an Masse soweit ich das richtig erkennen und ausmessen konnte.

Daher denke ich mir das es nicht so einfach ist wenn ich nur ein Spannungs- oder PWMSignal anlegen würde, weil die Anzeige scheinbar eine SPannung auf den Tankgeber gibt um das zu messen. (Muss ich noch einmal genauer nachmessen wenn ich das Trike wieder zuhause habe )
Daher dachte ich mir das als einfachste Variante einfach statt dem vorhandenen Poti im Tankgeber einfach einen anderen zu nehmen. Zur Ansteuerung kam mir da ein µC eigentlich am einfachsten vor.
Aber nach ein wenig überlegen kam mir der Gedanke das ich bei voll getanktem Tank den Poti ja wieder ab nullen muss bzw eigentlich bei jedem Mal wenn die Zündung angemacht wird damit die Anzeige noch stimmt.

Für einfachere Varianten bin ich auch sehr dankbar ^^
Aber wenn ich einen Widerstand in Reihe mit dem Geber setze dann ändere ich ja eigentlich nur den 0 Punkt Bsp.:
Wenn ich einen 30 ohm Wider stand in reihe zu dem Tankgeber anschließe dann würde ich ja nie wieder 0 Ohm bekommen dem entsprechend auf der Tankanzeige kein VOLL mehr angezeigt bekommen, und der Grund für die Bastelei ist ja das ich nicht nur eine Anzeige von 75%-100% haben will wie momentan sondern annähernd von 0%-100%

Hoffe das war nun nicht zu Verwirrend geschrieben :)

MfG
Joggel

Kampi
03.08.2011, 09:31
Naja du schaltest den 30 Ohm Widerstand an Spannung und in Reihe dazu den Tankgeber. Paralell zum Tankgeber kommt der µC. Nun variiert der Tankgeber von 0-40Ohm und dementsprechend auch der Spannungsabfall am Tankgeber. Wenn du jetzt sag ich mal statt 30Ohm einen 40Ohm Widerstand nehmen würdest, hättest du eine Spannung am Tankgeber von 0-2,5V (bei 5V Betriebsspannung der Reihenschaltung). Dementsprechend kannst du annehmen das 0V = Leer ist und 2,5V = Voll ist. Den Rest kannst du dir dann einteilen.
Genauso kannst du es auch bei einem 1kOhm Festwiderstand und den 40Ohm vom Füllgeber machen. Nur sind dann halt die Spannungswerte anders.
Was du jetzt nur noch wissen musst wie verhält sich der Widerstannd des Gebers zu der Füllmenge. Ist das linear oder exponentiel oder sonst was......wenn es linear ist ist der Programmieraufwand einfach ansonsten wird es etwas komplizierter.

Joggel84
03.08.2011, 10:33
Sagen wir mal so mir persönlich ist das nicht ganz so wichtig ob der Geber linear ist oder nicht wenn die Anzeige später halbvoll anzeigt und in Echt bissl mehr oder weniger drin ist, ist erstmal zweitrangig.
Durch die Endpunkte des Gebers hab ich zumindest die werten Wann er Voll und wann er leer ist, das ist mir persönlich das wichtigste.

Mal noch eine ganz doofe Frage:
Ich kann den ADC des µC ja nich sagen wenn an Pin X 2 Volt anliegen sondern ich muss ja dann mit den werten von 0-1023 arbeiten. Richtig?
Und da sich die 1023 dann theoretisch auf die Referenzspannung beziehen (Angenommen ich nehme die 5V von VCC) dann müssten ja bei 2,5 Volt ca 511 angegeben sein um das richtig zu bearbeiten. Auch richtig?

Hab bis jetzt meist immer mit Bibliotheken gearbeitet und kratz mit dem Projekt jetzt die "Rohprogrammierung" an.

Hoffe meine Überlegung passt soweit .

MfG
Joggel

Kampi
03.08.2011, 10:37
Ja die 1024 Werte beziehen sich immer auf die Referenzspannung. Bei 5V Referenzspannung ist jeder Schritt 5V/1024. Bei 2,5V Referenzspannung sind es 2,5V/1023.
Und bei 5V Referenzspannung ist bei 512 = 2,5V.

021aet04
03.08.2011, 10:38
Du musst wie du schon vermutest mit den Werten von 0-1023 arbeiten. Der Wert 0 bedeutet 0V und 1023 bedeutet dann Referenzspannung (bei 5V Referenz ist 1023 5V).

Du solltest öfters messen und einen Mittelwert bilden (z.B. 5x messen und den Mittelwert gibst du an die Anzeige aus.

MfG Hannes

ranke
03.08.2011, 12:51
Aus Deiner bisherigen Beschreibung lese ich folgendes heraus:
Die Schaltung ist im Prinzip: +Batt - Anzeigegerät - Geber - Masse
Der Geber hat einen Widerstandsbereich von 0 bis 30 Ohm. Null Ohm = Voll, 30 Ohm = leer.
Das Anzeigegerät zeigt bei Geberwiderstand Null Ohm 100% an, bei Geberwiderstand 30 Ohm 75%.
Man könnte den Meßbereich durch Parallelschalten eines Widerstands zum Anzeigegerät anpassen, allerdings wird der Strom durch den Geber dann womöglich unzulässig hoch. Außerdem hat das Anzeigegerät noch einen zusätzlichen Masseanschluß, der auf eine etwas kompliziertere Schaltung schließen lässt. Vielfach hat man in älteren Anzeigen noch eine Kompensation der schwankenden Bordnetzspannung eingebaut, die ohne Transistoren funktioniert (es wäre blöd, wenn die Tankuhr mit dem Bordnetz schwankt). Deshalb scheint es mir am sinnvollsten, man schraubt die Anzeige vorsichtig auf und stellt fest, was wirklich drin ist und wie alles funktioniert. Dann kann man weitersehen, was für eine Lösung in Frage kommt.