Jump to content
Usertreffen 2024: 29.5.-2.6. | Anmelden bitte bis 30.4. ×
Schiffsmodell.net

Spannungsmessung - Genauigkeit


lab

Recommended Posts

Hallo (Willie),

 

bei Willie gibt es unter http://klaas.homeip.net/ArduinoWiki/doku.php?id=arduino:modellbau:sensoren:spannung

eine schöne kleine Anleitung zum Messen der Spannung mit dem Arduino. Sehr praktisch.

 

Danach ist die 1,1V Referenzspannung genauer als der Default von 5V.

 

Ich habe bei Tests an einem 1S-Lipo-Akku jetzt folgendes festgestellt:

- Referenzmessung per Multimeter: 4,15 V

- Direkte Messung per Analog IN: 4,43V

- Messung mit Ref 1,1V an Spannungsteiler 10K/63K: 3,85V

- Messung mit Ref 5V an Spannungsteiler 10K/63K: 4,13V

 

Somit war die 5V Referenzspannung mit Spannungsteiler deutlich genauer als 1,1V. Wie passt das zusammen?

 

Gruß, Kai

Link to comment
Guest Joachim C.

Habe es jetzt nicht nachgerechnet, aber:

Bist Du sicher dass Du bei Messung mit der 1.1V Referenzspannung den gleichen Spannungsteiler verwenden darfst wie bei 5V Referenz?

 

Lt. dem von Dir angegebenen Link muß der Spannungsteiler unterschiedliche Spannungen abgeben, je nachdem welche Referenzspannung genutzt wir.

Wenn Du den gleichen Spannungsteiler 10K/63K bei beiden Meßverfahren nutzt, dann kann m.E. das Meßergebniss niemals stimmen.

 

Gruß

Joachim

Link to comment

Ich habe folgendes geschrieben:

 

Bei Referenzspannung INTERNAL

float value = sensorValue * 1.1 / 0.1389 / 1024.0;

 

bzw.

 

bei Referenzspannung DEFAULT

float value = sensorValue * 5 / 0.1389 / 1024.0;

 

Der Spannungsteiler selbst ist ja immer gleich.

Link to comment

Ich kann Dir nicht ganz folgen.

 

Lt. Bedienungsanleitung hat mein Messgerät eine Fehlerquote von 0,3% +-1 Digit.

Lassen wir es 0,5% sein, es ist ja auch schon etwas älter.

 

Bei 4,15 V macht das 0,02075 V (+- 1 Digit)

 

Damit würde eine Messung von 4,15 V einem tatsächlichen Wert zwischen 4,172 V - 4,128 V entsprechen (inkl. Digit leicht gerundet).

 

Ich verstehe auch nicht so ganz, was das mit meiner Frage zu tun hat - in jedem Fall wäre die Verwendung der 5V-Referenz inkl. Spannungsteiler besser als die 1,1V...

 

Mir geht es darum, wie ich eine möglichst genaue Messung (mit dem Arduino) hinbekomme.

Edited by lab
Link to comment
ManfredBochum

Bei Messgeräten bezieht sich die prozentuale Abweichung immer auf den Endwert.

In dem Fall misst du im 40V Bereich, also 0,3% von 40V.

 

Ich wollte dir nur aufzeigen, dass die Anzeige vom Messgerät nicht unbedingt stimmen muß.

Vielleicht misst ja auch der Arduino genauer.

Ohne genaue Referenz ist das nicht möglich zu beurteilen.

 

Gruß Mani

Link to comment
Bei Messgeräten bezieht sich die prozentuale Abweichung immer auf den Endwert.

In dem Fall misst du im 40V Bereich, also 0,3% von 40V.

Bei digitalen Messgeräten wie meinem bezieht sich der Messfehler auf den angezeigten Wert (im Gegensatz zu analogen Zeigerinstrumenten).

 

Ich wollte dir nur aufzeigen, dass die Anzeige vom Messgerät nicht unbedingt stimmen muß.

Vielleicht misst ja auch der Arduino genauer.

Ohne genaue Referenz ist das nicht möglich zu beurteilen.

Gruß Mani

 

Selbst wenn ich davon ausgehe, dass der Arduino genauer misst als ein speziell dafür gemachtes Gerät (was ich für ziemlich unwahrscheinlich halte) habe ich immer noch drei weit auseinander liegende Werte vom Arduino. Einer davon deckt sich mit der Messung durch ein anderes Messgerät. Da drängt sich die Vermutung auf, dass dies der beste Wert ist...

 

Das würde den Erkenntnissen von Willie widersprechen. Insofern warte noch mal, ob er oder jemand anderes mehr zur Genauigkeit der Arduino-Messung sagen kann.

Link to comment

Dass eine Referenzspannung, eine Messschaltung oder ähnliches eine große Toleranz (= Messunsicherheit) aufweist, heißt nicht zwangsläufig, dass der Fehler bei einem bestimmten Exemplar tatsächlich so groß ist. Man kann durchaus ein genaueres Exemplar erwischen, genausogut aber eben auch eins, was die Toleranz voll "ausnutzt".

Die Toleranzangaben sind immer der "worst case".

 

Grüße

 

Matthias

Link to comment

Ich gucke:

http://www2.produktinfo.conrad.de/datenblaetter/100000-124999/120952-an-02-de-Digitalmultimeter_M_3850D.pdf (S. 38) , hier

http://de.wikipedia.org/wiki/Digitalmultimeter#Messabweichungen_beim_Digitalmultimeter (Abschnitt Linearitätsabweichung), hier

http://labom.at/13au9hH (Kapitel 2.3.1) und hier

http://de.wikipedia.org/wiki/Messger%C3%A4teabweichung#Messger.C3.A4te_mit_Ziffernanzeige (Abschnitt Messgeräte mit Ziffernanzeige).

 

Offensichtlich gibt es unterschiedliche Möglichkeiten. Bei meinem Gerät ist es allerdings tatsächlich der Ablesewert.

 

Führt aber in der Tat im Sinne der Frage nicht weiter.

Link to comment
Guest willie

Die Referenzspannung im ATMEL Chip (hat übrigens nix mit dem Arduino selber zu tun...) ist definiert und genau in den Dokumentation beschrieben. Im Gegensatz zu der Spannung am V+ Pin. Da weiß der Chip nicht was anliegt.

Es kann sein, daß dein externer Spannugsregler sehr genau regelt. Aber tut er das auch unter Last? Sind da irgendwelche Spannugsspitzen drauf, oder Peaks von Servos, Motoren und sowas? Wie ist das Boarddesign? Sind da genug Entkopplungskondensatoren drauf? Das alles ist bei der Referenzspannungsquelle ausgeschlossen. Auch sollte die Reproduzierbarkeit auf verschiedenen Prozessoren deutlich höher sein. (Ist zumindest bei mir so) Trotzdem empfehle ich da eine Möglichkeit des Trimmens einzubauen. (Auch Messgeräte müssen von Zeit zu Zeit mal kalibriert werden.)

 

Auch Spannungsteiler haben Toleranzen. Und je kleiner der Messwert ist, um so ungenauer ist die Messung. Obendraquf kommt noch die Berechnungsungenauigkeit. Du rechnest da mit Fliesskommawerten und dann noch mit unterschiedlicher "Länge". Das ist nicht nur sehr langsam sondern auch noch sehr ungenau. Versuch möglichst mit byte, int oder long zu arbeiten, so oft du kannst. Float hat nur einfach Genauigkeit. Double ist aber nicht besser, da die auf Float zurück geführt wird. (Double ist nur wegen der C++ Compatibilität da. Echten Double gibt's im Standart nicht.)

 

Bei meinem 2 Leonardos ist die interene Referenz (mit kalibrierung) super verwendbar, der ext. Spannungsregler aber eine Katasstrophe. Sobald ich da einen Servo anschliesse und betreibe, habe ich dicke Peaks auf der Leitung. Die kriegt der Regler bzw. das Board einfach nicht weg. Das gleiche mit meinem Duemillanove ist deutlich besser. Wenn ich aber bei beiden mit der Internen 1V1 Referenz arbeite, ist alles gut.

Link to comment

Hi Willie,

 

Danke für die ausführliche Antwort.

 

In der Tat habe ich im Moment wenig Last auf dem System - die Spannungsversorgung erfolgt über USB.

 

Ich werde mich dann mal etwas intensiver mit der 1,1V-Referenz befassen...

 

Gruß, Kai

Link to comment

So jetzt noch einmal ein Update zum Problem der Spannungsmessung.

 

Der Arduino (also der ATMEGA) liefert als Default, also Standardwert eine Referenz die seiner Eingangsspannung entspricht. Normalerweise sind das 5V.

 

Da ich aber die Spannung des versorgenden Akkus überwachen möchte, wäre dieser Weg ohnehin Unsinn, da er die (sinkende) Akkuspannung mit der ebenfalls sinkenden Referenzspannung (= Akkuspannung) vergleichen würde (wie Baron Münchhausen, der sich selbst an den Haaren aus dem Schlamm gezogen haben wollte).

 

Also muss ich die 1,1V-Referenzspannung verwenden, um einen angeschlossenen Akku zu überwachen. Das ich so einen "schlechten" Wert bekommen habe liegt einerseits darin, dass die Referenzspannung um bis zu 10%(!) abweichen kann (1.0 -1.2 V), andererseits möglicherweise auch an einem eher ungünstigen Verhältnis des Spannungsteilers, der den möglichen Wertebereich des Eingangs nicht ausgenutzt hat.

 

Jetzt bekomme ich vom Arduino 4,23 V und vom Messgerät 4,17 V, was für meine Verhältnisse ausreichen dicht beieinander ist.

 

Und ich weiss jetzt auch etwas mehr über die interne Referenzspannung des Arduino. Neben der Seite von Willie fand ich auch diese Seite hier hilfreich: http://provideyourown.com/2012/secret-arduino-voltmeter-measure-battery-voltage/

Dort wird u.a. auch gezeigt, wie man die angeschlossene Betriebsspannung direkt messen kann - noch eleganter für mich. Das teste ich morgen...

 

Gruß, Kai

Link to comment
Guest willie
So jetzt noch einmal ein Update zum Problem der Spannungsmessung.

 

Der Arduino (also der ATMEGA) liefert als Default, also Standardwert eine Referenz die seiner Eingangsspannung entspricht. Normalerweise sind das 5V.

 

Da ich aber die Spannung des versorgenden Akkus überwachen möchte, wäre dieser Weg ohnehin Unsinn, da er die (sinkende) Akkuspannung mit der ebenfalls sinkenden Referenzspannung (= Akkuspannung) vergleichen würde (wie Baron Münchhausen, der sich selbst an den Haaren aus dem Schlamm gezogen haben wollte).

Der Arduino hat einen eignen Spannungsregler auf seinem Board (wenn du über Vin gehst). Wenn du direkt die 5V einspeißt, ist meist ja noch ein BEC dazwischen. Auch da wird geregelt. Das einzige, wo man direkt koppelt ist, wenn der Arduino/Empfänger direkt an einer eigenen Stromversorgung hängt.

Welchen Akkus willst du denn überwachen?

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.