Forum: Mikrocontroller und Digitale Elektronik ADC-Daten umrechnen


von Tommy (Gast)


Lesenswert?

Habe aber eine nächste Schwierigkeit.

Beim ADC liegen die Werte zwischen 0 und 1023 bei 10 bit, aber ich 
möchte sie gerne z.B. in Werte zwischen 0 und 5V umrechnen.

Wie mache ich das am besten.
Versuche es derzeit den Messwert mit einem Faktor zu multiplizieren z.B. 
bei 8bit
5/255=196 (ohne beachtung der Nullstellen) jedoch entstehen so grosse 
Rundungsfehler.

Wenn ich mit einem genauern Faktor Rechnen möchte,dann muss ich wieder 
16bit miteinander multiplizieren usw.

Gibt es einen anderen genaueren oder besseren Weg auf den ich gerade 
nicht draufkomme?

Vielen Dank im Voraus

von Lothar (Gast)


Lesenswert?

Recht simpel kann man es nache wie in einem RE: vor einigen tagen 
beschrieben:

AVR mit etwas mehr wie 5 V betreiben z.B. durch Diode 1N4148 in 
Durchlassrichtung in Reihe mit dem Massepin des 7805. Der liefert jetzt 
etwa 5,7 V stabilisiert.
Referenzeingang des ADC auf 5,12 V einstellen.
Bei 5V Messspannung liefert der ADC jetzt den Wert 1000.
Diesen lesen und mit einem Rechtsshift (LSR) durch 2 teilen. Jetzt ist 
das Ergebnis 500 und entspricht 5,00V. Rundungsverlust (LSR) von 0,001V 
ist weit geringer wie die interne Toleranz des ADC. Somit meist mehr wie 
hinreichend.

Wer es ganz genau haben möchte, auf 5 Nachkommastellen, kommt um 
Binärmultiplikation nicht rum. Uref/1024*Umess .
Dabei ist es jedoch unerheblich ob man 8,16 oder 32 Bit-Routinen 
verwendet. 8 und 16 Bit unterscheiden sich, ähnlich wie in meinem in der 
Codesammlung befindlichen Beitrag "Teilen binaer", nur durch einen 
zusätzlichen Befehl LSL. bei 32 Bit kämen 2 weitere hinzu.
Der Beitrag "Malnehmen binaer" folgt in kürze.

Lothar

von Helmut Hofmann (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Tommy,

diese Frage habe ich am 7.2.02 ins Forum gestellt und habe daraufhin 
tolle Tips erhalten.

1. Der AD-Wandler verarbeitet Spannungen von 0-5Volt. D.h. Werte bei 
einer 10-bit-Auflösung   von 0-1023. Jetzt kannst Du durch Anpassen von 
Vref (ca 5,11V) oder so wie ich es mache, durch Anpassen der 
Versorgungs-
spannung des MC (VCC und Vref sind verbunden) erreichen, daß die zu
messende Spannung (0-5V) genau die Werte 0-1000 ergibt.

2. Damit kannst Du durch Division mit 2 die Werte 0-500 errechnen und 
durch Setzen des Dezimalpunktes auf dem LCD die Spannung von 0,00 bis 
5,00 V ausgeben. Vorher muß natürlich die Binärzahl in Dezimalzahlen 
umgerechnet werden.
Ein entsprechendes komplettes Programm findest Du im Anhang

mfg Helmut

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.