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

Strom messen mit einem Shunt

Eine Methode, den Strom, der durch einen Leiter fließt, zu messen, besteht darin, dass man den zu messenden Strom durch einen sehr niederohmigen Leistungswiderstand (Shunt) fließen lässt. Der Shunt wird dazu in Reihe geschaltet. Über dem Shunt ist ein Spannungsabfall Ushunt messbar, der proportional zum durchfließenden Strom I ist.

In diesem Abschnitt wird ein Sensor mit Shunt benutzt (INA219) und gezeigt, wie man mit ihm Ströme messen kann. Im Kapitel Ströme messen - 2 werden Ströme mit einem Sensor über den Hall-Effekt gemessen.

1 - Der Sensor INA219

Zur Strommessung in elektronischen Schaltungen muss man immer den Umweg über eine Spannungsmessung nehmen. Dazu nimmt man einen bekannten Widerstand mit geringer Fehlertoleranz (Shunt) und lässt durch diesen den zu messenden Strom laufen. Aus dem  Spannungsabfall über diesem Präzisionswiderstand lässt sich dann mit Hilfe des Ohmschen Gesetzes die Stromstärke bestimmen.

Nach diesem Prinzip arbeitet auch der Baustein INA219, den wir uns jetzt genauer bei der Arbeit anschauen wollen. Er wird als Breakout von der Fa. Adafruit angeboten.

2 - Leistungsdaten des Sensors

Busspannungen      : 0V bis +26V (Gleichspannung)

Stromstärke max.   : +/- 3,2A

Shunt              : 0,1 Ohm, 1%

ADC intern         : 12-Bit

Ermittelt          : Stromstärke, Spannung, Leistung

Genauigkeit        : max. 0,5%

Schnittstelle      : I2C

Betriebsspannung   : 3V - 5,5V

Stromaufnahme      : max. 1mA

3 - Schaltungsaufbau zu Messung 1

Abbildung 1 - Arduino UNO und Sensor INA219 zur Messung von Strömen
Bild 1a - Verkabelung INA219 mit Arduino UNO Board - bei den UNO-Boards ab Model R3 sind die Buchsen Scl und Sda gesondert herausgeführt und beschriftet. (fritzing)
Ströme messen mit dem Arduino UNO
Material
  • 1x INA219 Current Sensor
  • 1x Arduino UNO
  • 1x Steckbrett
  • 1x USB-Verbindungskabel
  • 1x Widerstand 470 Ohm
  • 1x Widerstand 220 Ohm
  • 8x Steckdraht
Aufgaben
  • Baue die Schaltung nach Schaltskizze auf einem Steckbrett auf.
  • Übertrage das Programm Strommessung_2.ino in den Editor und speichere es ab.
  • Der Ordner Adafruit_INA219.h muss in das Arbeitsverzeichnis des Programms kopiert werden. Der gleichnamige Ordner ist bei Adafruit im Internet herunterzuladen.
  • Berechne auf einem Zettel mit Taschenrechner, welche Stromstärke Iges sich in dem Schaltkreis ergibt und bestimme auch den Spannungsabfall über dem 470 Ohm Widerstand.
  • Starte das Programm und überprüfe deine Berechnungen mit den angezeigten Werten.

Das Programm Strommessung_2.ino

Abbildung 2 - Auswerteprogramm zur Strommessung nach Vorgabe von Adafruit

Terminalausgabe

4 - Die Bibliotheksfunktionen von Adafruit_INA219

Instanz setzen

  • Adafruit_INA219 ina219;
    

Ohne weitere Adressenangabe ist 0x40 gesetzt (Werkseinstellung). Werden weitere Module eingesetzt (maximal 4 möglich), muss die jeweils entsprechende Adresse gesetzt werden, zum Beispiel durch Adafruit_INA219 ina219(0x41);

  • ina219.begin()
    

initialisiert das erste INA219 Board. Weitere Boards müssen vorher instantiiert werden.

  • float getBusVoltage_V(void);
    

Spannung zwischen GND und Vin-; Rückgabewert in der Einheit Volt.

  • float getShuntVoltage_mV(void);
    

Spannung zwischen Vin- und Vin+ ; entspricht dem Spannungsabfall über dem Shunt von 0,1 Ohm.

  • float getCurrent_mA(void);
    

Stromstärke (über Ohmsches Gesetz und Shunt-Widerstand berechnet) in Milliampere.

5 - Schaltungsaufbau zu Messung 2

Das Programm Strommessung_2.ino muss in der drittletzten Programmzeile angepasst werden. Der Wert 470 ist durch den Wert 220 auszutauschen. Im Terminal werden die folgenden Werte angezeigt:

Abbildung 3 - Arduino UNO und Sensor INA219 zur Messung von Strömen

Terminalausgabe

6 - Interpretation der Ergebnisse

Der Spannungsabfall über dem Shunt-Widerstand ist konstant in beiden Messungen 0,49mV, was zu erwarten war.

Die Summe der ermittelten Spannungswerte Spannung ueber R aus Messung 1 und 2 ergibt einen Gesamtwert von 3,36V. Ein nahezu gleicher Wert sollte sich aus der Summe der beiden Spannungswerte aus Uvin-_GND (Messung 2) und Spannung über R (Messung 1) ergeben. Die Summe liegt hier bei 3,36V. Die Stromstärken aus beiden Messungen liegen zwischen 4,70mA und 4,90mA.

Die beiden eingesetzten Widerstände über 220 Ohm und 470 Ohm haben eine Fehlertoleranz von 10%. Daraus ergibt sich rechnerisch ein maximaler Durchgangsstrom von 5,31mA und ein minimaler von 4,34mA ohne das weitere Parameter wie zum Beispiel Temperaturdrift mit einbezogen wurden. Der mit dem Sensor gemessene Wert liegt mit 4,80mA im Toleranzbereich.

7 - Mehrere Ströme messen

Mehrere Ströme messen mit dem Arduino UNO
Material
  • 3x INA219 Current Sensor (A1, A2, A3)
  • 1x Arduino UNO
  • 1x Steckbrett
  • 1x USB-Verbindungskabel
  • 1x Widerstand 470 Ohm
  • 1x Widerstand 220 Ohm
  • 1x Widerstand 1 kOhm
  • 8x Steckdraht
Aufgaben
  • Baue die Schaltung nach Schaltskizze auf einem Steckbrett auf.
  • Übertrage das Programm Strommessung_3.ino in den Editor und speichere es ab.
  • Der Ordner Adafruit_INA219.h muss in das Arbeitsverzeichnis des Programms kopiert werden. Der gleichnamige Ordner ist bei Adafruit im Internet herunterzuladen.
  • Berechne vor der Messung mit Taschenrechner, welche Gesamtstromstärke Iges und welche Teilstromstärken sich in dem Schaltkreis ergeben; bestimme auch die Spannungsabfälle über den drei Widerständen.
  • Starte das Programm und vergleiche deine Berechnungen mit den gemessenen Werten.

In diesem Teil geht es darum, in einer vorgegebenen Schaltung aus drei Widerständen die Einzelströme durch die Widerstände zu messen und mit den vorher berechneten Werten zu vergleichen. Dazu ist die nachfolgende Schaltung aufzubauen.

Bevor die Breakout-Boards in die Schaltung eingebaut werden, müssen die I2C-Adressen auf jedem einzelnen Board gesetzt werden.

I2C Adressen einstellen

Werksseitig sind keine Brücken gesetzt und die I2C-Adresse lautet: 0x40. Es lassen sich auf dem Breakout-Board insgesamt vier verschiedene Adressen einstellen. Das geschieht am Besten dadurch, dass man die entsprechenden Felder mit Lötzinn überbrückt:

 

 

 

1. Beide Brücken A0 und A1 sind gesetzt; I2C-Adresse: 0x45.

 

 

 

 

 

2. Keine Brücke ist gesetzt; I2C-Adresse: 0x40.

 

 

 

3. Brücke A1 ist gesetzt; I2C-Adresse: 0x44.

 

 

 

 

 

4. Brücke A0 ist gesetzt; I2C-Adresse: 0x41.

Schaltungsaufbau

Abb. 4: Schaltungsaufbau auf einem Steckbrett. Die Verbindung mit dem ARDUINO UNO Board ist nicht mit eingezeichnet.

Das Programm

Terminalausgabe

Vergleich von Mess- und Rechenergebnissen

Geht man von einer Versorgungsspannung U = 5V aus, dann errechnen sich die Ströme zu:

Igesamt ~ 4,4 mA, I2 ~ 1,4 mA, I3 ~ 3,0 mA. Die gemessenen Werte bestätigen innerhalb der Toleranzgrenzen diese Ergebnisse.

Druckversion Druckversion | Sitemap
© Reinhard Rahner - Gettorf