Hallo allerseits,
ich möchte einen digitalisierten Spannungswert auf einem Diplay
ausgeben.
Ist folgende Formel zur Umrechnung aus dem binären bzw. dezimalen Wert
ok?
Ue= Xd *(Uref/2^n-1)
Ue ...Eingangssp
Xd ...dezimaler Ausgangswert
Uref...Referenzspg
n ...Quantisierungsstufen
Grüße, Cosi
>Cosi wrote:>> ok?>>>> Ue= Xd *(Uref/2^n-1)>>>Yep. Ist ok.
;) na was sage ich jetzt ?
ist nicht ok, Realplotter hat Recht.
Der ADC samplet einen Bereich von 0V bis VRef in einzelne "Häppchen",
davon hat ein 10 Bit ADC 1024 Stück.
Gruß Hagen
Nein.
Ich hab mich verhaut.
Realplotter hat recht.
Die korrekte Umrechnung lautet tatsächlich
Ue = Xd * Uref / 2^n
Beispiel:
Angenommen der ADC kann nur 5 Stufen und wird mit einer Referenz
von 5V betrieben
Volt 0 1 2 3 4 5
+---+---+---+---+---+
Wert vom ADC 0 1 2 3 4
Die Umrechnung lautet in diesem Fall
Ue = Xd * 5 / 5
Für den Maximalwert vom ADC (4) ergibt sich damit ein
Spannungswert von 4 * 5 / 5 = 4
Dieses Ergebnis ist so zu interpretieren, dass bei einem
ADC Wert von 4 die tatsächliche Spannung irgendwo im letzten
rechten Bereich der Zeichnung da oben zu suchen ist. Ein
ADC Wert von 4 sagt also nur aus, dass die Spannung im Bereich
4 bis 5 Volt lag.
Daher ist es nur konsequent, wenn die Umrechnung immer den unteren
Wert der Bereichsgrenze für einen ADC Wert liefert.
genau, mit einer 5V Referenz und 10 Bit ADC ist die höchste meßbare
Spannung exakt 5/1024*1023 = 4,99... Volt. Dieser Wert ist der unterste
Spannungwert der noch als exakt 5 Volt interpretiert werden kann.
Gruß hagen
Ja könnte man so rechnen, quasi der Durchschnitt.
Was ich meinte sind die Grenzwerte, du rechnest einen Offset rein um
diese Grenzwerte zu verschieben um am Ende quasi eine "Rundung" in die
Mitte der Grenzwerte durchzuführen. Aber das sagt eben als Zahl nicht
mehr aus als das wir nur in 0.00488.. Volt Schritten exakt messen
können. Deine so gemittelte Zahl ist also nicht genauer nur weil sie auf
die Mitte gerundet wurde.
Soweit die Mathematik in der Praxis hängt das vom ADC Meßverfahren ab,
aber das dürfte wohl klar sein.
Ich persönlich mache das für die Anzeige der Daten auch so. Es ist schon
blöde wenn man exakt 5 Volt mit 5 Volt VRef ausmisst und das steht was
von 4.995117188 Volt. Richtig wäre es aber, den das ist die kleinste
Zahl nach dem vorherigen Schritt in der entsprechenden Meßgenauigkeit,
also 4.990234375.
Normalerweise müsste man den Offset Error der VRef ermitteln und dann
die nachfolgenden Messungen korregieren.
Gruß Hagen
Man kann die Umrechnung als eine DA-Wandlung betrachten, da man von dem
diskreten Bereich den der AD-Wandler liefert wieder auf einen
kontinuierlichen Bereich (Volt, ° Celsius) abbildet. Um den Fehler bei
der DA-Wandlung zu minimieren legt man im Normalfall die
Rekonstruktionswerte in die Mitte der Intervalle.
Mal ein Beispiel: 2 Bit-Wandler, uref = 8 V.
Wenn der Eingang 8 V ist kommt nach deiner Formel (3 * uref / 2^2) = 6 V
raus, also maximal 2 V daneben. Nach meiner kommt ((3 + 0.5) * uref /
2^2) = 7 V raus, die Anzeige liegt also maximal 1 V neben dem wahren
Wert.
Volt 0 2 4 6 8
+---+---+---+---+
Wert vom ADC 0 1 2 3
deine Formel ^ ^ ^ ^
meine Formel ^ ^ ^ ^
Gruß
Andreas
@Andreas,
ja ich weis warum du das machst. Was ich aber ausdrücken möchte ist der
Punkt was uns das Resultat sagt.
In beiden Fällen entsteht die gleiche Meßgenauigkeit, das heist egal wie
man es rundet (solange man nicht abrundet) es bleibt beim gleichen
Informationsgehalt. Die Aussagekraft der Resultate ist die gleiche.
Bei dir wird 7V angezeigt, es bedeutet aber 6V bis 8V.
Bei mir wird 6V angezeigt, das heist es ist mindestens 6V kann aber bis
8V sein.
Rechnet man mit dem ADC Wert weiter so verändert das nichts am späteren
Resultat, bei beiden Verfahren. Nur die Interpretation der
Meßabweichungen ist eine andere.
Es hängt jetzt vom verwendeten ADC Verfahren ab ob der ermittelte ADC
Wert in der Mitte des Bereiches liegt oder die untere oder obere
Schranke eines Bereiches darstellt. Also je nach ADC Verfahren darf man
dann nicht noch zusätzlich runden, bzw. den Meßwert mit einem Offset
versehen um ihn zu verschieben.
Gruß Hagen
Hagen Re wrote:
> @Andreas,>> ja ich weis warum du das machst. Was ich aber ausdrücken möchte ist der> Punkt was uns das Resultat sagt.>> In beiden Fällen entsteht die gleiche Meßgenauigkeit, das heist egal wie> man es rundet (solange man nicht abrundet) es bleibt beim gleichen> Informationsgehalt. Die Aussagekraft der Resultate ist die gleiche.>> Bei dir wird 7V angezeigt, es bedeutet aber 6V bis 8V.> Bei mir wird 6V angezeigt, das heist es ist mindestens 6V kann aber bis> 8V sein.
Wenn der Benutzer weiß dass "5" 6-8 V bedeutet, dann kannst du auch "5"
anzeigen. Die Frage ist nur, macht das Sinn? Oder sollte man nicht den
Wert anzeigen, der der tatsächlich gemessenen Spannung am nächsten
kommt?
Mehr Probleme bekommst du wenn du z.B. aus deinen Messungen einen
Mittelwert bildest. Da kannst du dem Benutzer nicht vermitteln dass er
einen angezeigten Mittelwert von 3.7 als 4.7 interpretieren muss (um bei
o.g. Beispiel zu bleiben).
> Also je nach ADC Verfahren darf man dann nicht noch zusätzlich runden,> bzw. den Meßwert mit einem Offset versehen um ihn zu verschieben.
Der ADC kann ja keinen exakten Messwert ausgeben, er kann nur ausgeben
in welchem Messintervall der anliegende Analogwert liegt. Du zeigst
willkürlich die untere Grenze dieses Messintervalls an. Genausogut
könntest du die obere anzeigen. Ich zeige die Mitte an, weil das im
Durchschnitt am nächsten am wahren Eingangswert liegt.
Dass es in der Praxis bei einer Auflösung von 10 Bit selten eine Rolle
spielt, das steht wieder auf einem anderen Blatt. Da könnte man sich
auch die Diskussion 1023 vs. 1024 sparen. Wenn man allerdings einen NTC
linearisieren möchte o.ä., dann kann ich mir schon vorstellen dass man
sich recht ordentliche Fehler einfängt wenn man nicht exakt rechnet.
Gruß
Andreas
Eine eigene Frage?
Dieser Thread ist über 19 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.