Verständnis Adafruit INA219 Current Sensor

Hallo zusammen,

ich habe mir den Adafruit INA219 Current Sensor (Wiring | Adafruit INA219 Current Sensor Breakout | Adafruit Learning System) zugelegt, um den Stromverbrauch verschiedener kleiner Bauteile zu messen. Was ich gerne mal machen würde ist, dass ein Versuchsaufbau seine Stromversorgung selbst überwachen soll. Angenommen ich nutze einen UNO R3 mit einigen angeschlossenen Komponenten, kann derselbe UNO dann auch ermitteln, was er selbst zuzüglich der Komponenten verbraucht? (ich möchte nichts kurzschließen, daher frage ich vorher mal nach)

Was genau meint "Shunt Voltage, Bus Voltage und Load Voltage"?

Meine Güte, als mich der Arduino Virus befallen hat, hätte ich nicht gedacht, dass der Lernaufwand soooo groß ist... :slight_smile:

Kann mir da jemand auf die Sprünge helfen?

Liebe Grüße
Tim

Angenommen ich nutze einen UNO R3 mit einigen angeschlossenen Komponenten, kann derselbe UNO dann auch ermitteln, was er selbst zuzüglich der Komponenten verbraucht?

Ja, das sollte problemlos möglich sein.

Was genau meint "Shunt Voltage, Bus Voltage und Load Voltage"?

Shunt Voltage: Der Spannungsabfall am Shunt-Widerstand (woraus sich dann der Strom errechnet).
Bus Voltage: Die Spannung am Signal-Bus. Für mehr Details braucht es einen Kontext.
Load Voltage: Heisst übersetzt Last-Spannung, ohne Kontext ergibt sich nicht viel mehr Sinn.

Wenn wir mal auf das Fritzing-Bild auf der verlinkten Website schauen, dann müsste ich eigentlich nur die türkise Verbindung, die vom INA219 zum WS2812 geht, auf das VIN vom Arduino verbinden?

Der Aufbau soll wie folgt sein:

Ich habe einen 8x AA Batterieblock, den ich aktuell mit Akkus betreibe und der so rund 8,6V - 9V liefert. Den habe ich an einen Step-Down Wandler (http://www.exp-tech.de/Shields/Seeedstudio-5V-3-3V-Breadboard-Power-Supply.html) angeschlossen, den man direkt auf ein Breadboard stecken kann und der mir auf beiden Seiten je 5V regulierten Strom liefert. Ich möchte nun messen, wie viel Volt der Batterieblock liefert und wie viel Last auf dem gesamten Versuchsaufbau liegt. Das würde für mich dann bedeuten, dass ich die Verbindung vom Batterieblock zum Step-Down Wandler trenne, Die beiden Plus-Kabel über den INA219 schleife. Der INA219 bekommt seinen Schaltstrom ja letztlich auch vom Step-Down Wandler. Aber was mache ich mit Ground? Kann ich den Ground vom Batterieblock denn einfach wie im Fritzing-Bild (siehe Adafruit Learning System) an den Ground verbinden, der im 5V Bereich liegt?

Liebe Grüße
Tim

Kurz: Ja.

Die Plus-Verbindung wird einfach über den Sensor geschlauft, die Massen werden verbunden.
Du bist Dir ja bewusst, dass der Sensor selbst auch noch etwas Strom verbraucht (einerseits verbratet der Shunt-Widerstand ein klein wenig, andererseits muss auch die Verstärkerschaltung versorgt sein). Ob diese Verfälschung für Dich relevant ist, musst Du natürlich selbst entscheiden.

pylon, danke für Deine Antwort.

also ich denke, dass der Strobverbrauch für den Sensor nicht mehr ins Gewicht fällt. Hintergrung ist vielmehr, dass ich entscheiden möche, wo meine "last line of defense" ist. Es geht halt immer noch um mein HAB Projekt und ich möchte einfach erreichen, dass die Box sich selbst vom Ballon trennt, wenn verschiedene mögliche Bedingungen eintreten. Dazu zählen unter Anderem natürlich auch der "freie Fall" nach dem Platzen des Ballons, oder eben, ob noch genug Power für den weiteren Betrieb vorhanden ist. Ich denke, dass ich den Versuchsaufbau in dieser Hinsicht einfach mal komplett durchlaufen lasse und logge, ab wann für den Arduino Ende ist. Wenn man für den (gebremsten) Fall zurück zur Erde mal grob eine Stunde einrechnet, dann ergibt sich ja letztlich daraus auch der Moment, in dem sich die Box vom Ballon trennen muss, wenn dieser noch nicht geplatzt ist.

Im Aufbau verarbeitet sind ja noch Dinge wie ein GPS-Modul, das 10-DOF Board zur Lageregelung, Temperatursensoren, ein HF-Transmitter (Stichwort APRS), ein Micro-SD Kartenmodul, das Adafruit I2C PWM Servoboard (von dem ich bestenfalls nur einen Servo nutze).

Ich überlege mir auch, noch einen kleinen OLED mir reinzupacken und einen 5-Wege-Joystick zum Ansteuern verschiedener Menüs vor dem Flug, einfach um ausgeben zu können, ob ein GPS-Fix vorhanden ist, ob die SD-Karte sauber gelesen werden konnte, ob die Lageregelung (Gear, Roll, Pitch) sauber arbeitet, etc. Den OLED würde ich aber auch per I2C ansteuern und bei Nicht-Gebrauch einfach mit einem kleinen Relais abschalten.

Na ja und spätestens jetzt sollte klar sein, warum ich den Stromverbrauch gerne mal wüsste. Nicht, dass mir das Ding nach 30 Minuten verreckt oder sich wahlweise nach 3000 Metern wegen zu niedrigem Strom trennt und der Ballon alleine weiterfliegt :slight_smile:

Danke nochmals und
Liebe Grüße

Hallo zusammen,

ich habe das Modul nun mal zwischen die Batterie und meinen Aufbau gepackt und es funktioniert wirklich klasse. Danke für die ganzen Hinweise und Hilfen. Gut ist auch, dass ich über das Breadboard einfach mal einige Verbraucher dazuschalten kann. Aktuell habe ich neben einem Pololu Step-Up/-Down Wanlder, der mir meine eingehenden 10-12 Volt in fixe 5V verwandelt noch 1 x GPS, 1 x 10-DOF Lageregelung inkl. Temperatur und barometrischer Höhenmessung, 1 x SD Cardreader. Mich hat gewundert, dass alles zusammen inkl. eines UNO R3 nur zwischen 40-50mA verbraucht. Testweise habe ich dann noch ein Mikro-USB Kabel genommen und meine GoPro Hero 3 "extern" über das Breadboard versorgt und die Messwerte sind auf ca. 340mA im Peak hochgegangen. Die Messungen sind also scheinbar sinnvoll und korrekt. Mit einem Voltmeter habe ich dann noch einmal nachgemessen, wie viel Volt die Batterie liefert (in dem Fall 10,3V) und das wurde auch durch den INA219 Sensor korrekt wiedergegeben.

Dadurch, dass ich einen kombinierten Step-Down/Up verwende, könnte der Batterieblock letztlich ja auch unter die 5V entladen werden. Ich verwende 8x AA Eneloop XXX Akkus und ich wollte mal vorsichtig nachfragen, ob ich die auch "kaputt"-entladen kann oder ob ich lieber irgendwann "den Stecker" ziehen sollte...? Ich wüsste ja jetzt, wann ich das machen müsste, weil ich es ja messe.

Realisieren würde ich das über ein kleines Relais, das mit einem Steuerpin einfach schaltet und zum Schutz der Batterien einfach ab einem bestimmten Punkt den Pin auf low zieht und sich damit der Arduino automatisch vom Strom nimmt...

Liebe Grüße
Tim

Hallo,
"ob ich die auch "kaputt"-entladen kann"

Kaputt-entladen geht schneller als Geld ausgeben.
Das ganze nennt sich "Tiefentladung"- damit schaffst Du jeden Akku.
Das passiert, wenn Du Deinen Akku unter die Entladeschlussspannung (siehe
Datenblatt Akku) fährst. Die Spannung des Akku fällt dann unter die
Entladeschlussspannung. Also wenn Dein Akku nur noch eine Nennkapazität
von ca. 23 bis 20% hat, dann hast Du diesen Punkt erreicht.
Das kann soweit gehen, das er sich umpolt. Kann- muss nicht!

Das ist ein ziemliches "ZauberThema" suche lieber selbst einmal nach
"Tiefentladung" und bilde Dir eine Meinung.
Gruß und Spaß
Andreas

Danke Andreas,

das mit der Tiefenentladung war mir klar und die Frage war eigentlich blöd gestellt. Vielmehr war mir der Begriff der Tiefenentladung nicht eingefallen und ich habe weniger auf das "ob", sondern mehr auf das "ab wann" abgezielt. Dabei merke ich jetzt gerade, dass ich mir mit dem Pololu Step-Down/UP Regler nicht nur einen positiven Faktor in meinen Aufbau geholt habe, sondern eben auch den "negativen" Faktor, dass ich nun noch zusätzlich darauf achten muss, dass die Akkus nicht tiefenentladen werden.

Alerdings ergibt sich aus diesem Punkt auch noch die Frage, ob der Arduino nicht sowieso aus geht, wenn ein bestimmter Entladezustand erreicht ist?

Jedenfalls muss ich laut diesem Datensheet:

bei 8V Feierabend machen (Fußnote 1 multipliziert mit 8 Zellen). Bei meinen letzten Tests, als ich noch über ein PowerSupply für das Breadboard gegangen bin, hatte ich daran noch gar nicht gedacht und der Arduino (in dem Fall war es ein Micro) hat einfach aufgehört, etwas auf das OLED Display zu schreiben - ich denke, er hat sich einfach verabschiedet. Da war ich bei 7,9V, wenn ich das richtig in Erinnerung habe. Was ja passend wäre.

Leider hole ich mir jetzt noch einen Stromverbraucher mehr an Board (das Relais)... Tja. Hm. Na ja.

Grüße Tim

Hallo zusammen,

entschuldigt bitte, wenn ich den Thread aus der Versenkung ziehe. Aber ich habe hier doch noch einmal eine Frage bzgl. des Sensors. Ich hatte ja geschrieben, dass ich den INA219 so in die eigentliche Schaltung integriert habe, dass er misst, wie viel diese Schaltung nun verbraucht (sich selbst eingeschlossen). Angeschlossen habe ich einen Crumbuino (von chip45.com, ein Arduino MEGA in Mini-Optik), einen Adafruit 10-DOF Lagesensor und ein 128x64 OLED ebenfalls von Adafruit. Die unregulierte Stromquelle wird mit einem Pololu Step-Up/Down Wandler automatisch immer auf 5V gebracht.

Wenn ich mir nun Bus- bzw. Loadvoltage ausgeben lasse, dann sind das bei 8x EneloopXX 11,3Volt und dabei schwankt das Current bei etwa 47-50mA. So weit so gut. Sieht auch alles logisch aus.

Jetzt waren die Batterien leer. Soll vorkommen. Habe ich also einen 4x Halter mit einem anderen Satz EneloopXX genommen, die aber auch voll aufgeladen waren. Hier zeigt mir der INA219 dann als Bus-/Loadvoltage 5,2V an, aber einen Verbrauch von 68-70mA. Und hier plöppen jetzt die Fragezeichen auf. Ist es nicht so, dass der Verbrauch der Bauteile eigentlich identisch sein sollte?

Die einzige Idee, die mir gerade vorschwebt, ist, dass der Step-UP/Down Wandler bei einem kleinen Input mehr verbraucht, um die 5V am Ausgang zu regeln. Nur dann gleich 20mA mehr?

Liebe Grüße
Tim

Wo genau misst Du den Strom? Vor oder nach dem Spannungsregler (Pololu)? Wenn es vor dem Regler ist, dann ist das vollkommen normal, denn Du verbrauchst eine Leistung und die setzt sich aus Stromstärke und Spannung zusammen. Der Regler bringt einen gewissen Verlust (je nach Typ unterschiedlich), der auch noch variieren kann, wenn die Eingangsspannung sich ändert.

Hallo Pylon,

ich messe vor dem Regler. Also wird das wohl daran liegen. Danke für die Antwort. Beizeiten probiere ich das noch mal in Ruhe mit 4, 6 und 8 vollen Akkus aus der selben Serie aus. Dann wird man es wohl deutlicher erkennen. Aber dazu fehlt mir gerade die Lust :slight_smile:

Liebe Grüße
Tim

Du könntest den Sensor nach dem Regler (in die 5V ) geben. Da muß der Strom gleich bleiben.
Grüße Uwe

Hallo,

bei einem Linearregler wäre der Strom vor und hinter dem Regler gleich - sieht man mal vom geringen Eingenbedarf ab. Der Linearregler verheizt die Differenz einfach. Umwandeln einer kleineren in eine größere Spannung ist nicht.
Das Schöne an einem Schaltregler ist ja, das kaum Leistung verloren geht. Damit einhergehend ist eine Stromänderung, da das Produkt aus Strom und Spannung Leistung ist. Angenommen, du benötigst für den Arduino und Perepherie 5V und 100 mA sind 500 mW.
Bei einem Linearregler rauschen bei 10V Eingangsspannung 100mA durch - 500mW werden verheizt!
Bei einem Schaltregler gehen 500mW rein - also bei 10V 50mA :smiley:
Natürlich treten auch bei einem Schaltregler Verluste auf. Das aber nur mal zum Funktionsprinzip.
Theoretisch kannst du mal einen ganzen Zyklus mit frisch geladenen, vollen Akkus aus Strom und Spannung am Eingang mitloggen und die daraus resultierende real vorhandene Akkukapazität - die nicht unbedingt mit der aufgedruckten Kapazität übereinstimmen muß - ermitteln.
Wenn du diese Kurve ablegst, kannst du im realen Betrieb aus den aktuell ermittelten Werten für Strom und Spannung abschätzen, wie viel Restkapazität der Akku noch hat. So bekommst du zum Einen mit, wann der Akku getauscht werden sollte, weil er durch Alterung Kapazität verloren hat, außerdem bekommst du so eine Vorstellung davon, ob und wieviel Kapazität dir bei Kälte (in der Höhe) nicht zur Verfügung steht :wink:

Gruß Gerald