In dieser Übung wird gezeigt, wie man mit Hilfe eines Raspi 3 oder 2 und einem Breakout-Board INA219 Ströme messen kann. An anderer Stelle habe ich bereits über die Eigenschaften dieses Boards berichtet.
Das INA219 kann einen maximalen Spannungsabfall von 0,32V über dem Shunt (R100) messen. Das heißt, dass bei einem eingebauten Shunt von 0,1 Ohm maximal 3,2 Ampere fließen dürfen. Höhere Ströme sollte man besser mit dem von mir an anderer Stelle beschriebenen Hall-Sensor ACS712 messen.
Übung 1 - Stromstärke durch einen Lüfter messen | |
Material |
|
Aufgaben |
|
Schaltskizze und Schaltungsaufbau
Über das Hauptmenü wird im Applications-Menu über Einstellungen – Raspberry-Pi-Konfiguration das Schnittstellenfenster geöffnet und die I2C-Schnittstelle aktiviert.
Über die Konsole wird mit
sudo i2cdetect -y 1
die I2C-Adresse des in der Schaltung verwendeten Moduls ausgegeben. Der IC-Baustein INA219 lässt bis zu 16 verschiedene I2C-Adressen zu (s. Datenblatt); das Breakout-Board dampft diese Möglichkeiten auf vier ein; siehe hierzu an anderer Stelle (Kapitel 7).
Über den Python Package Index (PyPi) mit der URL:
lassen sich alle für den Betrieb eines INA219-Moduls nötigen Bibliotheksfunktionen finden. Gib als Suchbegriff „ina219“ ein. Gleich der erste Eintrag („pi-ina219“) wird angeklickt und liefert sowohl den Downloadbefehl als auch eine Beschreibung zur Installation und dem Gebrauch der Pakete bzw. Funktionen.
Zusätzlich benötigt werden die Bibliotheksfunktionen Adafruit-GPIO und Adafruit_PureIO:
heruntergeladen und installiert werden. Kopiere alle Dateien in das Verzeichnis, in dem auch die Programme zum INA219 abgelegt sind.
Die Bibliotheken stellen Funktionen zur Verfügung, die kontinuierlich Spannungen und Leistungen abfragen; die Möglichkeit, getriggerte Messwerte aufzunehmen, sind nicht möglich. Die aktuelle I2C-Adresse des Sensors ist 0x40; werden andere Adressen verwendet, muss dies im Programm explizit angegeben werden.
Im nächsten Schritt kann es ans Programmieren gehen.
Das Programm ra_strommessung1.py
Messergebnisse
Der von mir in diesem Experiment eingesetzte Lüfter wird mit 2,9V über ein Labornetzteil angesteuert. Die im Display des Gerätes angezeigte Stromstärke liegt bei 0,04A.
Wie arbeitet das Programm ra_strommessung1.py?
Unter Berücksichtigung der anfangs festgelegten Konfigurationsgrößen MAX_STROMSTAERKE, SHUNT_OHM wird das IC INA219 konfiguriert.
Die Funktion read_ina219() berechnet die anliegende Gesamtspannung Uges und druckt die Messwerte für die Batteriespannung Ubat, die Gesamtstromstärke Iges durch den Lüftermotor, die Leistung und den Spannungsabfall über dem Shunt im Terminalfenster aus. Diese Funktion wird in der Endlosschleife while 1: alle fünf Sekunden aufgerufen.
Eine andere I2C-Adresse einstellen
Werden mehrere INA219-Module in einer Schaltung benutzt (maximal 4) oder ein Modul ist auf eine andere I2C-Adresse als die in der Bibliothek vorgegebene 0x40 eingestellt, dann müssen die einzelnen Adressen der Bausteine im Programm angegeben werden. Das in der ersten Übung benutzte Programm muss nur in einer Zeile geändert werden (s. Abb. 5).
In dieser Übung werden drei INA219 Bausteine in einem einfachen Widerstandsnetzwerk eingesetzt. Der Strom durch A1 entspricht dem Gesamtstrom Iges der Schaltung; er setzt sich aus den beiden Teilströmen durch A2 und A3 zusammen. Die in der Schaltskizze angezeigte Versorgungsspannung von 5V ist eine optionale Größe; sie kann auf maximal 12V erhöht werden. Dann fließt durch die Schaltung ein Gesamtstrom von ca. 10,5mA.
Übung 2 - Teilströme messen | |
Material |
|
Aufgaben |
|
Schaltskizze
In dieser Übung werden drei INA219 Bausteine (A1, A2 und A3) in einem einfachen Widerstandsnetzwerk eingesetzt.
Schaltungsaufbau
Berechnungen der Teilstromstärken
Der Ersatzwiderstand der parallel geschalteten Widerstände R2 und R3 errechnet sich zu: 149,86 Ohm. Der Ersatzwiderstand der gesamten Schaltung beträgt damit: Rges = 1149,855 Ohm. Aus der anliegenden Gesamtspannung (12V) und dem Ersatzwiderstand der gesamten Schaltung errechnet sich die Gesamtstromstärke zu
und der Spannungsabfall über R1(1kOhm) zu UR1 = 10,44V. Über den beiden parallel geschalteten Widerständen R2 und R3 liegt damit eine Spannung UR2 = UR3 = 1,56 V.
Die Teilstromstärken durch R2 bzw. R3 ergeben sich mit Hilfe des Ohmschen Gesetzes zu
Die rechnerischen Werte stimmen recht gut mit den gemessenen Werten (s. Messergebnisse) überein, wenn man die Fehlertoleranzen der Widerstände (+/- 5%) berücksichtigt.
I2C Adressen überprüfen
Mit dem Befehl sudo i2cdetect -y 1 werden die I2C-Adressen der drei eingesetzten Module überprüft.
Das Programm ra_strommessung3.py
Messergebnisse