Go Down

Topic: Strommessung mit analogen Eingängen des Arduino? (Read 26971 times) previous topic - next topic

benny66766

Hallo Arduino Leute,
ich habe ein Verständnisproblem und hoffe Ihr könnt mir helfen.

Ich bin im Besitz eines ATmega1280 mit einem Arduino-Mega-Board, damit möchte ich Strom messen.
Ich dachte da sofort an die analogen Eingänge, wobei 15 Eingänge existieren, ich aber anscheinend zwei zum Messen brauche (also nur ca 6 verschiedene Messungen machen kann)?

Was mir aber noch viel mehr Probleme bereitet ist, dass ich nicht weiss, mit wieviel mA ich die analogen Eingänge belasten darf.

Da ich bei meinen Messungen von bis zu 400 mA messen muss, was sowieso für n direkten Anschluss an ein IC-Beinchen bestimmt tödlich ist, wollte ich fragen wie man da ran gehen kann an die Sache.

Ich habe die Chip-Dokumentation des ATmega1280 von atmel durchgesichtet, jedoch wird dort im Kapitel "Electrical Characteristics" nur von Pull-up Widerständen, Leckströmen und max. Ausgangsspannugnen gelistet. Ich sehe nicht, dass sie einen maximal  verkraftbaren am analog-Eingang anliegenden Eingangsstrom angeben.

Nach meiner Rechnung komme ich auf folgendes, was meiner Meinung nach nicht ganz richtig sein kann:

- 1024 Mess-Schritte -> 0,0048V / Schritt
- Ich möchte 1mA / Schritt messen.
- R = U/I = (0,0048V)/(1mA) = 4,8 Ohm ??? (das geht doch nicht, oder?)

selbst wenn ich die Messschritte kleiner gestalte (z.b. 400) komme ich trotzdem auf R=12,8 Ohm... und wo hänge ich die dann rann?

Vielen Dank für die Kritik... Gruss Benny

Joghurt

#1
Aug 10, 2010, 03:56 pm Last Edit: Aug 10, 2010, 04:00 pm by Joghurt Reason: 1
Also soweit ich das verstehe brauchst Du pro Messung nur einen analogen Eingang. An den schließt Du Deinen 4,8 Ohm-Widerstand gegen Masse an, und zusätzlich Deinen Verbraucher, der gegen 5 Volt geht.

Wenn Dein Verbraucher nun Strom "verbraucht", dieser ihn also durchfließt, dann wird der Strom auch durch den 4,8 Ohm-Widerstand (das ist dann der "Shunt") fließen, es wird eine Spannung abfallen die proportional zum fließenden Strom ist, und das kannst Du messen. :)


Optimaler, weil weniger beeinflussend, wäre natürlich eine OpAmp-Schaltung.

benny66766

Hallo Joguhrt,
danke für die schnelle Antwort.

Ich habe das mit dem "shunt" auch gerade angelesen. Ich arbeite aber mit Stromzangen, die hängt man einfach über das Starkstromkabel und diese liefert einem ein 1000:1 Verhältnis bis zu 400A, also bis zu 400mA... Wie würde es da aussehen mti der Verkabelung?

Joghurt

#3
Aug 10, 2010, 04:07 pm Last Edit: Aug 10, 2010, 04:09 pm by Joghurt Reason: 1
Das ist ja sogar noch einfacher: :)

Einfach zwischen die beiden Pole der Stromzange nen Widerstand schalten, und das eine Ende des Widerstands zusätzlich auf Masse beim Arduino und das andere Ende zusätzlich direkt in einen analogen Eingang.

Über I=U/R kannst Du dann berechnen, wieviel Strom da fließt.

Bei Stromzangen geht aber anscheinend nur Wechselstrom einfach, Gleichstrom ist ungleich komplizierter...

uwefed

Hallo benny66766

Welche Stromzange hast Du?
Das mit dem Widerstand stimmt, aber Du mußt den richtigen Wert nehmen der vom Innenwidesrtand des Stromwandlers abhängt.
Außerdem darf ein Stromwandler NIE ohne shunt betrieben werden da ansonsten eine hohe Spannung am Augang anliegt.

Grüße Uwe

komputer

Hallo benny66766

evtl helfen dir diese Seiten weiter :
http://openenergymonitor.org/emon/
habe auf dieser Basis mit einem Arduino Mega ein Strom Monitoring System mit 10 Eingängen gebaut:
http://www.komputer.de/wordpress/?p=8

Du solltest berücksichtigen dass die Spannung aus deiner Strommesszange auf keinen Fall (z.B. Kurzschluss in deinem "Starkstromkreis") die zulässige Eingangsspannung überschreitet - die internen Schutzdioden vertragen glaube ich aus dem Kopf raus maximal 1mA....
Ausserdem sollte dein Eingangswiderstand auf keinen Fall mehr als 20kOhm betragen (vor allem wenn du mehr als 2-3 Analogeingänge nutzen willst) sonst gibts Messfehler...

Habe mein Projekt auch noch nicht ganz abgeschlossen - muss noch externe Schutzdioden verbauen - hoffe komme in den nächsten Tagen dazu....


Viele Grüsse,   Michi

benny66766

Ich hatte mir beispielsweise diese zange ausgesucht:
http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=D15;GROUPID=542;ARTICLE=30701;START=0;SORT=artnr;OFFSET=16;SID=15PMQiUqwQAQ8AAG-WdBg8323c28528246fcc080b76b8a0317c03

Danke für die vielen Anregungen erstmal, ich habe aber immer noch das Problem aus der Doku des ATmega1280 z.B. den Innenwiderstand eines analogen Eingangs zu finden (gibt es überhaupt einen?), oder den max. zulässigen Eingangsstromes.

Die Zange hat ein Ausgabeverhältnis von 1000:1, dh. für gemessenen 1A => 1mA, ich muss maximal 400A => 400mA messen können.

Einen Shunt würde ich nutzen, um den Strom noch kleiner und für die analogen Eingänge verträglicher zu machen.

Ich kann aber nicht anfangen, eh ich mir nicht sicher bin wie die Eingänge zu beschalten sind und was sie vertragen. Das muss doch im Datenblatt bei www.atmel.com stehen, oder?

Joghurt

Quote
Einen Shunt würde ich nutzen, um den Strom noch kleiner und für die analogen Eingänge verträglicher zu machen.

Nein, der Shunt wird nicht in Reihe zum analogen Eingang geschaltet, sondern parallel zum Arduino zwischen dem analogen Eingang und Masse. Damit gehts dann nur um Spannung, nicht um Strom. ;)

benny66766

#8
Aug 11, 2010, 11:47 am Last Edit: Aug 11, 2010, 11:49 am by benny66766 Reason: 1
Hallo Joghurt,
ja das stimmt natürlich. Da ergeben sich aber noch mehr Fragen. So lange ich nicht aus dem Datenblatt lesen kann wie die max. Strombelastung am Eingang sein darf, kann ich nichts planen.

Nach meiner Rechnung:
-> 1024 Mess-Schritte => 5V/1024 = 0,0048V
-> Leider habe ich im Datenblatt lesen können, dass eine ungenauigkeit von +/- 2 Mess-Schritten existiert.
-> R = U/I = 0,0048V/1mA = 4,8 Ohm
-> Bei einer messung Umess = 1,92V wüsste ich dann bei 4,8 Ohm Widerstand, dass ein Strom von 400mA ~ 400A anliegt.

Bin ich da auf dem richtigen Wege?

Das macht aber kein Sinn mehr, wenn z.B. die max. Strombelastung am analogen Eingang 1mA beträgt, ich aber bis zu 400mA messen können muss...

Die Messzange liefert mir ja schon 1mA ~ 1A, ich müsste demnach einen passenden Widerstand wählen, so dass die Spannung noch für den Arduino messbar ist aber der Strom den Eingang nicht zu sehr belastet.

komputer

#9
Aug 11, 2010, 12:00 pm Last Edit: Aug 11, 2010, 12:02 pm by komputer Reason: 1
...ich denke du denkst da verkehrt ;-)

Eingangswiderstand vom Atmel ist erstmal uninteressant.
Du Belastest deine Stromzange mit einem externen Widerstand (hier spricht man von Bürde nicht von Shunt). Wie Joghurt sagte - parallell zur Zange.
An diesem fallt eine Spannung ab die dein Arduino messen kann.

Beispiel: externer Widerstand 1kOhm   -  Strom von der Messzange 1mA
entspricht  1V and deinem Eingang

Wie hoch dieser Widerstand für optimale Linearität deiner Stromzange ist sollte im Datenblatt stehen.

Viele Grüsse,   Michi



uwefed

#10
Aug 11, 2010, 12:10 pm Last Edit: Aug 11, 2010, 12:11 pm by uwefed Reason: 1
hallo benny66766

Warum nimmst Du nicht dieses Model; als Ausgang hast Du eine Spannung proportional zum Strom. http://www.reichelt.de/?ACTION=3;GROUP=D15;GROUPID=542;ARTICLE=75325;SID=26gX9xS6wQARoAAEKh4P0adc7331eec97e68f1fc0a1becb314330

So brauchst Du am Arduino nur die Spannung zu messen und Dir keine Sorgen machen um eine Shund ecc.

Grüße Uwe

benny66766

wow... jetzt bin ich erneut verwirrt (haha)...

Das sind ja super-dinger, aber ich sehe folgendes:
Code: [Select]
Technische Daten
? ACA: 200 A, ± 2,0 % + 0,5 A (40 - 400 Hz)
? Ausgang: 1 mVAC / A
...


Das heißt:
-> 2 % Fehlertoleranz und in 0,5 A Schritten
-> am Arduino-Eingang würde dann eine Wechselspannung von mind. 1mVAC / A liegen?

Auf der Herstellerseite habe dagegen die Daten gelesen:
-> 200 A; ± 2,0 % + 0,5 A (40 - 400 Hz); 1 mV/A

D.h. es wird mir doch eine Gleichspannung am Ausgang geliefert, richtig?

Ich muss bei <=5% Fehlertoleranz bleiben, ich benötige 6 dieser Zangen. Wäre das da nicht kritisch?

LC_Data

Ich denke mal, nach Ansicht des Angebots von Reichelt, wirst Du nicht umhin kommen die Meßspannung gleichzurichten und zu glätten.
Dann solltest Du eine Mittelwertbildung coden um die Meßfehler zu verringern.

LC_Data

udoklein

Wozu möchtest Du Strom von was messen? So wie Du fragst kennst Du Dich nicht sehr gut aus. Warum tut es kein einfaches Meßgerät? Also sowas:
http://www.pollin.de/shop/suchergebnis.html?S_TEXT=multimeter ?

Udo

Check out my experiments http://blog.blinkenlight.net

webmeister

Diese Stromzange ist für AC-Messung ausgelegt.

Um den Ausgangswert (auch eine Wechselspannung) mit dem Arduino zu messen, muss diese in eine Gleichspannung umgewandelt werden. Du brauchst als einen Messumformer oder eine Messumformerschaltung.

Go Up