Forum: Mikrocontroller und Digitale Elektronik Strom über Shunt mit Arduino Uno messen


von Petr t. (vicon)


Lesenswert?

Hallo liebes Forum,

ich habe eine Frage,
ich möchte gerne mit einem Arduino Uno, über einen Shunt den Strom über 
den Spannungsabfall messen.
Ich möchte 1-2A messen und jetzt weiß ich nicht wie sich der Arduino 
dann verhält, wenn durch den Spannungsteiler so ein großer Strom fließt, 
bzw. wie sich das auf den Analog eingang auswirkt.

Würde mich freuen wenn mir jemand dazu was sagen könnte :)

danke

von Diek (Gast)


Lesenswert?

Der Arduino "sieht" doch nichts vom Strom, der misst ja eigentlich nur 
den Spannungsabfall über den Widerstand.

von Joachim B. (jar)


Lesenswert?

Diek schrieb:
> Der Arduino "sieht" doch nichts vom Strom,

er "sieht" aber möglicherweise eine hohe Spannung, evtl. 1000V oder 
Wechselspannung, das ist alles nicht so prickelnd.

Wenns "nur" Gleichstrom am Shunt ist kann man den Arduino ja mit einem 
DC/DC Wandler galv. getrennt hochlegen.

von Harald W. (wilhelms)


Lesenswert?

Petr t. schrieb:

> ich möchte gerne mit einem Arduino Uno, über einen Shunt den Strom über
> den Spannungsabfall messen.

Eigentlich läuft das eher umgekehrt: Du baust eine Strommessschaltung
und kannst deren Ausgangsspannung mit Deinem Arduino digitalisieren.
Das macht aber nur Sinn, wenn Du irgendwelche Berechnungen mit dem
Stromwert machen willst. Nur für eine Anzeige nimmt man besser
spezialisierte Anzeigeschaltungen.

von Petr t. (vicon)


Lesenswert?

Danke schon mal für die ganzen Antworten,

also das war mein Fehler, ich habe vergessen zu sagen worum es geht ^^.
Die Spannung wird maximal 5V haben und ich wollte den Strom im Arduino 
berechnen: I=Udrop/Rshunt

Wenn es so falsch korrigiert mich bitte.

Danke

von Karl H. (kbuchegg)


Lesenswert?

Petr t. schrieb:
> Danke schon mal für die ganzen Antworten,
>
> also das war mein Fehler, ich habe vergessen zu sagen worum es geht ^^.
> Die Spannung wird maximal 5V haben und ich wollte den Strom im Arduino
> berechnen: I=Udrop/Rshunt
>
> Wenn es so falsch korrigiert mich bitte.

Nö, ist schon ok.

Nichts desto trotz läuft der Strom von 1 bis 2A ja nicht durch den 
Arduino. D.h. der kriegt davon nichts mit. Du solltest dir eher mal 
ausrechnen, wie gross denn der Spannungsabfall am Shuntwiderstand 
überhaupt sein wird und mal überlegen, ob und wie genau du das messen 
kannst.

von Harald W. (wilhelms)


Lesenswert?

Petr t. schrieb:

> ich wollte den Strom im Arduino berechnen: I=Udrop/Rshunt

Da Rshunt konstant ist, was soll da noch gross berechnet werden?

von Joachim B. (jar)


Lesenswert?

Harald W. schrieb:
> Da Rshunt konstant ist, was soll da noch gross berechnet werden?

na schrieb er doch:

Petr t. schrieb:
> den Strom

Der Arduino sieht nur eine Spannung und gibt dir nur ADC Werte 
einheitenlos aus, um von da auf den Strom zu kommen muss man schon 
rechnen.

Umess/ Shunt = I
Umess = ADC * m + b

m ist die Steigung
b der Offset

somit wäre:

I = ( ADC * m + b ) / R shunt

von Harald W. (wilhelms)


Lesenswert?

Joachim B. schrieb:

> um von da auf den Strom zu kommen muss man schon rechnen.

Hmm, ob da wohl auch ein Arduino eingebaut ist?
http://www.historische-messtechnik.de/images/00548_d_siemens_amperemeter_innen2.jpg

von CAN-Fan (Gast)


Lesenswert?

Wenn der Spannungsabfall gering sein muss, kannst du auch z.B. den 
pac1710 nehmen. Der integriert dir sogar den Strom und du bekommst per 
I2C die Energie, Strom oder Spannung.

Dazu gibt es von der z.B. Isabellenhütte 4-Leiter Shunts. Beide Bauteile 
bekommst du für ca. 5€.

So wie beschrieben funktioniert es im prinzip auch, kann aber Probleme 
mit der Genauigkeit geben. Gerade wenn du lange Kabeln zum messen hast 
und vll 50 mV Spannungsabfall.

von Karl H. (kbuchegg)


Lesenswert?

Harald W. schrieb:
> Joachim B. schrieb:
>
>> um von da auf den Strom zu kommen muss man schon rechnen.
>
> Hmm, ob da wohl auch ein Arduino eingebaut ist?

er hat  ja nicht gesagt, dass man unbedingt einen Arduino zum rechnen 
braucht.

> 
http://www.historische-messtechnik.de/images/00548_d_siemens_amperemeter_innen2.jpg

klasse Beispiel für einen Analogrechner.

von Joachim B. (jar)


Lesenswert?

Harald W. schrieb:
> Hmm, ob da wohl auch ein Arduino eingebaut ist?

aber die Frage vom TO hast du gelesen?

Bist du Mathematiker?
http://www.uwenowak.de/humor/mathewitze.xhtml

von Harald W. (wilhelms)


Lesenswert?

Joachim B. schrieb:

> aber die Frage vom TO hast du gelesen?

Gelesen habe ich sie schon; sie ist allerdings recht unverständlich
formuliert. Ich nehme an, er will mit dem Arduino ohne irgendwelche
Zusatzteile ausser dem Shunt, einen Strom messen, was normalerweise
nicht geht.

von Joachim B. (jar)


Lesenswert?

Harald W. schrieb:
> ohne irgendwelche
> Zusatzteile ausser dem Shunt, einen Strom messen, was normalerweise
> nicht geht.

da gebe ich dir Recht,

im günstigsten Fall ist der Strom DC und die Spannungen innerhalb der 
Arduino VCC, dann könnte es mit 2 ADC und einer Differenzmessung 
klappen.

Ab mega32 hat man sogar diff. Eingänge mit wählbarer Verstärkung und 
kann den aufgenommenen Batteriestrom messen, aber Arduino und 
m32/644/1284p muss man sich erst mal beschaffen.

von Petr t. (vicon)


Lesenswert?

Harald W. schrieb:
> Joachim B. schrieb:
>
>> aber die Frage vom TO hast du gelesen?
>
> Gelesen habe ich sie schon; sie ist allerdings recht unverständlich
> formuliert. Ich nehme an, er will mit dem Arduino ohne irgendwelche
> Zusatzteile ausser dem Shunt, einen Strom messen, was normalerweise
> nicht geht.

Warum geht das nicht ?
An sich ist es doch ein Spannungsteiler, ich messe die Spannung die über 
den Shunt abfällt.

CAN-Fan schrieb:
> Wenn der Spannungsabfall gering sein muss, kannst du auch z.B. den
> pac1710 nehmen. Der integriert dir sogar den Strom und du bekommst per
> I2C die Energie, Strom oder Spannung.

Der IC sieht gut aus und I2C hat er auch, aber leider im DFN Format, 
somit leider nicht geeignet :( Aber dennoch danke

Joachim B. schrieb:
> Der Arduino sieht nur eine Spannung und gibt dir nur ADC Werte
> einheitenlos aus, um von da auf den Strom zu kommen muss man schon
> rechnen.
>
> Umess/ Shunt = I
> Umess = ADC * m + b
>
> m ist die Steigung
> b der Offset
>
> somit wäre:
>
> I = ( ADC * m + b ) / R shunt

Wird das so funktionieren ?
Wie finde ich m und b beim Arduino heraus ?

Danke

von Peter (Gast)


Lesenswert?

Harald W. schrieb:
> ch nehme an, er will mit dem Arduino ohne irgendwelche
> Zusatzteile ausser dem Shunt, einen Strom messen, was normalerweise
> nicht geht.

Wieso sollte das nicht gehen? Du musst nur den Widerstand groß genug 
machen, dann fällt auch genügend Spannung darüber ab.

von Harald W. (wilhelms)


Lesenswert?

Peter schrieb:
> Harald W. schrieb:
>> ch nehme an, er will mit dem Arduino ohne irgendwelche
>> Zusatzteile ausser dem Shunt, einen Strom messen, was normalerweise
>> nicht geht.
>
> Wieso sollte das nicht gehen? Du musst nur den Widerstand groß genug
> machen, dann fällt auch genügend Spannung darüber ab.

Ja, am besten für 5V dimensionieren. Die zusätzlichen 10W
Heizung sind bei den derzeitigen Aussentemperaturen sicher-
lich erwünscht. :-)

von Hubert G. (hubertg)


Lesenswert?

Du musst den Shunt gegen GND schalten.
Wenn er 0,5Ohm hat, dann fallen bei 2A 1V ab. Die interne Referenz des 
Mega328 ist 1,1V. Damit kannst du dir bei 10bit ADC ausrechnen wie groß 
die Auflösung ist. Nach Daumenpeilung bei etwa 5mA.
Wenn die das genügt steht dir nichts mehr im Weg.

von Karl H. (kbuchegg)


Lesenswert?

Hubert G. schrieb:

> Wenn die das genügt steht dir nichts mehr im Weg.

Nicht so schnell.
Da gibt es noch eine Nebenbedingung.
Wenn von 5V 1V am Shunt abfällt, bleibt für den Verbraucher (dessen 
Stromverbrauch zu messen ist), nur noch 4V übrig. Der kann damit noch zu 
recht kommen oder auch nicht.
Weiters werden damit logischerweise 20% der eingesetzten Energie im 
Shunt verbraten. Auch nicht gerade wünschenswert.

@Petr
Normalerweise soll ja ein Messgerät das zu messende Gerät möglichst 
wenig beeinflussen. In diesem Fall bedeutet das, das der Shunt 
Widerstand klein sein soll, damit an ihm eben nicht so viel Spannung 
abfällt, dass das die zu messende Schaltung beeinflusst. Je kleiner der 
Widerstand wird, desto kleiner auch der maximale Spannungsabfall bei 2A. 
Aber: je kleiner der Spannungsabfall, desto kleiner wird auch der 
maximale Zahlenwert, den du vom ADC bekommst. Je kleiner der aber 
wiederrum wird, desto schlechter wird die Auflösung des Messergebnisses.

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Petr t. schrieb:
> Wie finde ich m und b beim Arduino heraus ?

https://de.wikipedia.org/wiki/Geradengleichung

m = (y1-y2) / (x1-x2)

y1 = ein Spannungswert, x1 der gemeldete ADC Wert
y2 = ein Spannungswert, x2 der gemeldete ADC Wert

kann ja von einem Netzgerät oder ein Poti angelegt werden und mit einem 
Voltmeter gemessen werden.

b = Umess bei ADC 0  (kann ja 0 sein muss aber nicht)

von Lukas (Gast)


Lesenswert?

Hier eine Komplettlösung mit einem vernetzten Shunt: 
http://www.aeq-web.com/vernetztes-voltmeter/?ref=frm

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
Noch kein Account? Hier anmelden.