ADC Umwandlung

Gast #1118629
HI Leute,

ich habe ein kleines Problem mit der Umrechung eines ADC Wertes in eine 
Spannung. Und zwar habe ich einen Atmega8 welcher ein Signal per ADC 
einlesen soll um es dann per UART zu verschiecken. Dabei nutze ich die 
interne Uref von 2,56 Volt. Der zu messende Bereich (1 bis 21 Volt) wird 
per Spannungteiler auf den Bereich von 0 bis 2,56 Umgesetzt. Das Problem 
ist nun das ich zwar per Berechnung aus dem AVR TUT den Wert von 0 bis 
2,56 Volt umrechnen kann aber ich will ja den anderen Bereich. Würde 
dabei gerne auch die Festkomma Geschichten nutzen,das sie weniger 
speicher benötigen, hab aber kein plan wie. Bin nicht so der Mahte 
Profi.

MFG

Mathi
#1118721
> Bin nicht so der Mahte Profi.

1 Apfel kostet 2 Euro
12 Äpfel kosten wieviel Euro.

Lernen unsere Kinder in der Grundschule. Hat mit Matheprofi herzlich 
wenig zu tun und recht viel mehr brauchst du dazu nicht.


1 ADC Sprung entspricht  ( 21 - 1 ) / 1023 = 0.0195503 Volt
Wenn dein ADC den Wert 678 liefert, liegen daher
   678 * 0.0195503  + 1 = 14.255 Volt
an.

Da du Festkomma verwenden willst, was löblich ist, rechnest du nicht
mit 0.0195503 sondern einem Vielfachen davon, zb dem Zehn-tausendfachen.
Aus den 0.0195503 werden so 195

   Volt = 195 * ADC + 10000

ALs Ergebnis kriegst du jetzt natürlich nicht Volt, sondern ein 
entsprechendes Vielfaches davon. Aber das kannst du ja in der Anzeige 
leicht korrigieren, indem der Dezimalpunkt an der richtigen Stelle 
gesetzt wird.

    678 * 195 + 10000 = 142210

Wenn du jetzt noch den Dezimalpunkt bei der Ausgabe zwischen die 
Zehntausenderstelle und die Tausenderstelle einschmuggelst, steht auf 
dem Display wieder  14.221

(Das die Hunderstel nicht mehr mit dem Wert von oben übereinstimmen, 
liegt an der Verwendung von Festkomma und im Speziellen daran, dass 
10000 * 0.0195503 nun mal nicht exakt 195 ergibt)
#1118778
Karl heinz Buchegger wrote:
>> Bin nicht so der Mahte Profi.
>
> 1 Apfel kostet 2 Euro
> 12 Äpfel kosten wieviel Euro.
>
> Lernen unsere Kinder in der Grundschule. Hat mit Matheprofi herzlich
> wenig zu tun und recht viel mehr brauchst du dazu nicht.
>
>
> 1 ADC Sprung entspricht  ( 21 - 1 ) / 1023 = 0.0195503 Volt
> Wenn dein ADC den Wert 678 liefert, liegen daher
>    678 * 0.0195503  + 1 = 14.255 Volt
> an.

Und wenn man bei AD-Wandlern aufgepasst hätte, würde man nicht durch 
1023 teilen, sondern durch 1024 (scnr)
#1119185
Lutz wrote:
> Und wenn der Aufpasser aufgepaßt hätte, hätte er das mit *) geschrieben:
>
> *)
> Unter der Annahme, dass der ADC 10 bit Auflösung hat.

Und wenn der Aufpasser-Aufpasser aufgepaßt hätte, hätte er gelesen, dass 
es sich um einen AVR handelt...
Gast #1119198
1
Und wenn der Aufpasser-Aufpasser aufgepaßt hätte, hätte er gelesen, dass
2
es sich um einen AVR handelt...

Und wenn der Aufpasser-Aufpasser-Aufpasser++ aufgepasst hätte, würde ich 
kein blödes comment abgeben. höhöh

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.