Startseite>Messmodul für Strom und Spannung mit dem Pi Zero
Aus Raspberry Pi Geek 06/2018

Messmodul für Strom und Spannung mit dem Pi Zero

© Anna Ivanova, 123RF

Im Labor

Bernhard Bablok

Es gibt Situationen, die eine genauere Analyse erfordern, als der Strommesser aus dem Baumarkt sie liefert. Ein Selbstbaumodul samt Pi Zero zeichnet Messdaten für die spätere Auswertung auf.

Im Handel gibt es Strommessgeräte, die entweder primärseitig messen oder die man in das USB-Kabel einschleift (Abbildung 1). Erstere eignen sich nicht für den Schwachlastbereich, die Geräte der zweiten Kategorie sind schwierig abzulesen und sorgen oft aufgrund von Spannungsabfall für Probleme mit den Verbrauchern.

Abbildung 1: Nicht unproblematisch: Ein typisches Strommessgerät zum Einschleifen ins USB-Kabel.

Abbildung 1: Nicht unproblematisch: Ein typisches Strommessgerät zum Einschleifen ins USB-Kabel.

Beide Typen haben gemeinsam, dass sie abgesehen vom Maximum und dem Gesamtverbrauch keine Aufzeichnung über längere Zeiträume erlauben. Daher lassen sich bestimmte Fragestellungen nur mit Mühe beantworten – etwa wie eine Festplatte beim Schreiben am RasPi den Stromverbrauch beeinflusst oder wie sich ein Spindown der Platte auswirkt.

Im Folgenden stellen wir ein Messmodul zum Eigenbau vor, das Stromverbrauch und Spannung über längere Zeit misst und mithilfe eines Pi Zero aufzeichnet. Die zum Projekt gehörende Software [1] macht dabei nicht nur die Aufzeichnung zum Kinderspiel, sondern auch das Auswerten der Daten. Die Installation beschreibt der Kasten “Pi-Vameter: Aufbau, Installation und Konfiguration”.

Pi-Vameter: Aufbau, Installation und Konfiguration

Für die Platine verwenden Sie die auf dem Schaltplan verzeichneten Komponenten. Eine Bestückungsliste finden Sie im Verzeichnis doc/ des Github-Projekts [1]. Der Anschluss an den Pi Zero erfolgt per SPI über die physischen Pins 19 (MOSI), 21 (MISO), 23 (CLK), 24 (SPI**CS0) und 25 (GND) (Abbildung 2).

Das LCD-Modul verbinden Sie über I2C, also die Pins 3 (SDA) und 5 (SCL). Den Strom bekommt das Display über Pin 2 oder 4, den anderen 5-Volt-Pin verbinden Sie für die Speisung des Mess-Pi mit dem 5-Volt-Eingang des Messmoduls.

Für den Mess-Pi benötigen Sie die Lite-Version von Raspian “Stretch”. Mit “Jessie” funktioniert die Software wegen veralteter RRD-Tools nicht. Nach der Ersteinrichtung installieren Sie noch das Paket git (Listing 1, Zeilen 1 und 2) und mit dessen Hilfe dann die Projekt-Software (Zeilen 3 bis 5). Möchten Sie die Messung per Hardware-Taster steuern, benötigen Sie zusätzliche Software (Zeilen 7 bis 9). Da die Installationsskripts auch die Hardware-Konfiguration ändern, müssen Sie zum Abschluss den Pi Zero neu booten.

Als letzter Schritt steht das Anpassen des Messprogramms an den verwendeten ADC-Baustein an. Der Einfachheit halber erledigen Sie das direkt im Programm vameter.py, etwa mit dem Editor Nano. Im Abschnitt configuration finden Sie die Variable ADC, in die Sie den von Ihnen verwendeten ADC-Baustein eintragen. Überprüfen Sie in der Variable ADC_VALUES, ob das Programm den Baustein bereits unterstützt. Falls nicht, müssen Sie das Datenblatt konsultieren und den Chip auch in ADC_VALUES eintragen. Wichtig sind hier die Kommando-Bytes für das Auslesen des ADC und die Auflösung des ADCs in Bits.

Abbildung 2: Der Plan für den Anschluss des ADCs and die SPI-Pins des Pi Zero.

Abbildung 2: Der Plan für den Anschluss des ADCs and die SPI-Pins des Pi Zero.

Listing 1

 

$ sudo apt-get update
$ sudo apt-get -y install git
$ git clone https://github.com/bablokb/pi-vameter.git
$ cd pi-vameter
$ sudo tools/install
$ cd ..
$ git clone https://github.com/bablokb/gpio-poll-service.git
$ cd gpio-poll-service
$ sudo tools/install

Das Messmodul

Das Messmodul (Abbildung 3) besteht nur aus wenigen Komponenten, die Sie den Schaltplänen in Abbildung 4 und Abbildung 5 entnehmen können. Im Zentrum steht ein Analog-Digital-Konverter (ADC) mit mindestens zwei Kanälen. Er misst auf jedem davon die Eingangsspannung im Verhältnis zu einer Referenzspannung und gibt (bei einer 10-Bit-Auflösung) das Ergebnis als Hexadezimalzahl zwischen 0 und 1023 aus.

Abbildung 3: Das Messmodul – der Pi Zero findet auf den Abstandsbolzen seinen Platz.

Abbildung 3: Das Messmodul – der Pi Zero findet auf den Abstandsbolzen seinen Platz.

Mit dem Messmodul misst der Raspberry Pi Spannungen von 0 bis 5,5 Volt und Gleichströme von 0 bis 5 Ampere, zusätzlich berechnet er daraus die Leistung. Das Layout wurde für die Spannungsmessung mit den ADCs Microchip MCP3002 (10 Bit) beziehungsweise MCP3202 (12 Bit), beide für eine 8-polige DIP-Fassung, entworfen.

Huckepack auf der Platine befindet sich das Strommessmodul ACS712-05 der Firma Allegro. Da der chinesische Hersteller die Module mit unterschiedlichen PCB-Maßen produziert, lässt sich kein festes Layout vorgeben. Sie müssen also erst das Modul kaufen und dann das Layout entsprechend anpassen.

Die für die Messungen erforderlichen genauen Referenzspannungen hebt der DC-DC-Konverter SX1308 von 5 auf 7,5 Volt an (Abbildung 4) und erzeugt dann daraus über zwei Spannungsregler LM317M (SMD) die Referenzspannungen 5,00 Volt und 3,30 Volt (Abbildung 5). Das ist zwingend nötig, weil Abweichungen der Betriebsspannungen des ADC und ganz besonders des Stromsensors sich direkt negativ auf das Messergebnis (Nullpunkt bei 2,5 Volt) auswirken.

Abbildung 4: Der Schaltplan für das Messmodul …

Abbildung 4: Der Schaltplan für das Messmodul …

Abbildung 5: … und die Details zum Spannungsregler.

Abbildung 5: … und die Details zum Spannungsregler.

Pegelprobleme ergeben sich bei Messungen der eigenen 5-Volt-Betriebsspannung des RasPi, die je nach Schaltnetzteiltyp auch 5,1 Volt oder mehr betragen kann. Deshalb kommt ein Eingangsspannungteiler (R1=10k, R2=15k) zum Einsatz, der bei Umess=+5,5V eine Spannung von 3,3 Volt erreicht (Abbildung 6).

Abbildung 6: Der Spannungsteiler sorgt für eine gleichmäßige Stromversorgung.

Abbildung 6: Der Spannungsteiler sorgt für eine gleichmäßige Stromversorgung.

Der ADC wird ebenfalls mit 3,3 Volt gespeist, sodass der RasPi spannungsmäßig keine Probleme bekommt. Das Python-Programm muss diesen Messspannungsteiler mit einem Korrekturwert von 5/3 berücksichtigen:

Spannung = 3,3*(ADC-Wert/1024)*5/3

Die obige Formel geht von der Verwendung eines MCP3002 als ADC aus, der 10-Bit-Werte von 0 bis 1023 liefert.

Die Strommessung

Für die Strommessung bedarf es mit dem bereits erwähnten ACS712 eines weiteren Bausteins, eines sogenannten Hall-Sensors. Hier induziert Strom ein Magnetfeld, das wiederum eine Spannung erzeugt. Diese liegt dann am zweiten Eingangskanal des ADC an. Der Mess-Pi kann so aus dem vom ADC gelieferten Wert auf einfache Weise die Stromstärke zurückberechnen.

Da der ACS712 für eine bidirektionale Strommessung konzipiert wurde, lassen sich sowohl Gleich- als auch Wechselströme messen. Anhand der Wandlerkennlinie (Abbildung 7) ergibt sich eine Viout von +2,5 Volt bei 0 Ampere Stromfluss durch die Anschlüsse +Ip und -Ip. Wird der Strom positiver, steigt Viout (bei 5 Ampere ergibt das eine Vioutmax von 2,5V + 5*0,185V = 3,425V), wird er negativer, fällt die Ausgangsspannung.

Abbildung 7: Die Wandler-Kennlinie des Hall-Sensors ACS712-05. (Bild: Datenblatt Allegro ACS712)

Abbildung 7: Die Wandler-Kennlinie des Hall-Sensors ACS712-05. (Bild: Datenblatt Allegro ACS712)

Damit wir an Viout Spannungen über 3,3 Volt ohne Pegelanpassstufe messen können, betreiben wir das Modul in negativer Stromflussrichtung also mit +I vom Schaltnetzteil SNT an -Ip und -I von +Ip in Richtung Last. Durch diesen Schaltungstrick, eine Verpolung, erreichen wir, dass die gemessene Hall-Spannung des Wandlers von der Mittenspannung (2,5 Volt) abgezogen wird: Viout = 2,5V – 5V * 0,185V = 1,575V fällt also mit steigendem Strom.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 8 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland