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
Sorry habe vergessen zu Sagen das ich das ganze gern in C machen würde und der Chip läuft mit 2 MHz.
Etweder habe ich es nicht verstanden order es ist ganz einfach mathematik U = ADC * (21V / 256 ) 256 wenn 8Bit auflösung
> 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)
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)
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.
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.