A/D-Wandler - Spektrum erweitern...

Hallo,
ich möchte ein Amperemeter des Typs ACS712 an den Analogeingang meines DUE verwenden. Da das Gerät bereits im Leerlauf die Hälfte des maximalen Ausgangssignals ausgibt, verringert das logischerweise die Genauigkeit der Messung um die Hälfte, wenn ich es mit 3,3 V betreibe. Beim Betrieb mit 5V siehts noch schlechter aus, da ich dann über die maximale Eingangsspannung des Wandlers komme.
Genauigkeit: 5A / 512 level = 9,7 mA/level*

*sorry, ich bin noch Anfänger und bin mit den Termini nicht so vertraut. Mit "level" meine ich die vom A/D-Wandler erzeugten diskreten Signale. Beim Arduino wird das ja in ein 10-bit-Signal, also 1024 unterschiedliche Werte umgewandelt.

Nun mal folgende Idee:
Ich setze eine Kombination aus Germanium- und Siliziumdioden (in Reihe) in die Signalleitung zum A/D-Wandler und reduziere damit das 0A entsprechende Signal von 2,5 V auf 0,1V und betreibe den Wandler mit 5V.
Damit müsste ich auf folgende Genauigkeit kommen:
0,1 A gemessener Strom entspricht 0,1 V Analogsignal. Das ist 1/50stel des Signals.
1024 / 50 = 20,48 level
Für die Messung übrig bleibende level: ca. 1.000. Das bedeutet, dass die Messgenauigkeit mit ca. 5 mA/level etwa doppelt so hoch ist.

Meine Frage dazu: Ist das eine gangbare Methode oder funktioniert das nicht? Und wenn nein, warum nicht und was wäre besser?

Das Arduino Due hat 12 bit ADCs - d.h. 4096 Abstufungen. Default ist weniger (10 bit), damit es mit den Arduino-Bibliotheken kompatibel bleibt. Mit dem Befehl AnalogReadResolution() kannst du das aber ändern.

Bevor du das mit den Dioden machst würde ich mal die höhere Auflösung ausprobieren - vielleicht reicht das ja schon.

Lies mal diesen Thread: Spannung/Strom Messen - #7 by erni-berni - Deutsch - Arduino Forum

Der Controller des Arduino DUE funktionert mit 3,3V. Du kannst keine 5V an die analogen Eingänge geben.

Grüße Uwe

Hallo MGOS,
vielen Dank für den heißen Tipp! Funktioniert wunderbar!

@ Martin: Ich hab jetzt leider schon so einen galvanisch getrennten Sensor gekauft. Deswegen werde ich erstmal bei meiner derzeitigen Variante bleiben. Aber um kleine Ströme zu messen, ist die Methode natürlich viel besser als die mit meinem Sensor. Ich probier das demnächst mal aus!

@ Uwe: Die Subtraktion von einstelligen Zahlen hat so ihre Tücken, was? XD XD XD

Kriegerdaemon:
@ Uwe: Die Subtraktion von einstelligen Zahlen hat so ihre Tücken, was? XD XD XD

Ich verstehe Dich nicht.
Uwe

Uwe, ich wollte das 0A-Signal, das VCC/2 (also 2,5V) entspricht, mittels Dioden auf 0,1V reduzieren.
Wenn das Amperemeter dann seinen maximalen Wert von 5V abgegeben hätte, dann wären es am Eingang des Wandlers nur noch 2,6V gewesen.
5 - 2,4 = 2,6
Jetzt klar?

Eine andere Option ist ein Subtrahierer:
http://www.elektronik-kompendium.de/sites/slt/0210153.htm

Die abzuziehende Spannung kannst du entweder über einen Spannungsteiler erzeugen, oder (um von der Versorgungsspannung unabhängig zu sein) mit einer Z-Diode.

... oder wie ich schon schrieb: A/D-Wandler - Spektrum erweitern... - #3 by TERWI - Deutsch - Arduino Forum

Terwi, ich hab's schon gesehen aber ich konnte mich noch nicht damit beschäftigen.
Das ich sowas auch noch brauchen werde, komme ich in Kürze mal auf Dich zurück.
Ich schreib Dir mal ne PN, okay?

Kriegerdaemon:
Uwe, ich wollte das 0A-Signal, das VCC/2 (also 2,5V) entspricht, mittels Dioden auf 0,1V reduzieren.
Wenn das Amperemeter dann seinen maximalen Wert von 5V abgegeben hätte, dann wären es am Eingang des Wandlers nur noch 2,6V gewesen.
5 - 2,4 = 2,6
Jetzt klar?

Zuerst mal stimmt es allgemein gesagt, daß der Arduino DUE keine höheren Spannungen als 3,3V an seinen Pins verträgt. Des weiteren gilt auch für Dioden, daß kein Spannungsabfall vorhanden ist, wenn kein Strom fließt. Bei einem maximalen Eingangsleckstrom von unter 1µA kannst Du für keine Diode sagen, daß an ihr 0,7V bzw 0,2V abfällt.

Eine Zahl mit einer Kommastelle ist für mich keine einstellige Zahl :wink: :wink: :wink: :wink:
Wenn Du den Offset verscheiben willst dann nimm einen Subtrahieschaltung mit einem Operationsverstärker aufgebaut Als Operationsverstärker bietet sich ein LM358 bzw LMV358 an.

Grüße Uwe

Hallo Uwe,
ich wollte ja auch ein wenig Strom fließen lassen. Ich hatte deshalb so an ca. 180kOhm gedacht. Blöd ist halt nur, dass dieser Strom bei geringem Signalpegel auch ziemlich klein wird.

Ja, sorry für den Spruch mit der Subtraktion. Ich bin auch normalerweise nicht frech. ]:smiley:

Und vielen Dank für den Tipp mit dem Operationsverstärker!!! :slight_smile:

@MGOS:
Sag mal, die 12 bit Auflösung beziehen sich auf einen Bereich vom 0 bis 3,3 V oder von -3,3 bis 3,3V?

Die 12-Bit ADC Auflösung bezieht sich auf 0-3.3 V, d. h. ein Wert von 0 bedeutet 0 V = GND, 4095 bedeutet 3.3 V = Vdd.
Alle Eingänge des Due vertragen nur den Spannungsbereich der Versorgung, also 0-3.3 V, egal ob analog oder digital. Wählst du eine externe Referenz, dann darf die Eingangsspannung der ADCs auch nicht größer als diese Spannung sein. Negative Spannungen darfst du auf keinem Fall anlegen!

Vielen Dank!
Oh das ist ja ne böse Anfängerfalle!
Ich hatte nämlich mal bei einer Referenz von einem anderen Arduino (Uno oder Nano?) was von negativen werden gelesen...

Kriegerdaemon:
Vielen Dank!
Oh das ist ja ne böse Anfängerfalle!

Das Hatte ich schon in
http://forum.arduino.cc/index.php?topic=183064.msg1356334#msg1356334
gesagt.

Kriegerdaemon:
Ich hatte nämlich mal bei einer Referenz von einem anderen Arduino (Uno oder Nano?) was von negativen werden gelesen...

Da erinnerst Du Dich falsch. Kein Arduino kann negative Spannungen vertragen.
Du kannst negative Werte nur lesen, wenn die zu messende Spannung keinen Massebezug zu den 5V des Arduino hat, Du einen Pol auf eine 2,5V offset setzt ( 2,5V zB mit Spannungsteiler erzeugen) und die Spannung nicht größer als 5V Spitze-Spitze ist (ansonsten mit Spannungsteiler unter 5V bringen.

Grüße Uwe

Ah ok.
Ja, ich hab wohl in letzter Zeit etwas zuviel gelesen und verwechsle jetzt einige Informationen.
Naja, dass Du das mit den 3,3 V schonmal erwähnt hast, weiß ich aber Du hattest an der Stelle nur den Maximalwert angegeben. Für mich mit meiner falsch zugeordneten Info war das natürlich ein Grund, nochmal genau nachzufragen...