Fertig! (fast)

  • Hallo Bastel,
    wenn Du nicht weiß wo hin mit dem Strom, gebe ich Dir gerne ein Verlängerungskabel
    Ich kann es immer gebrauchen :mrgreen::mrgreen::mrgreen:


    Mach mal Bilder


    Gruß Mike

    3 x MultiPlus2

    6 x SmartSolar 150/35

    64 x 280Ah Lifepo4 EVE

    2 x Pana 5kW plus Ochsner IWP

  • Bin dabei mit Meereskabel , nennt sich Supergrid , dann waeren wir schneller als Desertec :mrgreen: ...... hab auch ein Pumpspeicherkraftwerk :lol:

  • Sooo noch ein Update:


    Ich habe den Prototyp meines Messwertumformers fertiggestellt! Ein Arduino Mikrocontroller nebst einiger Zusatz-Bauelemente und ICs misst Strom und Spannung während des Ladevorgangs, berechnet die Wattsekunden und gibt schließlich 1000 S0-Impulse pro erzeugter Kilowattstunde aus.


    Die Ladespannung wird per Spannungsteiler auf max. 1 Volt Messspannung reduziert. Die Strommessung ist etwas kniffliger. Am Kabel vom Laderegler zur Batterie fällt ca. 1 mV pro A Ladestrom ab. Diese sehr kleine Spannung wird mittels Operationsverstärker auf einen Wert bis maximal 1 Volt vervielfacht, was sich wieder prima mit dem Mikrocontroller messen lässt 8)




    Zusammen mit den drei Verbrauchszählern habe ich nun eine Vierkanalmessung mit SolarView@Fritzbox, einmal Erzeugung vom Laderegler (DC), und dreimal Verbrauch (AC).


    Bei der Erzeugung sieht man wunderschön
    09:00-09:30 Schatten einer riesigen Pappel (hätte nie gedacht dass die mich erwischt - zum Glück nur November bis Januar)
    09:45-11:15 Absorbing-Phase
    11:15-13:15 Überschuss-Verbraucher (Heizstab)
    danach Überschuss nur noch in kurzen Intervallen






    Mit Arduino beträgt der Materialpreis für den Messwertumformer ca. 50 Euro. Ein funktionsgleicher Messwertumformer wurde mir von DSL Electronic angeboten - für unglaubliche 300 Euro!!! Auch ich habe eine Schmerzgrenze :lol:


    Als nächstes muss ich alles hübsch ordentlich löten und in ein Gehäuse verpacken :lol:


    Bastel

  • Hallo Bastel,
    schöner aufbau
    Ihr seit zu beneiden, das ihr euch so mit Elektronik auskennt
    Da muß ich passen
    Haben würde ich so etwas auch gerne, vielleicht ist es ja ballt von Dir Marktreif
    Gruß Mike

    3 x MultiPlus2

    6 x SmartSolar 150/35

    64 x 280Ah Lifepo4 EVE

    2 x Pana 5kW plus Ochsner IWP

  • Hallo Bastel,


    könntest du mir mal den Schaltplan deines Aufbaus zukommen lassen.
    Mit was progarmmierst du, C?
    Würde das Ganze mal direkt mit einem Atmega versuchen, wenn meine Insel mal steht.


    Danke.


    Ultraschall81

    2,35 KWp, Midnite Classic 150 Lite, Victron Multiplus c24/3000, 200Ah LiFePo Batterie
    920Wp über SMA SB1300-TL AC gekoppelt

  • Jetzt hab ich mich endlich mal aufgerafft, die Schaltung für meinen self-made Messwandler zu dokumentieren. Zur Erinnerung: Mit Hilfe des Arduino Uno wird auf Basis von Spannungs- und Strommessung DC-seitig die produzierte Energiemenge ermittelt. Diese wird dann in ein Impulssignal (S0) umgewandelt und an Solarview@Fritzbox weitergereicht.


    Hier die verwendete Schaltung im Detail. Ich bin Elektronik-Laie, daher gibt es sicher viel Optimierungspotenzial! Für Denkanstöße bin ich sehr dankbar, ich würde die Schaltung dann entsprechend optimieren. Unten habe ich zu jeder Baugruppe deren Sinn und Zweck erläutert.




    (A) Spannungsmessung
    Spannungsteiler, mit dessen Hilfe die Ladespannung (22...32 Volt) auf ein vom Arduino Uno direkt messbares Niveau (0...5 Volt) gebracht wird. Mit einem Analog Input Pin (Auflösung 10 Bit) wird die Spannung dann direkt gemessen. Funktioniert super und störungsfrei.


    (B) und (C) Strommessung über Mess-Shunt und Operationsverstärker
    Am Mess-Shunt fällt pro Ampere Ladestrom eine messbare Spannung von einem Millivolt ab. Leider lassen sich so kleine Spannungen nur schlecht messen. Die Lösung für mich ist ein Operationsverstärker. DIeser ist zusammen mit Baugruppe (C) als primitiver nichtinvertierender Addierer aufgebaut. Dies hat folgenden Grund: Der verwendete Operationsverstärker arbeitet erst ab einer Spannung von ca. 1-2 mV am Eingang zuverlässig. Das bedeutet, dass Ströme unter 2 A schlecht bis gar nicht gemessen werden können. Aus diesem Grund habe ich mit dem Spannungsteiler (C) eine "Offsetspannung" von rechnerisch ca. 2-3 mV hinzugefügt.
    Der Operationsverstärker verstärkt die gemessene Spannung im Verhältnis der angeschlossenen Widerstände etwa um den Faktor 20, die resuliterende Spannung lässt sich dann mit dem Arduino Uno leicht messen.
    Vom Laderegler wird offenbar PWM-artig geladen, ich konnte jedenfalls beim Debuggen einen stark "wellenförmigen" Strom mit einer Frequenz von 10 Hz oder mehr beobachten, so genau konnte ich das nicht messen. Im Ergebnis schwankten die digitalisieren Messwerte sehr stark, der Mittelwert war aber recht präzise. Um schon in der Schaltung eine Glättung zu erreichen, habe ich den Elko (10 µF) hinzugefügt.


    (D) S0 Ausgang
    Nachdem der Arduino Uno aus Ladespannung und Ladestrom die Leistung und somit die Arbeit je Zeiteinheit errechnet hat, wird diese auf einen internen Arbeitszähler addiert. Bei Erreichen von 0,5 Wh wird ein Impuls am Output-Pin Ausgegeben. Ein S0-Ausgang ist laut Spezifikation (soweit ich diese verstanden habe) praktisch nur ein Optokoppler mit Vorwiderstand, der bei jedem Impuls kurz "öffnet". Die polrichtige Beschaltung ist wichtig. Ich habe noch eine LED eingefügt, damit ich bei jedem Impuls ein sichtbares Signal habe (LED blinkt).


    (E) Spannungsreferenz
    Der Arduino Uno besitzt interne Referenzspannungsquellen. Diese sind jedoch stark von der Versorgungsspannung abhängig, deshalb schwanken die Messwerte mit der Versorgungsspannung. Um diesen Effekt zu vermeiden, habe ich eine separate, sehr präzise Referenzspannungsquelle ergänzt. Diese sorgt für sehr stabile 2,56 Volt an ihrem Ausgang.


    Der Arduino Source-Code (in C) folgt im nächsten Post!


    Wie gesagt ich bin interessierter Elektronik-Laie und vermute, dass der Profi dies an meinem Schaltungsaufbau erkennen wird :lol: Also zögert nicht mit Verbesserungsvorschlägen!


    :danke:
    Bastel

  • Hier der Arduino Code, ich habe noch ein paar erläuternde Kommentare eingefügt.


    In Kurzform:
    - Strom und Spannung in dicher Folge messen
    - alle 100 ms die gemessene Leistung * Zeit aufsummieren (= Arbeit)
    - alle 100 ms prüfen, ob 0,5 Wh erreicht wurden (= 2000 Impulse pro kWh)
    - falls ja: Impuls-Pin auf "High" setzen und 0,5 Wh subtrahieren
    - und ein bissl Spielerei ("Blink") und Debugging (Serial output)


    Bei Fragen - fragen :lol:



    Die genauen Werte für ampX und ampY habe ich übrigens in einer kleinen Regressionsanalyse der tatsächlichen Messwerte mit Excel ermittelt. Man sieht deutlich, dass die Trendlinie nicht bei 0|0 schneiden würde, sondern eher bei 0,5|0. Dieser Vorgang der Kalibrierung muss bei jeder Hardware-Änderung durchgeführt werden.




    Bastel

  • Hallo Bastel,


    vielen Dank für die Schaltung und den Code. Auch wenn er für den Arduino ist, kann ich damit was anfangen. Programmiere sonst den Atmel direkt mit AVR Studio. (Evaluierungsboard)
    Zuerst einmal muss ich sagen, das ich auch nur Hobbybastler bin und dir somit nicht viel helfen kann.
    Trotzdem habe ich eine Anmerkung zu deiner Berechnung der Leistung. Um mir das zu erklären, habe ich mal ein Bsp durchgerechnet.


    Angenommen den LR läd die Batterie eine Stunde lang mit 24V/49A. (Keine Änderung der Spannung/des Stroms)
    Das heißt: Erbrachte Leistung ist 24V * 49A*1h= 1176Wh
    Wenn man das in deine Formel

    Zitat

    float watt = volt * ampere2;
    wattSekunden += watt * 0.1;"


    einsetzt kommt folgender Wert raus:


    Sec Wattsekunden
    0,1 117,6
    0,2 237,6
    0,3 357,6
    ... (Abgekürzt....)
    1,5 1797,6 (Fast ein Impuls, aber Bedingung noch nicht erreicht)
    1,6 1917,6 (Bedinung erfüllt-> Impuls)


    Das heißt, dein Messwandler sendet alle 1,6s einen Impuls. Das macht 2250 Impulse pro Stunde, was bei 2000 Impulse/h genau 1125Wh sind.


    Somit hast du eine Differenz von 51Wh.


    Nimmt man 50A Ladestrom stimmt das Ergebniss genau. Somit hast du nur negative Abweichungen.
    Ich weiß jetzt auf die Schnelle nicht wie man das viel besser machen kann, würde vielleicht die "Impulsgeberschwelle" auf 1775 ö.ä. setzen um den Fehler zu mitteln.


    Vielleicht ist aber die HW der Strommesseinrichtung eh nicht so ganz genau oder es stört dich nicht.


    Kann auch sein, dass ich deinen Code nicht richtig verstanden habe.


    Gruß


    Ultraschall81

    2,35 KWp, Midnite Classic 150 Lite, Victron Multiplus c24/3000, 200Ah LiFePo Batterie
    920Wp über SMA SB1300-TL AC gekoppelt

  • Hey Ultraschall,


    schön dass es dir gefällt :D eine Übersetzung in Assembler ist für dich sicher ein Klacks :D hab auch mal nen Bordcomputer für Audi 80 mit dem ATMega gebaut, inklusive Assembler-Code. Aus irgendeinem Grund gefallen mir höhere Sprachen aber besser 8)


    Zu deiner Anmerkung: Hast insofern recht, dass meine Impulse immer nur im Raster 100 ms erfolgen können. Diese Unschärfe nehme ich in Kauf. Ohnehin errechnet Solarview@Fritzbox, das ich zur Auswertung verwende, Mittelwerte uber 5 Minuten, weshalb der individuelle Impulsabstand bei mit nicht so wichtig ist. Zu einem kummulierten Fehler wie du ihn beschreibst kommt es jedoch nicht, und zwar weil:


    Wenn der Zähler voll ist (wattSekunden >= 1800) subtrahiere ich 1800:


    wattSekunden -= 1800;


    Bezogen auf dein Beispiel würden also 117,6 Wattsekunden im Zähler bleiben, der nächste Impuls deshalb schon einen "Takt" eher erfolgen. Es ergibt sich bei den Impulslängen (in ms) dann ein Muster aus etwas längeren und etwas kürzeren Impulsen, wodurch es im Mittel doch sehr genau wird.


    Die feste "Taktung" von 100 ms ist ein Kompromiss zur effektiven Verwendung der Timer Interrupts. So erreiche ich die höchstmögliche Präzision bei der Zeitmessung. Der Chip hat ja leider keine Uhr :shock: dafür nen präzisen Taktgeber.


    Bastel

  • Sehr schön


    Aber mal ne frage für 12 Volt system geht das net oder ?


    lg Timo

    PV 1 : 36 X 20 W Mono = 720 W
    PV 2 : 8 X 50 W Black Mono = 400 W
    WR : Victron Phönix Compact 2000 VA
    LR : 3 X Victron 100/30

    BMV : Victron 700

    Solarlog: Rapi Victron Venus
    NL : Fraron 12 V 50 A
    Akku : 1120 Ah SPzS 12 Volt System


    PV 3 : Balkon Anlage 1240 Watt Mono

    WR : Growatt 1500S


    PKW: Opel Ampera