Hallo zusammen, habe hier als Stromsensor einen ACS712 30A bidirektional, der hängt an einem 5V Spannungsregler L7805. Recht simpel gestaltet alles. Nun zeigt der ACS sehr starke Schwankungen des Nullpunktes, was einen Fehler von +/- 50 ... 100 mA ergibt. Schwanken tut er auf so fast alles, Temperatur, Lage, Magnetfelder...?! Ist das bekannt? Gibt's da irgend ne gängige Abhilfe oder Alternative? Strommessung per Shunt muss leider ausfallen. Besten Dank! : )
Beitrag #7606516 wurde vom Autor gelöscht.
Der Sensor gibt 66mV pro Ampere aus. Das macht 6,6mV bei 100mA. Mit was misst du diese Spannung des ACS? Ein Arduino ADC hat 10bit, macht 1024 Werte von 0-1023. Bei 5V Betriebsspannung ergibt das 4,88mV/bit. Wenn der nur um 3 bit wackelt hast du deine +-100mA. Punkt 1: gleitenden Mittelwert in Software bilden Punkt 2: Besseren ADC einsetzen, die gibts zuhauf mit 12-24bit per SPI oder I2C. Alles über 12bit braucht einen guten Aufbau, alles ab 16bit einen sehr sehr guten Aufbau mit getrenntem Analog und Digitalteil auf der PCB und einigen Filtern. Also kauf dir zum Testen einen ADS1115 als Breakout-Bord, damit dürfte es schon viel besser werden. Oder verwirf den ACS712 und nimm einen 75mV Shunt Widerstand + INA226. Der ist genau für sowas gebaut: Genaue Strommessung. https://www.mouser.de/datasheet/2/54/css2h_2512-1862180.pdf Der 2.3mOhm sollte passen für deine 30A Aber auch hier gilt: Gutes Layout und Filter machen die Genauigkeit aus.
Ich finde eine Schwankung von +/-100mA bei einem +/-30A Sensor nicht besonders viel: ca. 0,3% vom Nennwert. Wenn du da was wirklich besseres haben willst (also noch weniger Abhängig von externen Einflüssen), musst du schon tief in die Tasche greifen. Brauchst du denn wirklich die volle Bandbreite -30...+30A und dazu die hohe Genauigkeit in kleinen Messbereichen?
> Ich finde eine Schwankung von +/-100mA bei einem +/-30A Sensor nicht
Ich kenne den Sensor hier nicht, aber ich haette schon gedacht das so
20-30mA erreichbar ist bei einem guten Aufbau. Aber natuerlich ist man
ab 100mA schon im Bereich des Finetunings.
Vanye
Danke Paul und Gerrit, ja in der Tat. So gesehen liegt es in dem von euch genannten Schwankungsbereich. Nutze dahinter einen Adafruit Feather M0 Adalogger mit ATSAMD21G18 ARM Cortex M0 Prozessor. Die Bitauflösung der Analog-Ins hab ich gerade nicht zur Hand. Gleitenden Mittelwert habe ich zum Teil umgesetzt. Das Programm speichert jede 1 Sekunden (= 1 Programmdurchlauf) einen Messwert. Dieser wird als Mittelwert aus je 500 ... 700 Einzelmessungen erfasst. Im Postprocessing dann nochmal als gleitender Mittelwert über 10 min = 600 s geglättet. Das sieht dann so wie im Bild gezeigt aus. Zum Messbeispiel: Gemessen wurde der Ladestrom einer kleinen Solarzelle in einen 12V KfZ-Akku. Nachts, also zw. 18 und 6 Uhr sollte definitv nur der Eingebedarfsstrom des Ladereglers laufen. Per Multimeter auf 8 mA gemessen. Die Schwankungen zw. 9 und 18 Uhr sind die des Ladestroms, hier bei schlechtem Wetter. Lässt sich da noch was machen oder ist das tatsächlich die Grenze des Machbaren?
:
Bearbeitet durch User
Gerrit W. schrieb: > Brauchst du denn wirklich die volle Bandbreite -30...+30A und dazu die > hohe Genauigkeit in kleinen Messbereichen? Ja schon gern. Ist ein Eigenbauprojekt der Ladezustandsüberwachung des Akkus im Wohnmobil. +/- 30A unbedingt, da dies schnell erreicht ist beim Laden und allg. Nutzen. Genauigkeit um wenige mA: ja! Besonders um z.B. Festzustellen, ob sich der Eigenverbrauch der Solarladeregler lohnt, gerade im Winter wo nur wenig Strom per Solar entsteht. Für die Bilanzbildung über mehrere Tage und Wochen hinweg summiert sich dieser Fehler schnell auf und führt zu unbrauchbaren Ergebnissen.
:
Bearbeitet durch User
Thomas W. schrieb: > Ja schon gern. Ist ein Eigenbauprojekt der Ladezustandsüberwachung des > Akkus im Wohnmobil. Habe ich auch mal gebaut, allerdings mit Shunt und INA226. Ist wesentlich genauer, lässt sich gut justieren und es gibt reichlich Libs dafür. Ich habe damals einen INA226 und einen Pegelwandler (PCA9600) auf eine kleine Platine gesetzt und direkt an einem 75mV 100A Shunt verbaut. Auf meiner Auswerteplatine war der uC und ebenfalls ein PCA9600, der den Pegel wieder zurückübersetzt hat. Die Strecke dazwischen war ca. 5m. Das hat wunderbar geklappt. Der INA misst auch gleich die Boardspannung mit und gibt dir die Leistung mit aus. Ich würde es wieder so lösen.
> Genauigkeit um wenige mA: ja!
Das kannst du aber ohne Shunt vergessen.
Vanye
Da es sich im Grunde um einen Hall Sensor handelt, würde ich insbesondere auf folgendes achten: 1) thermisch stabiliseren (gegen Temperatur bedingten Drift) 2) magnetisch abschirmen (gegen Einflüsse von äusseren Magnetfeldern) - idealerweise mit Mu-Metall
Vanye R. schrieb: > Ich kenne den Sensor hier nicht, aber ich haette schon gedacht das so > 20-30mA erreichbar ist bei einem guten Aufbau. Der eigentliche Sensor ist ein Magnetfeldsensor ohne irgendwelche Umgebungsfeldkompensation. Da darf man sich nicht wundern, wenn der auf Magnetfelder reagiert. Wie empfindlich der ACS712 auf Umweltgrößen reagiert, steht im Datenblatt. Thomas W. schrieb: > Schwanken tut er auf so fast alles, Temperatur, Lage, Magnetfelder...?! Lage ändert aus Sicht des Sensors die Richtung des Erdmagnetfeldes.
:
Bearbeitet durch User
> Der eigentliche Sensor ist ein Magnetfeldsensor ohne irgendwelche > Umgebungsfeldkompensation. klar, aber die ueblichen Stromzangenmultimeter die auch DC koennen liegen ja auch in etwa so in der Groessenordnung. Ich selber hab den iProber hier. Der versinkt auch so ab 5mA im Rauschen obwohl der vermutlich aufwendiger gerarbeitet ist und von absoluter Genauigkeit reden wir da garnicht. Vanye
Vanye R. schrieb: >> Der eigentliche Sensor ist ein Magnetfeldsensor ohne > irgendwelche >> Umgebungsfeldkompensation. > > klar, aber die ueblichen Stromzangenmultimeter die auch DC koennen > liegen ja auch in etwa so in der Groessenordnung. > > Ich selber hab den iProber hier. Der versinkt auch so ab > 5mA im Rauschen obwohl der vermutlich aufwendiger gerarbeitet > ist und von absoluter Genauigkeit reden wir da garnicht. Es gibt hier im Forum einen sehr interessanten und ausführlichen Kommentar zum Thema ASC712, ich meine vom User „Manfred (Gast)“, bin mir da aber nicht ganz sicher. Der Artikel liegt schon länger zurück. Darin ging es um Rauschen, Drift usw. usw., wie gesagt sehr ausführlich und mit Grafiken. Leider finde ich den Thread nicht mehr. Spannungsänderung der Versorgungsspannung, Temperaturschwankungen (vor allem bei sinkender Temperatur) und andere Umgebungseinflüsse wirken sich unmittelbar auf die Ausgangsspannung des Sensors aus. Nachteilig ist auch dass nicht das ganze Fenster der Bandbreite der Versorgungsspannung ausgenutzt wird, was wohl technisch bedingt ist. Für die +/- 30A stehen nur jeweils ca. 2V als Auswertung zur Verfügung, also von 2,5V (Vcc/2) bis ca. 4,5V für +30A bzw. 2,5V bis 0,5V für-30A, was eben die 66mV/A ergibt. Selbst ein AD-Wandler mit höherer Auflösung würde daran kaum etwas ändern. Kurz gesagt ist der ASC712 nicht für das vorhaben des TO geeignet. Da schließe ich mich hier einigen Vorrednern an.
:
Bearbeitet durch User
Vanye R. schrieb: >> Der eigentliche Sensor ist ein Magnetfeldsensor ohne irgendwelche >> Umgebungsfeldkompensation. > > klar, aber die ueblichen Stromzangenmultimeter die auch DC koennen > liegen ja auch in etwa so in der Groessenordnung. Ja, und da musst du bei so kleinen Strömen nach jeder Lageänderung neu nullen.
Thomas W. schrieb: > Nun zeigt der ACS sehr starke Schwankungen des Nullpunktes, was einen > Fehler von +/- 50 ... 100 mA ergibt. Also weniger als 6mV, das liegt im Bereich dessen, was er laut Datenblatt rauschen darf. Der ACS712-30 kann diese Anforderung nach 50mA-Genauigkeit nicht erfüllen. Einen ACS712-5 habe ich in meiner Löstation, weniger als 5% Abweichung kann ich auch da nicht vertrauen. Paul B. schrieb: > Ich habe damals einen INA226 und Ich habe Aufbauten mit dem INA219, Deinem ähnlich, und war von dessen Genauigkeit fasziniert. Natürlich high-side, man will nicht unbedingt GND verschieben. Jörg R. schrieb: > Es gibt hier im Forum einen sehr interessanten und ausführlichen > Kommentar zum Thema ASC712, ich meine vom User „Manfred (Gast)“, bin mir > da aber nicht ganz sicher. Der Artikel liegt schon länger zurück. Darin > ging es um Rauschen, Drift usw. usw., wie gesagt sehr ausführlich und > mit Grafiken. Leider finde ich den Thread nicht mehr. Ich kann mich nicht an Details erinnern, ich habe mal die 20A-Version eingesetzt, um nur eine ungefähre Schwelle zu erkennen, Strom oder kein Strom bei etwa 4A-AC. Beitrag "Re: Wechselstrom überwachen - so oder so?" Ganz sicher gibt es weitere Threads, wo ich mal den Shelvin verlinkt habe: http://shelvin.de/den-acs-712-5a-strom-sensor-am-arduino-auslesen/ > Nachteilig ist auch dass nicht das ganze Fenster der Bandbreite der > Versorgungsspannung ausgenutzt wird, was wohl technisch bedingt ist. Bei Betrieb in nur einer Richtung kann man 'tricksen': 2,5 Volt für keinen Strom und 1 Volt für vollen Strom. Das durch 2 geteilt und den ATMega328 mit der internen 1,1V-Referenz laufen lassen. Bleibt trotzdem ein Schätzeisen, für viele Anwendungen ausreichend.
Dann danke ich euch allen für Eure Beiträge. Das Bild das sich ergibt ist klar. Dann wird's wohl ein Umbau von Hallsensor auf Shunt werden. Um beim konkreten Beispiel zu bleiben: bei einer Konfiguration von 100A/75mV-Shunt und INA226, bei welcher Messunsicherheit in mA wird man da in etwa landen? Die Weitergabe der Daten per I²C an den Arduino sollte ja keine Fehler mehr beisteuern, oder?
> Nachteilig ist auch dass nicht das ganze Fenster der Bandbreite der > Versorgungsspannung ausgenutzt wird, was wohl technisch bedingt ist. Das ist doch gut. Ohne negative Versorgung kann der auch nicht bis an die Rails rangehen wie jeder OPV. Das wuerde ich also eher positiv sehen. Vanye
75mV bei 100A bedeutet 0.75uV bei 1mA. Der INA226 hat ein LSB von 2.5uV. Das sind schon mal 4mA Delta wenn das LSB sich nur um 1 ändert. Bisher war nur von 30A die Rede, für die 100A würde ich auf den INA228 wechseln, der ist gerade bei sehr kleinen Strömen besser geeignet da er weniger Leckströme und weniger Offset hat. Kostet natürlich auch eine Mark mehr. Der hat 20bit, du bekommst als eine höhere Auflösung. Der hat zwei ADC Bereiche, einmal von -163.84mV bis 163.84mV und einen kleineren von -40.96mV bis 40.96mV. Im größeren Bereich hat das LSB 312.5nV (0.3125uV). Damit kannst du theoretisch bis auf weniger als 1mA auflösen. ABER: 1. Auflösung und Genauigkeit werden oft durcheinandergebracht: https://www.mikrocontroller.net/articles/Aufl%C3%B6sung_und_Genauigkeit 2. In dem Bereich spielt die Temperatur eine wesentliche Rolle bei der Messung. Das müsstest du kompensieren. Der INA228 hat dafürein Register, in das du einen Temperaturkoeffizienten eintragen kannst. 3. Dein Shunt hat auch eine Fertigungstoleranz, da wirst du tief in die Tasche greifen müssen wenn es besser als 0,5% werden soll. Gekaufte Produkte sind kaum besser. 8mA Offset, eingesetzt in der Industrie: https://www.isabellenhuetteusa.com/wp-content/uploads/2022/07/Datasheet-IVT-S-V1.03.pdf Meine Empfehlung: Kauf dir einen guten 30A Shunt, gib dich erstmal mit +-10mA zufrieden und nimm zum starten einen INA237 (die 16bit Version des INA228 und deutlich preiswerter, Ansteuerung identisch, bis auf das optionale TEMPCOM Register beim INA228) und wenn alles läuft kannst du immer noch den INA237 gegen den IN228 ersetzen. Du könntest natürlich auch den Messbereich der INAs dynamisch umschalten, da holt man untenrum eventuell noch was raus. Mal eine Gegenfrage: Welche Messgeräte hast du zur Verfügung um deine Messungen zu verifizieren? Die INAs haben ein Kalibrierwert, den kann man trimmen bis es passt. -100 bis 100A bei 1mA Genauigkeit....für sowas haben wir hier Messgeräte im Wert eines oberen Mittelklassewagens mit beheizten Referenzen. Bei der Übertragung ist der Wert schon digitalisiert, da passiert nichts mehr. Man kann natürlich die Übertragung noch absichern, falls man Probleme oder Zweifel hat das die Werte plausibel rüber kommen.
Thomas W. schrieb: > Strommessung per Shunt muss leider ausfallen. Ein 8-beiniges IC kannst du in den Strompfad einschleifen, aber einen Shunt mit 4-Leiteranschluss geht nicht?
Gibt es die Möglichkeit die beiden Messaufgaben zu trennen? Ein Stromsensor mit 30A für den Hauptlade- und Entladestrom sowie ein kleinerer Sensor mit z.B. 1 A für den Ladestrom durch die Solarzelle. Andere Möglichkeit: Echte Hall-Sensoren in einem Eisenkern. Zwei Stück davon, einer für den kleinen und einer für den großen Strom. Der kleine wird beim großen Strom gnadenlos überfahren, aber das können die Dinger unbegrenzt ab.
Jetzt wird es spannend! Die ACSs sind nicht so recht geeignet, für DC Messungen, das habe ich nun verstanden. Auch wenn ich nicht so viel ändern wollte, wird es wohl auf ein Neudesign der Strommessung hinauslaufen... Der Messbereicht bleibt weiterhin bei max 30A evtl. später mal bis 50A. Dann ist aber definitiv Schluss. Allerdings brauch ich ne satte Überstromreserve im 200A-Bereich für 1...5s. Wenn es dabei den Messbereich übersteuert ist das kein Problem. Nur darf nix abrauchen ;) Die mA-Messung ist ein Sonderfall, den ich mit meinem bisherigen Setup erreichen wollte. Das ist nun nix geworden. Dafür viel praktische Erfahrung, gute Hinweise und alternative Lösungen von euch. Merci! 10 mA Messabweichung lege ich jetzt als meine Genauigkeitsgrenze fest. Alles weitere darunter, wird dann wohl ein neues Projekt, wenn das hier fertig ist.
Thomas W. schrieb: > Nun zeigt der ACS sehr starke Schwankungen des Nullpunktes, was einen > Fehler von +/- 50 ... 100 mA ergibt. Schwanken tut er auf so fast alles, > Temperatur, Lage, Magnetfelder...?! Die Frage ist m.E. ob ein magnetischer Sensor überhaupt eine derart genaue Messung machen kann, zumal er ja nicht stationär montiert ist.
Thomas W. schrieb: > Die ACSs sind nicht so recht geeignet, für DC > Messungen, das habe ich nun verstanden. Leider falsch verstanden, natürlich sind die für DC geeignet. Dein Solarzeug ist aus Sicht der Elektronik schnarchlangsam, da darf der Filterkondensator (Pin 6) groß werden. Du musst seine Grenzen verstehen, ob diese für Deine Anwendung ausreichend sind. Das gilt für jedes Verfahren, von meinem China-DMM für 4 €uro erwarte ich nicht weniger als 1..2%, dafür habe ich ein Fluke zum hundertfachen Preis. Unabhängig vom Meßverfahren: Wenn ich Zeit habe, weil sich mein Meßwert langsam ändert, addiere ich z.B. 10 Messwerte, werfe den größten und kleinsten weg und teile durch 8. > Auch wenn ich nicht so viel > ändern wollte, wird es wohl auf ein Neudesign der Strommessung > hinauslaufen... Texas INA_irgendwas sind sehr gut, aber können trotzdem nicht zaubern. Die Ausführungen von Paul in Beitrag "Re: Stromsensor stabilisieren ACS712x" beschreiben das sehr gut, gerne mehrfach lesen.
Manfred P. schrieb: > Die Ausführungen von Paul in > Beitrag "Re: Stromsensor stabilisieren ACS712x" beschreiben das > sehr gut, gerne mehrfach lesen. Ja genau. Paul hat gute Hinweise gegeben. Wie man den Beitrag allerdings abwerten kann, verstehe ich nicht so recht. Auch die massive Abwertung hin auf meine initiale Frage. Kann mir das einer erklären? Danke auf alle Fälle an alle für die Rege Diskussion und die hilfreichen Antworten! : ) Manfred P. schrieb: > Leider falsch verstanden, natürlich sind die für DC geeignet. Dein > Solarzeug ist aus Sicht der Elektronik schnarchlangsam, da darf der > Filterkondensator (Pin 6) groß werden. Wenn ich das Datenblatt richtig verstehe, ist Filterkondensator (Pin 6) in der lage das Rauschen des Ausgangssignals zu reduzieren, doch Drift durch Temperatur und externe Magnetfelder wohl kaum.
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.