www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC-Daten umrechnen


Autor: Tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Helmut Hofmann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.