Forum: Mikrocontroller und Digitale Elektronik ADC Umwandlung


von Mathias (Gast)


Lesenswert?

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

von Mathias (Gast)


Lesenswert?

Sorry habe vergessen zu Sagen das ich das ganze gern in C machen würde 
und der Chip läuft mit 2 MHz.

von Peter (Gast)


Lesenswert?

Etweder habe ich es nicht verstanden order es ist ganz einfach 
mathematik

U = ADC * (21V / 256 )

256 wenn 8Bit auflösung

von Karl H. (kbuchegg)


Lesenswert?

> 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)

von Mathias (Gast)


Lesenswert?

Oh hätte nicht gedacht das es so einfach ist :-) vielen dank für 
schnelle hilfe.

von Arc N. (arc)


Lesenswert?

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)

von Lutz (Gast)


Lesenswert?

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.

von Arc N. (arc)


Lesenswert?

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...

von ich erst recht (Gast)


Lesenswert?

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

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.