Forum: Mikrocontroller und Digitale Elektronik Spannung vom Shunt mit Arduino messen


von Azouz S. (achhab) Benutzerseite


Lesenswert?

Hallo Leute,

ich will am Shunt die Spannung über ARDUINO messen
die erstmal mit OP LM 358 verstärkt ist und mit A6 Pin verknüpft
als Last ist ein Blei gel Akku zum Aufladen

DC-DC, Shunt, Akku und dazu kommt OP LM358 und ARDUINO NANO V3

WIE SIEHT GENAU DIE sCHALTUNG AUS?
kann jemand mir helfen?

von Karl M. (Gast)


Lesenswert?

Hallo,

da gibt es die unterschiedlichsten Schaltungen und Anforderungen!

Ein LM358 ist hier keine gute Wahl, wenn man nicht nur einen Indikator 
haben möchte.

Siehe AN105 "Current Sense Circuit Collection"
https://www.analog.com/media/en/technical-documentation/application-notes/an105fa.pdf

Auch gibt es fertige I2C Mess ICs die man meistens passend Konfigurieren 
kann.

Alls Erstes solltest Du den Messbereich definieren, in etwas: 0-1000V, 
0-100A.

von Florian S. (Gast)


Lesenswert?

Azouz S. schrieb:
> Hallo Leute,
>
> ich will am Shunt die Spannung über ARDUINO messen
> die erstmal mit OP LM 358 verstärkt ist und mit A6 Pin verknüpft
> als Last ist ein Blei gel Akku zum Aufladen
>
> DC-DC, Shunt, Akku und dazu kommt OP LM358 und ARDUINO NANO V3
>
> WIE SIEHT GENAU DIE sCHALTUNG AUS?
> kann jemand mir helfen?

Prinzipiell sollte der Shunt einseitig auf Masse liegen (also nicht in 
der Plus-Leitung liegen). Die ADC-Eingänge des Arduino beziehen sich 
nämlich ebenfalls auf GND.
Und für den Rest der Schaltung zeichne mal deine ungefähren 
Vorstellungen auf, denn mit Prosa tun sich die meisten Leute unheimlich 
schwer...

von Wolfgang (Gast)


Lesenswert?

Florian S. schrieb:
> Prinzipiell sollte der Shunt einseitig auf Masse liegen (also nicht in
> der Plus-Leitung liegen).

Das kommt auf die Prinzipien an. Mit einem INA240 darf der Shunt 
irgendwo im Bereich -6V ... +90V liegen

Beitrag #5724454 wurde von einem Moderator gelöscht.
Beitrag #5724462 wurde von einem Moderator gelöscht.
von Jörg R. (solar77)


Lesenswert?

Azouz S. schrieb:
> ich will am Shunt die Spannung über ARDUINO messen
> die erstmal mit OP LM 358 verstärkt ist und mit A6 Pin verknüpft
> als Last ist ein Blei gel Akku zum Aufladen

Du möchtest einen Strom messen...der sich in welchem Bereich bewegt und 
mit welcher Genauigkeit gemessen werden soll?


Azouz S. schrieb:
> WIE SIEHT GENAU DIE sCHALTUNG AUS?

Schreien musst Du nicht. Und eine fertige Schaltung wird dir wohl kaum 
jemand liefern, zumal die genauen Anforderungen nicht bekannt sind. 
Vielleicht ist hier etwas für dich dabei:

https://eckstein-shop.de/Stromsensoren_1

#######

dshgktndflg schrieb im Beitrag #5724454:
> Florian S. schrieb:
>> denn mit Prosa tun sich die meisten Leute unheimlich
>> schwer...
>
> Und mit solcher zusammenhanglos dahingerotzten Prosa erst recht.
>
> dshgktndflg

...genauso wie Du deinen Nickname dahinrotzt und einen vollkommen 
sinnfreien Kommentar absonderst.

: Bearbeitet durch User
von Azouz S. (achhab) Benutzerseite


Lesenswert?

Dabei möchte ich den Strom über den Shunt steuern, aber wie ich weiss 
Arduino NAno misst keinen Strom, nur die Spannung. Daher habe ich die 
Spannung am Shunt verstärkt und dann am ARDUINO verknüpft

von Karl M. (Gast)


Lesenswert?

Azouz S.,

noch wurde keine Frage beantwortet, oder der Link auf das gesammelte 
Wissen gelesen, somit sehr ich kein Interesse an einer weiteren Hilfe.

Das eine LM358 nicht die beste Wahl ist, habe ich geschrieben.
Also was soll das werden?
Nur eine Anzeige dass da "ein" Strom fließt, messen gegen eine Referenz 
geht anders!

von Stefan F. (Gast)


Lesenswert?

Azouz S. schrieb:
> Daher habe ich die
> Spannung am Shunt verstärkt und dann am ARDUINO verknüpft

Und wie hast du das gemacht? Zeichne deinen Schaltplan auf, sonst können 
wir hier nur wild herum raten - was für den Fragenden (du) selten 
hilfreich ist.

von Azouz S. (achhab) Benutzerseite


Angehängte Dateien:

Lesenswert?

Das ist der Schaltplan
aber ich weiss nicht, ob das richtig ist

von Joachim B. (jar)


Lesenswert?

Azouz S. schrieb:
> aber ich weiss nicht, ob das richtig ist

ich auch nicht, ich drehe meinen Monitor nicht!

Azouz S. schrieb:
> ich will

ist immer ein guter Einstieg (ohne sich Mühe zu geben)

: Bearbeitet durch User
von Azouz S. (achhab) Benutzerseite


Angehängte Dateien:

Lesenswert?

oh habe ich nicht drauf geachtet
sorry

von Harald W. (wilhelms)


Lesenswert?

Azouz S. schrieb:

> ich will am Shunt die Spannung über ARDUINO messen

Grundsätzlich ist das zwar möglich, aber wenig empfehlenswert.
Wesentlich einfacher geht die Strommessung mit einem Multimeter.
Da diese inzwischen auch mit recht niedrigen Preisen schon
digitale Datenausgänge haben, kannst Du den Strom dann ja immer
noch digital auswerten.

von Jörg R. (solar77)


Angehängte Dateien:

Lesenswert?

Azouz S. schrieb:
> oh habe ich nicht drauf geachtet
> sorry

Gehe bloß nicht auf die Kommentare ein. Die haben die User nur zum Spaß 
und aus purer Langeweile geschrieben.


Azouz S. schrieb:
> Das ist der Schaltplan aber ich weiss nicht, ob das richtig ist..

Er ist vor allem etwas unübersichtlich gezeichnet. Es gibt heutzutage so 
viele kostenlose Programme um Schaltpläne zu zeichnen. Etwas mehr Mühe 
wäre daher wünschenswert. Zudem könntest Du Korrekturen viel schneller 
umsetzen.

Ich habe mir erlaubt den Plan noch etwas aufzuhellen.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Azouz S. schrieb:
> Das ist der Schaltplan aber ich weiss nicht, ob das richtig ist

Hast du mal ins Datenblatt vom LM358 geguckt?

Als Common mode input voltage range ist dort (VCC-) to (VCC+ -2V) 
angegeben.
Dein OP wird mit +/-5V versorgt und dein Shunt liegt auf 13.7V, wenn ich 
jetzt mal unterstelle, dass du die Masseverbindung zwischen 
OP-Versorgung und deiner Akkuschaltung einfach nur vergessen hast.

von Georg M. (g_m)


Lesenswert?


von Stefan F. (Gast)


Lesenswert?

Wenn du den Spannungsabfall am Shunt messen willst, genügt es nicht, nur 
ein Bein davon zu beobachten.

Außerdem liegst du damit warscheinlich außerhalb des funktionierenden 
Eingangs-Spannungs Bereiches. Vergleiche das mal mit dem Datenblatt.

von Stefan F. (Gast)


Lesenswert?

Anderer Lösungansatz ohne OP-Amp:
1
Netzteil
2
                Shunt
3
13,7V o---+-----[===]-----+------------------o + Akku
4
          |               |
5
         |~|             |~|
6
         |_|             |_|
7
          |               |
8
          +---o ADC1      +---o ADC2
9
          |               |
10
         |~|             |~|
11
         |_|             |_|
12
          |               |
13
GND o-----+---------------+------------------o GND

ADC1 misst die Spannung vom Netzteil
ADC2 misst die Spannung vom Akku
Die Differenz dazwischen zeigt den ladestrom an.

(ADC1 - ADC2) / Shunt = Ladestrom

von Wolfgang (Gast)


Lesenswert?

Stefanus F. schrieb:
> Wenn du …

Schön, dass du meine Anmerkungen noch mal mit deinen Worten wiederholst.
Der INA240 zeigt, wie es geht.

von Peter D. (peda)


Lesenswert?

Florian S. schrieb:
> Prinzipiell sollte der Shunt einseitig auf Masse liegen (also nicht in
> der Plus-Leitung liegen).

Z.B. mit dem ZXCT1110 kann man auch in der Plus-Leitung messen (bis 
36V).

von Joachim B. (jar)


Lesenswert?

Stefanus F. schrieb:
> Anderer Lösungansatz ohne OP-Amp:

das funktioniert recht gut, besonders bei ATmega mit Diff Eingänge und 
GAIN
wie z.B. ATmega 1284p

von Azouz S. (achhab) Benutzerseite


Lesenswert?

Ich danke euch für die Vorschläge
das ist der Code zu dem Schaltplan
stimmt der Code ?


int analogInPin = A6;
int analogInput= A0;
float R1=20000;
float R2=10000;
double vin=0;
double vout=0;
double TeilerValue=0;
double OpVolt=0;
double OpValue=0;

void setup() {
Serial.begin(9600); // serielle Ausgabe
}

void loop() {

double OpValue=analogRead(analogInPin); // read the A6 pin value
double OpVolt=( OpValue*5.0)/ 1023.0;
double TeilerValue = analogRead(analogInput); //Messwerte am analogen 
Pin als "values" definieren
double vout = (TeilerValue * 5.0) / 1023.0; // Messwerte in Volt 
umrechnen = Spannung am Ausgang des spgT.

Serial.println(OpVolt,2);


   delay (1000);
}

von Karl M. (Gast)


Lesenswert?

Hallo,

double steht nicht zur Verfügung!

Die Formel /1023 ist nicht richtig, prtm:
1
double OpVolt=( OpValue*5.0)/ 1023.0;
2
double vout = (TeilerValue * 5.0) / 1023.0;

Also wird es nicht mehr als ein Indikator, dass das da Spannung und 
Strom fließt.

Mehr als 5-7Bit sind dann mit den Anmerkungen zum Datenblatt nicht drin!

von Azouz S. (achhab) Benutzerseite


Lesenswert?

int analogInPin = A6;
int analogInput= A0;
float R1=20000;
float R2=10000;
double vin=0;
double vout=0;
double TeilerValue=0;
double OpVolt=0;
double OpValue=0;

void setup() {
Serial.begin(9600); // serielle Ausgabe
}

void loop() {

double OpValue=analogRead(analogInPin); // read the A6 pin value
double OpVolt=( OpValue*5.0)/ 1023.0;
double TeilerValue = analogRead(analogInput); //Messwerte am analogen 
Pin als "values" definieren
double vout = (TeilerValue * 5.0) / 1023.0; // Messwerte in Volt 
umrechnen = Spannung am Ausgang des spgT.

Serial.println(OpVolt,2);


   delay (1000);
}

von Karl M. (Gast)


Lesenswert?

Azouz S.,

Unsinn wir durch doppelte Posts nicht richtiger!

Keiner weiß auf welche deiner Hardwaremodule sich das beziehen soll und 
wie (ADC-Mode) so ein Atmel ADC arbeitet!

von Azouz S. (achhab) Benutzerseite


Lesenswert?

ist der gleiche Code, nur zwei geschickt
hihi

von Karl M. (Gast)


Lesenswert?

Azouz S.,

so ein Atmel ADC Eingang mit keiner Referenzspannungsqulle ist eh nur 
ein Schätzeisen.
Ohne ADC Offset- und Linearitätsfehlerkorrektur, kann man keine 
belastbaren Ergebnisse erhalten.
Variiert man dann noch die Temperatur, ist an möglichen Werte ohne Bezug 
nur ein Hinweis auf: das sollte eine Spannung oder Strom anliegen.

von Karl M. (Gast)


Lesenswert?

Azouz S.,

du solltest wirklich verstehen lernen, was hier ein richtiges Problem 
beschrieben wurde.

Wolfgang schrieb:
> Azouz S. schrieb:
>> Das ist der Schaltplan aber ich weiss nicht, ob das richtig ist
>
> Hast du mal ins Datenblatt vom LM358 geguckt?
>
> Als Common mode input voltage range ist dort (VCC-) to (VCC+ -2V)
> angegeben.
> Dein OP wird mit +/-5V versorgt und dein Shunt liegt auf 13.7V, wenn ich
> jetzt mal unterstelle, dass du die Masseverbindung zwischen
> OP-Versorgung und deiner Akkuschaltung einfach nur vergessen hast.

Am besten wäre vielleicht, Du baust das mal auf und achtest auf Qualm 
und Rauch, dann könntest Du darüber nachdenken, was passiert ist.

von spess53 (Gast)


Lesenswert?

Hi

>Die Formel /1023 ist nicht richtig,...

Stimmt. Wird aber auch mit /1023.0 nicht richtiger.

MfG Spess

von Korinthenkacker Entenklemmer (Gast)


Lesenswert?

spess53 schrieb:
> Hi
>
>>Die Formel /1023 ist nicht richtig,...
>
> Stimmt. Wird aber auch mit /1023.0 nicht richtiger.
>
> MfG Spess

Oh, oh, oh...

1/1000 Meßfehler (1023 statt 1024) bringt ihn sicher fast um....

Aber ja: Du hast Recht

von spess53 (Gast)


Lesenswert?

Hi

>Oh, oh, oh...
>1/1000 Meßfehler (1023 statt 1024) bringt ihn sicher fast um....

Das ist mir auch klar. Auch wenn das hier keine Rolle spielt, kann man 
Fehler nicht unwidersprochen stehen lassen. Früher oder später stolpert 
jemand über diesen Treat und nimmt das für bare Münze.

MfG Spess

von Harald W. (wilhelms)


Lesenswert?

spess53 schrieb:

Früher oder später stolpert jemand über diesen Treat
> und nimmt das für bare Münze.

Bestimmt:
https://www.dict.cc/?s=treat
:-)

von Mein Senf (Gast)


Angehängte Dateien:

Lesenswert?

Ich empfehle dir den INA226.
Misst Strom und Spannung und hat eine I2C Schnittstelle.
Breakoutboard gibts für 3,10 Euro in der Bucht.

Die Zeit, um dir ne Leiterplatte zu schnitzen kannst du dir sparen.
Oder hast du vor, das auf nem Steckbrett zusammenzubasteln?

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.