Hallo, ich habe einen Atmega8 mit 10-Bit AD-Wandler. Uref=2,55V. Muss ich diese Spannung durch 1023 oder 1024 teilen um später die genaue Spannung auszurechnen. Lucas
Mit "eichen" hat deine Frage aber nix zu tun... Was ist denn die Auflösung des ADC, 1023 Stufen oder 1024? :) Hast du schon ins Datenblatt geguggt, da gibt's ein schönes Kapitel zum ADC, und auch diese Frage wird mit Formel beantwortet - nebst der Fragen nach Genauigkeit.
Mit 10 Bit hast du 1024 mögliche Messwerte, also 1023 Intervalle. Die Breite eines Intervalls ist dann Uref/1023 = 0,00249267 Volt pro Bit. Ist dein ADC-Wert nun 1023, eingrößerer Wert ist nicht möglich, so ist deine gemessene Spannung 1023 * Uref/1023 = Uref, so wie es sein soll. Hättest du durch 1024 dividiert, dann ergäbe sich als maximaler Messwert 1023 * Uref/1024 < Uref. Das kann nicht richtig sein. Wenn dein Digitalwert nun 500 beträgt, dann ist die Spannung 500*0,00249267 = 1,246335V erreicht oder geringfügig überschritten. Die Eingangsspannung des ADC ist noch etwas kleiner als 501*0,00249267 = 1,248827V. Die Differenz pro Bit liegt bei rund 2,5mV. Der Hinweis in dem von Falk genannten Artikel ist falsch! Joe
Joe schrieb: > Mit 10 Bit hast du 1024 mögliche Messwerte, also 1023 Intervalle. Nope. Du hast 1024 Intervalle, aber der größte Wert der vorkommen kann ist 1023 2 Bit und Referenzspannung sei 4V (= maximal mögliche Spannung) 00 0V - 1V 01 1V - 2V 10 2V - 3V 11 3V - 4V 4 Intervalle, jedes Intervall ist 1V gross. > Der Hinweis in dem von Falk genannten Artikel ist falsch! Ist er nicht. Wenn der ADC 11 (also 3) liefert, kann die Spannung irgendwo im Bereich 3V bis 4V sein. Nur weil der ADC den höchstmöglichen Wert liefert, heißt das nicht, dass da 4V am Eingang anliegen. Es können genausogut auch 3.0001V sein. Genauso in der anderen Richtung: Nur weil der ADC 00 liefert, heißt das noch lange nicht, dass am Eingang genau 0V anliegen. Es können genausogut auch 0.9999V sein.
Leute, nochmal: Es hängt vom verwendeten ADC ab. Und dazu schaut bitte ins Datenblatt. Die Intervalle können nämlich genauso bei 00 0V - 0.5V 01 0.5V - 1.5V 10 1.5V - 2.5V 11 2.5V - 3V mit 3V Referenz (als anschauliches Beispiel) sein. Ausserdem würde ich bei 10 bit im AVR lässig durch 1024 teilen, weil das mit paar Shifts machbar ist, während durch 1023 eine zeit- und codeaufwändige Softwaredivision erfordert. Der Fehler ist vernachlässigbar und wird durch die Fehler des AVR (Vref, Steigungsfehler) locker überdeckt.
Timm Thaler schrieb: > Ausserdem würde ich bei 10 bit im AVR lässig durch 1024 teilen Naja, vielleicht nicht gerade durch 1024. Aber, wenn's im oberen Spannungsbereich genauer sein soll, kann man zum Messwert noch eins addieren. Dann hat man bei max. Spannungswert 1024 = 100% (da kann man auf jeden Fall besser weiterrechnen), bei Spannung null eben 1.
Timm Thaler schrieb: > Leute, nochmal: Es hängt vom verwendeten ADC ab. Und dazu schaut bitte > ins Datenblatt. Die Intervalle können nämlich genauso bei > > 00 0V - 0.5V > 01 0.5V - 1.5V > 10 1.5V - 2.5V > 11 2.5V - 3V > > mit 3V Referenz (als anschauliches Beispiel) sein. Beim AVR (um den es in der Ursprungsfrage geht) ist das nicht so. Und auch sonst wüsst ich jetzt keinen ADC, der nicht zumindest versucht, seine Schaltpunkte gleichmäßig zu verteilen. Vielleicht hast du ja ein Beispiel für so einen Sonderling. Timm Thaler schrieb: > Ausserdem würde ich bei 10 bit im AVR lässig durch 1024 teilen, weil das > mit paar Shifts machbar ist, während durch 1023 eine zeit- und > codeaufwändige Softwaredivision erfordert. Der Fehler ist > vernachlässigbar und wird durch die Fehler des AVR (Vref, > Steigungsfehler) locker überdeckt. Andersherum wir ein Schuh draus: Man teilt durch 1024, weil das richtig ist. Man teilt nicht durch 1023, weil das a) langsam ist, und b) falsch ist.
Timm Thaler schrieb: > Ausserdem würde ich bei 10 bit im AVR lässig durch 1024 teilen, weil das > mit paar Shifts machbar ist, während durch 1023 eine zeit- und > codeaufwändige Softwaredivision erfordert. Der Fehler ist > vernachlässigbar und wird durch die Fehler des AVR (Vref, > Steigungsfehler) locker überdeckt. wurde zwar schon mehrmals gesagt, aber das mit 1023 ist FALSCH! Richtig ist U = ADC-Wert*Uref/1024 !!!!
Walter schrieb: > Richtig ist U = ADC-Wert*Uref/1024 oder "Richtiger™": U liegt irgendwo zwischen ADC-Wert*Uref/1024 und (ADC-Wert+1)*Uref/1024 Als Mittelwert zum weiterrechnen könnte man (ADC-Wert+0.5)*Uref/1024.0 nehmen, oder etwas wie: (ADC-Wert*2+1)*Uref/2048 Aber auf das halbe LSB kommt es meist eh nicht an, weil der ADC da sowieso rumwackelt.
Das steht alles schon mehrfach beschrieben und durchgekaut im Artikel AD-Wandler und den Links im Artikel. http://www.mikrocontroller.net/articles/AD-Wandler#Negative_Spannungen_messen Beitrag "Re: Berechnung zur Auflösung ADC - wie richtig?" So, Popo abgewischt.
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.