Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

1 - Ströme messen mit INA219

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
  • 1x  Steckbrett
  • 1x  Raspi 2 oder 3 mit Internetzugang
  • 1x  kabellose Maus, Tastatur
  • 1x  HDMI-Kabel
  • 1x  Schaltnetzteil, 5V/ 2,5A
  • 1x  Breakoutboard INA219
  • 1x  Lüfter, E-Motor o.ä. aus der Bastelkiste
  • 1x  Labornetzgerät
  • diverse Steckdrähte
Aufgaben
  • Achte darauf, dass der Raspi nicht mit dem Netz verbunden ist.
  • Baue dann die Schaltung nach Abb. 1 auf dem Steckbrett auf.
  • Verbinde das Steckernetzteil des Raspi mit der Steckdose und warte, bis der Rechner gebootet ist und die grafische Benutzeroberfläche erscheint.
  • Starte über Menü - Entwicklung - Python 3 (IDLE) die Entwicklungsumgebung Python 3 und öffne anschließend mit File - New File eine neue Editoroberfläche.
  • Übertrage das Programm ra_strommessung1.py in den Editor.
  • Starte das Programm ra_strommessung1.py mit dem Befehl Run - Run Module (F5) aus dem Hauptmenü.
  • Die am Lüfter/E-Motor anliegende Spannung sollte jetzt langsam soweit erhöht werden, bis der Propeller/Motor zu laufen anfängt. Notiere die im Monitorfenster angezeigten Messwerte.
  • Beende deine Arbeit mit dem Raspi immer über Menu - Shutdown ...  und warte ca. zwei Minuten, bis der Rechner heruntergefahren ist. Ziehe anschließend den Netzstecker des Steckernetzteiles.

Schaltskizze und Schaltungsaufbau

Abbildung 1 - Schaltskizze zur Strommessung an einem Lüftermotor, der in diesem Fall mit 5V/40mA betrieben wird. Gezeigte Pinbelegung ist vom RPi3.

2 - Den Raspberry Pi für die Übung vorbereiten

I2C Schnittstelle im Betriebssystem aktivieren

Über das Hauptmenü wird im Applications-Menu über Einstellungen – Raspberry-Pi-Konfiguration das Schnittstellenfenster geöffnet und die I2C-Schnittstelle aktiviert.

I2C-Adressen überprüfen

Ü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).

Abb. 2: Die I2C-Adressen der in einer Schaltung verwendeten Module werden mit i2cdetect angezeigt.

Benötigte Bibliotheksfunktionen laden

Ü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:

  • sudo pip install pi-ina219
  • sudo pip install Adafruit-PureIO
  • sudo pip install Adafruit-GPIO

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

Abbildung 3 - Programm ra_strommessung1.py. Die angelegte Spannung Ubat errechnet sich aus der Busspannung und dem Spannungsabfall über dem Shunt.

Messergebnisse

Abb. 4: Im Terminal ausgegebene Messwerte.

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).

Abb. 5: In der 5. Programmzeile wird als dritter Parameter die I2C-Adresse eingetragen.

3 - Teilströme in einer Parallelschaltung messen

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
  • 1x  Steckbrett
  • 1x  Raspi 2 oder 3 mit Internetzugang
  • 1x  kabellose Maus, Tastatur
  • 1x  HDMI-Kabel
  • 1x  Schaltnetzteil, 5V/ 2,5A
  • 3x  Breakoutboard INA219
  • 1x  Widerstand, 1 kOhm
  • 1x  Widerstand, 220 Ohm
  • 1x  Widerstand, 470 Ohm
  • 1x  Labornetzgerät
  • diverse Steckdrähte
Aufgaben
  • Achte darauf, dass der Raspi nicht mit dem Netz verbunden ist.
  • Baue dann die Schaltung nach Schaltskizze auf dem Steckbrett auf.
  • Verbinde das Steckernetzteil des Raspi mit der Steckdose und warte, bis der Rechner gebootet ist und die grafische Benutzeroberfläche erscheint.
  • Starte über Menü - Entwicklung - Python 3 (IDLE) die Entwicklungsumgebung Python 3 und öffne anschließend mit File - New File eine neue Editoroberfläche.
  • Übertrage das Programm ra_strommessung2.py in den Editor.
  • Starte das Programm ra_strommessung2.py mit dem Befehl Run - Run Module (F5) aus dem Hauptmenü.
  • Überprüfe und vergleiche die gemessenen Stromstärken mit den theoretisch errechneten Werten.
  • Beende deine Arbeit mit dem Raspi immer über Menu - Shutdown ...  und warte ca. zwei Minuten, bis der Rechner heruntergefahren ist. Ziehe anschließend den Netzstecker des Steckernetzteiles.

Schaltskizze

In dieser Übung werden drei INA219 Bausteine (A1, A2 und A3) in einem einfachen Widerstandsnetzwerk eingesetzt.

Schaltungsaufbau

Abb. 5a - Schaltungsaufbau von 3 INA219 auf einem Steckbrett

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

  • Iges = IR1 = 10,44 mA

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

  • IR2 = 3,3 mA bzw.
  • IR3 = 7,1 mA.

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.

Abb. 7: Die auf den drei INA219-Modulen eingestellten I2C-Adressen.

Das Programm ra_strommessung3.py

Abb. 8: Programm zur Messung von drei Stromstärken mit drei INA219-Modulen.

Messergebnisse

 

 

 

 

 

 

 

 

Abb. 9: Bei fest eingestellter Versorgungsspannung von 12V wurden die folgenden Teilströme gemessen. Drei Messungen innerhalb von 15s.

Druckversion | Sitemap
© Reinhard Rahner - Gettorf