Forum: Mikrocontroller und Digitale Elektronik ADC Spannung genauer messen


von Dominik (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
ich weiß das es diverse Beiträge mit genauerer Spannungsmessung via ADC 
am AVR gibt.
Allerdings habe ich mich gefragt ob man den ADC, nicht auf eine Art 
"eichen" kann.

Die Vorstellung:
Der ADC soll mir im Bereich von 8V - 15V die Spannung mit einem Fehler 
von <0,5V Darstellen können.

Durch einen 4:1 Spannungsteiler wollte ich die Spannung messen.
Die Widerstände sind auf 800k zu 200k festgelegt.

Im Anhang ist ein Bild des kompletten Aufbaus zu sehen.
Es wird hier die Eingangsspannung vor dem 7805 gemessen.

Für eure Hilfe bedanke ich mich jetzt schonmal

von Manu (Gast)


Lesenswert?

Schaltplan wäre etwas übersichtlicher als das Board selbst. Wäre gut, 
wenn du den vielleicht posten könntest, dann liese sich eine Aussage 
leichter treffen.

von Michael L. (hasimaus)


Lesenswert?

Hallo Dominik,

Schaltplan wäre besser gewesen.

Gruß

von Jens G. (jensig)


Lesenswert?

Wo ist denn das Problem, bei einer Diff. von 7V die Genauigkeit auf 0,5V 
zu bekommen. Das kannste mit einem 4bit ADC machen, der 16 Stufen 
unterscheiden kann. 14 brauchste nur.

von Andreas K. (derandi)


Lesenswert?

Wie kommen die Bauteile unter den ATMega?

Er misst eine Spannung von 2...3,75V , also könnte er maximale Auflösung 
erreichen, indem er die Analog-Referenz möglichst nahe an das maximum 
annähert, machen wir mal 4 Volt daraus.
Wenn man von den 10 Bit Auflösung aber auch nur 8 benutzt kann man 
trotzdem noch auf 15,6 mV genau auflösen.

Nur, mir scheint als ob du das Ding ins Auto einbauen willst, da wirst 
du gut daran tun einen Überspannungsschutz dranzubauen.

von Uwe .. (uwegw)


Lesenswert?

Ja, die Auflösung ist kein Problem. Wenn möglich, solltest du den 
Spannungsteiler allerdings etwas niederohmiger dimensionieren. Sonst 
läuft die Messung langsamer, weil der Eingangskondensator im AVR nicht 
schnell genug umgeladen werden kann.

von Dominik (Gast)


Angehängte Dateien:

Lesenswert?

Anbei nochmals der Schaltplan.

Ich habe hier ein Testaufbau gemacht und auch direkt mit nem Voltmeter 
gemessen.

Das Problem war halt die recht große Differenz.
Mein Problem ist ich weiß nicht wie das genauer hinzubekommen ist.

Die Platine ist noch nicht hergestellt.
Was wäre denn ein Typischer Wert für solch einen Spannungsteiler?

Wie am Dateinamen auch schon richtig erkannt soll das ganze später im 
Auto verbaut werden.
Überspannungsschutz mittels Drosselspule und Sicherung sollte kein 
Problem darstellen.

Das Display wird aufgesteckt, und darunter ist recht viel Platz für den 
µC und den ganzen Rest. (Entsprechende Aufbauten hab ich schon gemacht)

lg

von Anja (Gast)


Lesenswert?

Dominik schrieb:
> Durch einen 4:1 Spannungsteiler wollte ich die Spannung messen.
> Die Widerstände sind auf 800k zu 200k festgelegt.

Schau mal ins Datenblatt welchen Quellwiderstand der ADC maximal 
verträgt damit er innerhalb der sampling time aufs LSB einschwingen 
kann.
Außerdem solltest Du einen Kondensator parallel zum ADC-Eingang 
(zwischen ADC-Eingang und Analog-Gnd) als Tiefpaß (bzw. anti-Aliasing 
Filter schalten).

Nur so mal als Tipp: Wenn du 22K und 10K verwendest hast Du einen 
Meßbereich von 16V bei 5V Referenzspannung.

Gruß Anja

von Dominik (Gast)


Lesenswert?

Anja schrieb
>Außerdem solltest Du einen Kondensator parallel zum ADC-Eingang
>(zwischen ADC-Eingang und Analog-Gnd) als Tiefpaß (bzw. anti-Aliasing
>Filter schalten).

Danke wird behoben.

Im Datenblatt steht, das die Signalquelle eine Impedanz von 10kohm nicht 
überschreiten sollte.
Also demnach wirklich zu stark dimensioniert.

Aber was sagt mir das nun über meine Genauigkeit aus?

von Flo (Gast)


Lesenswert?

Der ADC löst auf 10bit auf, sprich du hast 1024 Werte, die auf 
meinetwegen 16 Volt aufgeteilt werden. -> minimal messbarer Unterschied 
sind etwa 16 mV.

Allerding solltest du dich noch über Schutzschaltungen fürs Auto schlau 
machen, sonst lebt deine Platine am Boardnetz nicht lang.

von Dominik (Gast)


Lesenswert?

>Allerding solltest du dich noch über Schutzschaltungen fürs Auto schlau
>machen, sonst lebt deine Platine am Boardnetz nicht lang.

Wird noch gemacht.

Alles klar. Danke nochmals für eure Hilfe.
Schönen Abend wünsche ich.

von dummy (Gast)


Lesenswert?

Die Hintergrundbeleuchtung wird über den Portpin wohl nur schwach
leuchten (210mA laut Datenblatt). Kannste also knicken. Und D0-D3
am LCD lass mal besser unbeschaltet.

von Spezi (Gast)


Lesenswert?

Hallo,

wo ist die Filterbeschaltung für den AVcc-Pin? Dieser sollte wie im 
Datenblatt beschrieben vorgesehen werden, insbesondere bei Verwendung 
der voller 10bit-Auflösung des ADC.

Wenn die Hintergrund-Beleuchtung des Displays wirklich ca. 200mA 
benötigt, solltest du dir Gedanken über die Verlustleistung am 
7805-Regler machen.
(8V Spannungsabfall bei laufendem Automotor und 200mA Strom macht 
immerhin schon 1,6W; ohne Kühlkörper bzw. Kühlkupfer wird das wohl 
nichts ...)

von Dominik (Gast)


Lesenswert?

>Die Hintergrundbeleuchtung wird über den Portpin wohl nur schwach
>leuchten (210mA laut Datenblatt). Kannste also knicken.

Laut Datenblatt liegt die LCD Hintergrundbeleuchtug bei max.25mA

http://docs-europe.origin.electrocomponents.com/webdocs/06dd/0900766b806dda1c.pdf

Siehe S.3

Die Beleuchtung soll später via PWM angesteuert werden, damit sie in der 
Nacht nicht zu stark blendet und tagsüber auch lesbar bleibt.

>Und D0-D3am LCD lass mal besser unbeschaltet.

Soweit ich weiß stand mal im Tut das ungenutzte PINs auf Masse zu 
schalten sind. So sollen auch Störungen vermieden werden.

Auf dem EasyAVR5A der Firma MikroE ist es auch so gemacht.

Wegen der Beschaltung am Avcc werde ich mich kümmern.

von Axel R. (Gast)


Lesenswert?

150K zu 10K als Eingangsspannungsteiler macht 1zu16.
lässt sich perfekt rechnen! Genauigkeit sollte reichen, oder?
Axelr.

von Jean P. (fubu1000)


Lesenswert?

HI,
den KURZSCHLUSS am AREF Pin erklärst du uns bitte mal.
Gruß

von mawieit (Gast)


Lesenswert?

vielleicht liegt deine abweichung auch im spannungsteiler:
800k und 200k ergeben 5:1 und nicht 4:1 !!!

von Axel R. (Gast)


Lesenswert?

mawieit schrieb:
> vielleicht liegt deine abweichung auch im spannungsteiler:
> 800k und 200k ergeben 5:1 und nicht 4:1 !!!

eben ;))

von Heiko (Gast)


Lesenswert?

...und die üblichen Widerstände haben auch relativ große Toleranzen...

MfG, Heiko

von Ulrich P. (uprinz)


Lesenswert?

Bei Verwendung der internen Referenz legt der AVR eben genau diese 
Spannung auf den ARef Pin, damit man dort noch ein Filter anschließen 
kann.

Wenn Du eine externe Referenzsspannung anlegst, sollte diese ebenfalls 
gut enkoppelt werden:

Ferrit zwischen Vcc und AVcc, Vorwiderstand zwischen AVcc und 
Referenzspannungsquelle, an diesem Punkt ARef abgreifen. Bei einem 
LM4040Dxx haben sich 2k2 bewährt. Die AVcc mit 10nF und 100nF und die 
ARef mit 1nF und 100nF jeweils so dicht wie möglich am AVR GNDA 
entkoppeln.
Ich kenne den MCP1541 nicht, aber bezweifle, dass er einen internen 
Vorwiderstand hat.
Die Massefläche für die analogen Signale nur an einem zentralen Punkt 
mit der Massefläche der restlichen Schaltung verbinden.

Für Deine Messanforderungen ist das zwar etwas zu oversized, aber die 
Bauteile kosten nichts und nachträglich weglassen ist einfacher und 
billiger als ein neues Layout.

Alle analogen Leitungen Richtung Fahrzeug über Ferrite filtern, schnelle 
Varistoren oder/ und schnelle TAZe verwenden. Das gilt auch für 
Sensoren, deren Kabel lediglich eine längere Strecke neben einem 
vorhandenen Kabelbaum geführt werden, auch wenn sie nicht direkt mit 
diesem Verbunden sind. Für digitale Eingänge immer einen 
Serienwiderstand von 10..22R vorsehen, auch hier einen schnellen 
Varistor oder eine TAZ vorsehen.

Statt eines Längsreglers würde ich einen kleinen DC/DC Wandler 
verwenden, am besten einen, der deutlich mehr als 24V am Eingang 
verträgt. Allerdings ist das Design eines solchen nicht immer einfach.

LCD Beleuchtung kann man über PWM dimmen, die PWM wird aber auch schön 
ins Bordnetz gesendet. Daher dort besser noch einen kleinen Elko und 
100nF parallel hinzufügen.

Die Benennung der Stecker deutet möglicherweise darauf hin, dass hier 
Kontakte der Hebel an der Steuersäule angelegt werden sollen. Diese 
Eingäng unbedingt gegen potentielle 12V sichern. Also höherer 
Serienwiderstand TAZ und Z-Diode von 5V zwischen Serienwiderstand und 
CPU Pin.

Richtung Steuersäule auf jeden Fall mit den Signalen aufpassen, dort 
liegen auch die Leitungen für die Airbag-Auslösung.

Zitat aus einem DC/DC Wandler Datenblatt von Analog Devices:
"Remeber, if you connect to a car power supply, you connect to a power 
supply from hell..."

Gruß, Ulrich

von Dominik (Gast)


Lesenswert?

Hallo Uli,

erstmal vielen für deine ausführliche Beschreibung und Hilfestellung.

Zum einen TAZs kenne ich jetzt so gar nicht, wobei ich mit Varistoren 
doch schon mehrfach gearbeitet habe.

An sich hatte ich vor zur Beschaltung an sich von 5V auf 12V den IRF540 
zu nehmen.
Dieser kann direkt mittels TTL-Pegel angsteuert werden und bedarf somit 
keinen Vorwiderstand.

>Die Benennung der Stecker deutet möglicherweise darauf hin, dass hier
>Kontakte der Hebel an der Steuersäule angelegt werden sollen.

Das siehst du richtig. An sich soll der µC z.b. beim Antippen des 
Blinkers z.b. mehrfach nachblinken.

Die Innenraumbeleuchtung soll ausgedimmt werden, sobald die Zündung 
eingeschaltet wurde, die Lampe aber sonst bis zu 2min brennen.

Die Fensterheber sollen so lange funktionstüchtig bleiben, bis die 
Fahrertür geöffnet wird. Dafür hatte ich vor den Türkontakt abzugreifen.

Das Fahrlicht soll anstelle des Akustischen Warnsignals mit dem öffnen 
der Tür abgeschaltet werden, wobei ich mir hier noch nicht sicher bin ob 
ein RElais dafür die richtige Wahl ist.

Die Temperatur soll mittels dem DS1820 an 3 Stellen abgefragt werden.
Innenraum, Umgebung, Endstufe

So viel zu meinem Vorhaben.
Die Drosselspulen werde ich noch einsetzen. Allerdings stehen gerade 
noch andere Dinge vor der Tür :(

von El Patron B. (bastihh)


Lesenswert?

Ich sehe keine Schutzbeschaltung für den 7805....

Lies mal hier.: 
http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.23

Ohne Schutzbeschaltung würde ich dem nicht sooo lange geben.

Grüße

von Dominik (Gast)


Lesenswert?

Jean Player schrieb:
>den KURZSCHLUSS am AREF Pin erklärst du uns bitte mal.
>Gruß

Das ist kein Kurzschluss. Ich hatte nur nicht die richtige LIB für den 
MCP da. Aber das Gehäuse ist das gleiche ;)
Ist aber aus dem Layout im ersten Post ersichtlich

von Ulrich P. (uprinz)


Lesenswert?

Ok, ok...

Also zuerst für interessierte Mitleser die obligatorische 
Rechtsbelehrung:
Veränderungen an der äußeren Beleuchtungsanlage eines KFZ führen in der 
Regel zur Erlöschung der Betriebserlaubnuis es sei den es werden 
zugelassene Resatz- oder Zubehörteile verwendet.
Veränderungen an der Fahzeugtechnik selbst, auch Innen, führen in der 
Regel zur Erlöschung der Garantie.
Damit aber genug zu diesem Thema.

TAZe sind Transienten Absorber Dioden. Diese schützen ein Signal vor 
Einflüssen durch schnelle Transienten, also extrem schnell ansteigende 
Störimpulse. Diese Bauteile sind sehr schnell, können aber nicht so hohe 
Energien vernichten. Ein Varistor ist dafür zu langsam, kann aber länger 
durchhalten.

Man bekommt diese Bauteile auch in mehreren in einem Gehäuse um z.B. 
einen USB Bus zu schützen. Allerdings ist die übliche Bauform SMD 
SOT23-5 oder SOT23-6 Gehäuse.

Gruß, Ulrich

von Dominik (Gast)


Lesenswert?

Natürlich ist es mir bewusst, zumal ich an der äußeren Anlage nichts 
verändere, sondern lediglich deren Beschaltung im Falle des vergessens 
;)

Ausßerdem glaube ich kaum das die Garantie von dem Fahrzeug noch eine 
Rolle spielt, da  dieser Bj. 98 ist.

Ich werde mich mal umschauen, allerdings hatte ich nicht vor SMD Teile 
zu verwenden.

Danke euch erstmal für die viele Hilfe.

lg

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.