Messwiderstand zur Messung von Strömen für einen Batteriecomputer im Van.

  • Hallo =)

    ich habe ein neues Projekt und zwar möchte ich einen Batteriecomputer programmieren der misst, was an Energie in die Batterie fließt und was entnommen wird. Hierzu nutze ich den INA219.

    Da der interne Shunt nur für maximal 3.2A ausgelegt ist, habe ich mir von Conrad einen Shunt bis 100A besorgt. (https://www.conrad.de/de/p/wei…n-shunt-100-a-120921.html)


    Bei 100A fallen hier 0.06V ab.


    Code
    sudo pip3 install Adafruit-SSD1306 && sudo pip3 install pi-ina219 && sudo pip3 install openpyxl

    Ich habe den Shunt über I2C angeschlossen und die Bibliothek von Adafruit installiert und kann auch die Versorgungsspannung (Bus-Voltage laut Demo) auslesen. Diese habe ich mit dem Multimeter kontrolliert und das passt gut. Ich habe eine LED mit Vorwiderstand an den 3,3V oder den 5V-Port des Raspi angeschlossen, was eine korrekte Spannung der Verbraucher ausgibt. Jedoch ist die Spannung am Shunt absolut falsch, hier werden mir Werte von 0,01-0,04V ausgegeben, was ja einen Stromfluss von 16-67A bedeuten würde.

    Mein Script ist folgendes:

    Hier ein Beispiel:

    forum-raspberrypi.de/attachment/28480/


    Gemessene Shunt-Spannung liegt bei 0,04V, woraus sich 66,6A ergeben würden. Angeschlossen habe ich eine LED, die laut Multimeter 15,7mA zieht.


    Ich bin mir nun nicht sicher, wie ich weiter vorgehen soll. Die ausgegebene Versorgungsspannung der Verbraucher ist korrekt. Lediglich die Shuntspannung (und damit wohl zusammenhängend der Strom) stimmt nicht.




    Zweiter Ansatz:

    -----------------------------------------------------------------------------------------------------------------------

    Ich habe ebenso diese Anleitung probiert: Anleitung https://cdn-learn.adafruit.com


    sudo pip3 install adafruit-circuitpython-ina219


    Jedoch hänge ich bei der Installation der Adafruit's CircuitPython library bundle. (Steht auf Seite 17 der Anleitung)


    Es wird auf Seite 17 der Dokumentation geschrieben, dass ebenfalls Adafruit's CircuitPython library bundle (https://adafru.it/zdx) installiert werden soll. Die Beschreibung bezieht sich jedoch nicht auf Linux oder konkret den Raspberry Pi. Die Anleitung (https://learn.adafruit.com/wel…n/circuitpython-libraries) besagt, ich solle im Ordner CIRCUITPY einen Ordner lib erstellen. Ich habe an zwei Orten im Betriebssystem einen solchen Ordner:

    - \usr\lib\python3\dist-packages\thonny\plugins

    - \proc\1161\task\1161\root\usr\local\lib\python3.7\dist-packages


    Fehlermeldungen bekomme ich jedoch keine! Mein hierfür genutzter Quellcode:

    Hier werden mir jedoch trotz permanenter Spannungsquelle ohne irgendwelche Änderungen am System mal Spannungen ausgegeben und mal nicht.

    Es hängt eine weiße LED direkt an 3,3Volt. Sie soll laut Datenblatt 20mA ziehen, mit dem Multimeter habe ich 17,5mA gemessen.


    Ausgabe der Ina siehe hier:

    forum-raspberrypi.de/attachment/28483/



    Womit ich konkret Probleme habe ist folgendes. Ich denke, in der Konfiguration stimmt noch etwas nicht.



    Müsste ich hier die 60mV angeben, die beim Shunt abfallen wenn dieser mit dem maximalen Strom von 100A belastet wird? Die Option gibt es nämlich nicht.

    https://wolles-elektronikkiste.de/ina219 (Die Anleitung ist allerdings für Arduino!)


    Ich danke euch für jeden Tipp und hoffe, das ganze bald fertigstellen zu können!


    Viele Grüße

    Peter

  • Hast Du Dir mal das hier angesehen?

    https://www.makershop.de/sensoren/strom/sct013-30a/


    Man kann den Draht auch mehrmals durch die Öffnung legen.


    MfG


    Jügen

  • Hallo Jürgen Böhm, das ist eine gute Idee, jedoch erfüllt es meine Anforderungen leider nicht ganz. Der Shunt kann 100A ab und die werde ich kurzfristig zum betreiben eines 230V Mixers auch annähernd benötigen. Ich fürchte auch, dass es nicht so genau sein wird wie der Messshunt, oder täusche ich mich hier?

  • Du hast nen Mixer mit 23 kVA? Ok, ich komm mal auf nen Cocktail gespannt... bei dir gibts offenbar "All you can drink"-Portionen... ;)

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Ah, reingefallen... ich hatte den Strom auf die 230 V bezogen.... :X

    Muss man sich auch erst mal klar machen, wie schnell man da auf riesige Ströme kommt. Ob sich da schon ggf. empfiehlt, mit höheren Akkuspannungen zu arbeiten...?

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Der Shunt kann 100A ab und die werde ich kurzfristig zum betreiben eines 230V Mixers auch annähernd benötigen.

    Erinnert mich an diese tolle Werbung. Will it blend?


    Welche Betriebsspannung wird für den Mixer verwendet?
    Habe schon gehört, dass viele mit einem Wohnmobil auch Pumpen betreiben, die 50 A oder mehr Strom verbrauchen.

  • Hey,

    Die 100A beziehen sich natürlich auf 12V. Also ich betreibe ihn nicht auf Vollgas und schätze mal so mit 600-700 Watt plus die Ineffizienz des 230V Wandlers kommen da ordentliche Ströme zusammen. Das ist aber nur paar Sekunden!


    Wir schweifen aber ein wenig vom Thema ab... ;)

    Könnt ihr euch erklären, warum die Shuntspannung nicht stimmt? Dadurch das ich den Widerstand des Shunts angebe (Rshunt=0,06V/100A=0,0006Ohm), sollte die Konfiguration ja passen, oder habe ich hier den Denkfehler?


    Viele Grüße

    Jan

    Edited once, last by PanPeter ().

  • Was sagt denn das Messgerät zum Spannungsabfall am Shunt? Ist er wirklich 0,04 Volt? Kann ja kaum sein. Bei 15 mA wären das ja 83 KOhm. Da dürfte die LED nicht mehr leuchten.
    Der INA hat einen 10 Ohm Widerstand (stimmt doch, oder?) , deiner hat 0,0006 - das wäre ein Faktor 0,00006.

    Wenn ich mal 66,6 A mit diesem Faktor multipliziere komme ich auf ca. 4 mA. Vielleicht spielen auch noch die Gain-Stufen eine Rolle und dann könnte es das Doppelte oder vierfache sein - was dann mit 15 mA hinkäme. Kann das daran liegen, dass der Ina seine Berechnungen auf seine ursprüngliche Widerstandsgröße bezieht?


    Auf der anderen Seite sind bei 0,006 Ohm und 15 mA nur 0,000009 Volt zu erwarten. Kann der Ina sowas überhaupt messen?

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Ich hab ähnliches vor, einen Solarspeicher um meinen e-up zu laden.


    Vorab hab ich Experimente mit einen ähnlichen Strom/Spannungswandler gemacht. Bin auch auf keinen grünen Zweig gekommen. Mit dem AD-Wandler vom ESP32 kam gar nichts brauchbares raus. Hab dann als AD-Wandler einen ADS1115 eingesetzt. Damit wurde es deutlich besser. Die absoluten Meßwerte lagen daneben, aber blieben aber von einer Messung zur nächsten vergleichbar.


    Für die Überwachung des Ladezustands unbrauchbar. Da muß 0 = 0 sein. Ich will mir deshalb auch einen ähnlichen Shunt holen. Nur ne Nr. größer weil ich bis zu 250 A brauchen werde mit dem 2kW Ladaziegel. Und den Spannungsabfall am Shunt will ich mit dem ADS1115 direkt messen. Ich hoffe das klappt besser. Der ADS kann sowohl positive als auch negative Spannung messen. Was wir ja brauchen.


    Hinweise: Auf sauberen GND achten, ansonsten sind Messfehler vorprogramiert.

    Beim arbeiten mit Männerstrom sind isolierte Maul und Ringschlüssel sehr zu empfehlen. Die Kurzschlußströme liegen weit über 1000 Ampere.


    Ich benutze so einen: Ebay Ringschlüssel



    bis denne

  • Hallo Gnom , die Ina hat einen verbauten Widerstand von 0,1Ohm.

    Deiner Rechnung kann ich leider nicht ganz folgen, bin aber auch einfach cut platt... =D


    Jan Hird : Cool, dann haben wir echt ein ähnliches Setup. Du willst das jetzt schon auch mit dem Raspi messen, oder? Eventuell können wir uns da mal kurzschließen :)

    Hast du denn schon dein Setup (also nur mit einem kleineren Shunt bisher?)


    Viele Grüße

    Peter

  • Ich hatte die Infos oben so verstanden, dass er 320 mV Spannungsabfall bei 3,2 A hat - das wären 3,2/0,32 = 10 Ohm. Aber da hab ich wohl irgendwas nicht richtig erfasst.
    Ne, da fällt mir auch nichts brauchbares ein. Aber was sagen denn die Messwerte? Strom, Spannung, Spannungsabfall, Widerstand. Vielleicht hat man dir das falsche Teil geschickt.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Ich hatte einen Messaufbau zum testen der einzelnen Zellen, 90 Ah LYP (LiFePo) von Thundersky/Winston.

    Die Zellen sind 10 Jahre alt und haben 40.000 km auf dem Buckel. Der Messzyklus sah wie folgt aus:

    Laden auf 3,85 V

    Entladen und messen auf 2,8 V

    Laden auf 3,6 V

    Da ich mit moderaten Strömen geladen und entladen habe hat ein Messzyklus ca. 22 Std. gedauert.

    26 von 28 Zellen lagen bei ca. 80% der Kapazität, zwei Zellen deutlich drunter.


    Zuerst habe ich die Spannung vom IU-Wandler mit dem AD-Wandler vom ESP32 gemessen. Die Messwerte waren sehr stark verrauscht und unbrauchbar (auch Mittelwert / Median haben nicht geholfen).


    Dann habe ich die Spannung vom IU-Wandler mit dem ADS1115 gemessen. Das klappte wesentlich besser.

    Wenn ich allerdings via GPIO ein Relais geschaltet habe, dann hat sich der Nullpunkt verschoben. Das heisst ich habe einen Strom angezeigt bekommen obwohl keiner fließt.


    Für die Ent-Lade-Steuerung will ich jetzt 2 ADS1115 einsetzen, einer für die Spannungsüberwachung der Zellen, einer für die (rein/raus) Stromüberwachung .

  • Gnom: Der Shunt an dem 320mV abfallen ist der bei der Ina intern verbaute Shunt. Ich habe aber einen anderen Shunt verbaut.jedoch ist deine Rechnung verdreht.

    U = RxI => R = U/I = 0,32V/3,2A=0,1Ohm


    oder in meinem Falle mit dem großen Shunt:

    RShunt = 0,06V/100A=0,0006Ohm


    Ich habe aktuell leider nur LEDs als Verbraucher, da fließt aber ein so kleiner Strom dass ich den am Shunt nicht messen kann. Ich suche mir heute Abend mal einen größeren Verbraucher und gebe dann die Werte durch! Aber am Shunt sollte die passende Spannung abfallen, sprich etwa gar nichts bei 16mA =D

    Wenn ich mich in Reihe in den Stromkreis schalte, messe ich 15,7mA für die LED, Spannung entspricht den 3,3V des Pis.


    Jan Hird : Du hast in deinem Setup also keine Ina verwendet. Du misst direkt mit dem ADS1115 am Shunt, oder habe ich dich falsch verstanden?

    Edited once, last by PanPeter ().

  • Oh mann, manchmal hat man Aussetzer.


    Es kann ja irgendwie nur an der internen Umrechnung in Ina219 liegen. Der geht von 0,1 Ohm aus, es hängen aber 0,006 dran.


    Versteh ich das übrigens richtig, dass der INA intern nur maximal 320 mA Spannungsabfall messen kann? Dann wäre dein Widerstand für 100 A noch zu groß, denn da hast du R * I = 100 * 0,006 = 600 mA.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Man kann der Bibliothek den Widerstand mitteilen, dies mache ich im ersten Script das ich angebe in Zeile 7 bzw. 11.



    Dies Angabe des Widerstandes habe ich in diversen Scripten so gefunden, werde das aber nochmal überprüfen.

    Trotzdem müsste INA ja die Spannung am Shunt korrekt auslesen können, hier scheint mir der Fehler zu liegen...


    Nein, der maximale Spannungsabfall am Shunt beträgt 320mV, nicht mA. Welche Ströme über den externen Shunt fließen ist der INA egal. Hier wird nur der Spannungsabfall am Shunt gemessen und der beträgt bei meinem Shunt 60mV bei 100A und das kann ich dann ja runterrechnen auf jeden beliebigen Spannungswert den ich am Shunt messe. bei 30mV am Shunt wären das eben 50A, bzw. 25A bei 15mV usw.


    Deine Rechnung passt nicht, du bringst hier die unterschiedlichen Werte durcheinander. (U = R * I = 100 * 0,006 = 600 mA.)

    Der Widerstand des Shunts liegt bei 0,0006Ohm, sorry habe ich oben falsch geschrieben. Ist aber bereits editiert.

    So lautet die korrekte Rechnung: U = R * I = 0,0006Ohm * 100A = 0,06V == 60mV (was dem Spannungsabfall bei einem Strom von 100A entspricht. Aber das ist ja nur die Rückrechnung)


    Viele Grüße

  • So, ich konnte das Problem nun lösen. Es war tatsächlich eine defekte INA219 der Grund für die Mysteriösen Spannungswerte. Entweder war sie bereits defekt oder ich habe sie geschrottet. Jedenfalls tut es jetzt!

    Danke euch für die Hilfe! Jedoch habe ich bereits eine weitere Frage, die passt aber Thematisch nicht wirklich hier rein, weshalb ich einen neuen Thread eröffnen werde.