Spannungsanzeige (PCF8591)

By | April 15, 2021

Wird der Raspberry Pi über eine 12V Batterie mit Strom versorgt, so kann mit dem Modul PCF8591 die Spannung der Batterie gemessen werden. Das Modul kostet nur ca. 5 Euro. Dies hat den Vorteil, dass man weiß wie viel Spannung in der Batterie verbleibt. Außerdem kann man auch die Eingangsspannung des Solarpanels damit messen.

Der PCF8591 verwendet, wie auch der BME680-Sensor, die I2C Schnittstelle. An die I2C Schnittstelle können mehrere Sensoren und Module angeschlossen werden. Diese nutzen alle die selben beiden Pins am Raspberry.

Der PCF8591 ist ein Analog-Digital Wandler, der einen analogen Wert in einen digitalen Wert umwandelt.

Benötigte Bauteile

Die richtige Verkabelung

Verkabelung zwischen Raspberry Pi, PCF8591 und einem Spannungsteiler.

Batterie an den Spannungsteiler:

  • + Plus Pol -> VCC (Schraubkontakt)
  • – Minus Pol -> GND (Schraubkontakt)

Spannungsteiler an das PCF8591 Modul:

  • S -> AIN2
  • GND -> GND

PCF8591 an den Raspberry Pi:

  • SCL -> Pin 5/GPIO3 (wie der BME280/BME680)
  • SDA -> Pin 3/GPIO2 (wie der BME280/BME680)
  • GND -> GND
  • VCC -> 3.3V

Spannungsteiler selbst löten

Das Spannungsteiler-Bauteil ist vergleichsweise teuer, dafür, dass es nur zwei Widerstände beinhaltet, die diesen Job machen. Daher kann man sich auch einfach selbst einen Spannungsteiler löten.

Es ist ein 5:1 Verhältnis zu empfehlen. Dies entspricht 30kOhm : 7,5kOhm

Schaltbild eines 5:1 Spannungsteilers.

Messbereich erhöhen

Wird der PCF8591 vom Rasperry Pi mit 3,3V versorgt, so kann der PCF8591 bis zu 16,5V messen. Rechnung: 5*3.3V=16,5V

Will man bis zu 25V messen, so muss man bei einem 5:1 Verhältnis den PCF8591 an die 5V des Raspberrys anschließen. Die Berechnung geht wie folgt: 5*5V=25V

Will man weiterhin den PCF8591 mit 3,3V versorgen, und dennoch bis zu 25V messen, so kann man das Verhältnis des Spannungsteilers anpassen.

Sensor im HoneyPi Wartungsmodus hinzufügen

Wie alle Sensoren, die an den HoneyPi angeschlossen werden kann der PCF8591 als Sensor hinzugefügt werden. Anschließend wird ein ThingSpeak Feld ausgewählt, auf dem die Messwerte gespeichert werden sollen.

Print Friendly, PDF & Email
Author: Javan

Hobbyimker und leidenschaftlicher Programmierer. Hat das Imkern während der Schulzeit gelernt. Imkert seit 2013. Mitglied des Imkerverein Würmgau.

24 thoughts on “Spannungsanzeige (PCF8591)

  1. Andreas

    Hallo zusammen,
    zunächst mal großes Lob an das HoneyPi Team, ich bin total begeistert!
    Auch ich habe auch den Spannungssensor PCF8591 verbaut und beobachte eine ausgegebene Spannung die 0,2-0,35 niedriger ist als mit Voltmeter gemessen oder vom Laderegler angezeigt. Ich habe gelesen dass hier jemand ebenfalls das schon hatte, sollte das mit der neuesten Firmware 1.3.7 schon behoben sein? Oder mache ich was falsch?
    Mein Vorgehen: Spannungsteiler gebaut mit 33kOhm und 6,8kOhm Widerständen (real gemessen: 31,8kOhm und 6,8kOhm).
    Ich habe mit den realen Werten gerechnet: ((31,8/6,8)+1)*3,3 = 18,73. Verwende ich diesen Wert habe ich die genannte Abweichung. Ich habe demnach etwas nach oben korrigiert bis der Spannungswert stimmt, welche Auswirkung/Abweichung das zur Folge hat über verschiedene Spannungshöhen weiß ich noch nicht. Grüße Andreas

    Reply
  2. Stephan

    hallo, tolles projekt. eine frage darf ich wissen wie du den PCF8591 ausliest? ich würde gerne allein mit einem raspi die spannung von einem akku messen? hab zwar einige python scripts gefunden im internet aber die laufen irgendwie nicht bzw. es steht nirgends dran wie ich das einstelle das ich die richtige spannung messen/auslesen kann?
    danke

    Reply
  3. Uwe

    Hallo,
    ich habe folgendes Problem mit dem PCF8591. Die Spannung kann ich messen und wird auch richtig angezeigt wenn ich die Messwerte aktualisiere. Dann habe ich einen Kanal 4 in Thinkspeak eingerichtet und da ist das Problem, der Messwert kommen nicht an. Die anderen Sensorenwerte werden sauber eingetragen nur die Batteriespannung nicht. Kann es an dem I2C Bus liegen? Weil wenn ich die Messdaten anzeige kommt Feld 33.
    Ich denke ich habe alles richtig eingestellt, weil die anderen Sensoren laufen ohne Probleme.
    Ich hoffe Ihr könnt mir helfen.
    Danke und Super Projekt was ihr da gemacht habt.
    Gruß
    Uwe

    Reply
    1. Javan Post author

      Hallo Uwe, ist der API Key für deinen 4. ThingSpeak Kanal korrekt? und hast du das Feld in ThingSpeak richtig konfiguriert? Wenn du bei der lokalen Messung ein Messergebniss angezeigt bekommst, dann liegt es nicht am I2C Bus.

      Reply
  4. Alexander Fröhner

    Hallo Javan,

    danke für die Info, sobald ich das eigentliche WLAN eingerichtet, hat es auch funktioniert.
    Eine tolle Sache.
    Ist es richtig, dass die ThinkView APP nur im Public View Daten anzeigt?
    Grüße Alexander

    Reply
    1. Javan Post author

      Schön, dass es jetzt funktioniert. Ja ThingSpeak hat einmal einen privaten Bereich den siehst du nur selbst bei ThingSpeak und einen öffentlichen Bereich, den du mit jedem teilen kannst oder auf deiner Webseite verlinken kannst.

      Reply
  5. Olaf

    Hallo Javan, kurze Frage zum Spannungsteiler. Ist das Verhältnis 5:1 wichtig (im Bespiel ist es ja auch 4:1). Ich hatte das verstanden, dass nur die Relation wichtig ist – also 1k zu 220 würde demnach auch passen. Sicher kann man mir dem Regler nachjustieren.

    Danke

    Olaf

    Reply
  6. Alexander Fröhner

    Hallo Forum,
    ich habe mir den Bausatz nun aufgebaut, speziell möchte ich nur den Spannunsmesser anschließen.
    Es ist eine Erstinbetriebnahme! Mit Firmware 1.1 auf dem Zero WH. Die Pins laut der Anleitung angeschlossen.
    Ich komme auch in den Wartungsmodus und habe ich auch den Sensor konfiguriert, alle Keys eingeben.
    Aber wenn ich auf Speichern drücke, kommt ein Fenster “Die Bienenstockwaage ist nicht erreichbar……. und
    ein Button Erneut versuchen”
    Dieses Fenster kann ich nicht beenden, also auch keine Einstellungen speichern. Wohlgemerkt, ich möchte nur den Spannungssensor testen, ohne eine Bienenwaage.
    Könnt ihr mirt sagen, was ich evtl. Falsch mache? Oder muss eine Bienenwaage angeschlossen sein?
    Danke für eure Hilfe.
    Alexander

    Reply
    1. Javan Post author

      Hallo Alexander,
      eine Waage muss nicht angeschlossen sein. Du kannst auch ausschließlich einen Sensor oder in dem Fall nur den PCF8591 anschließen.

      Das Problem, welches du beschreibst zeigt doch im selben Dialog auch mögliche Ursachen an. “Dein HoneyPi ist derzeit nicht erreichbar.” Das bedeutet, dein WLAN könnte sich getrennt haben. Steht eigentlich auch in diesem Dialog. Stelle die Verbindung wieder her.

      Viele Grüße

      Reply
  7. Sambuco

    Hallo Javan
    du hast erwähnt dass man den Spannungsteiler einfach selbst herstellen kann.
    Hast du da ein Schaltbild oder einen Link mit einem Bauplan wo das etwas beschrieben wird?

    Danke und Grüße
    Sambuco

    Reply
  8. Patrick

    Hallo,
    ich wollte gerne den PCF8591 Voltmeter im Wartungsmodus auswählen. Der Sensor taucht aber nicht auf, habe Version 1.07 drauf und diese auch nochmal neu runtergeladen und erneut aufgespielt, dann mal auf 1.08 beta geupdatet, jedoch taucht der Sensor in der Auswahl nicht auf. Was mache ich falsch?

    Reply
    1. Michael Drewitz

      Ist der denn auf dem BUS zu finden?
      An der Konsole i2cdetect -y 1 eingeben….

      Reply
  9. Rene

    Hallo zusammen erst mal,

    und sorry für meine vielleicht blöde Frage. Ich habe den Pi mit Wäge Plattform soweit fertig. Nur stehe ich mit der Stromversorgung irgendwie gewaltig auf dem Schlauch.

    ich habe zur Stromversorgung eine Solarzelle mit Zubehör wie empfohlen sowie einen USB Stecker für den Pi. Wie muss ich das jetzt schalten um die Spannung welche noch in der Batterie ist bzw. übers Panel geladen wird über den PCF8591 zu messen und anzeigen zu lassen??

    Die PI Stromversorgung normal über den Mini USB ? oder die 12V an den Anschluss des Voltage Sensor ? Wie Messe ich die Batteriespannung wenn diese über die Mini USB Buchse erfolgt ? Irgendwie hab ich gerade eine Denkblockade oder sehe was komplett falsch.

    Die PI Stomversorgung normal über den Mini USB ? oder die 12V an den Anschluss des Voltage Senor ? Wie Messe ich die Batteriespannung wenn diese über die Mini USB Buchse erfolgt ? Irgendwie hab ich gerade eine Denkblockade oder sehe was komplett falsch.

    Grüße
    René

    Reply
    1. Javan Post author

      Hi Rene,

      der Raspberry wird mit einem 5V USB Anschluss versorgt. Dafür hast du den 12V auf 5 Converter an der Batterie.

      Deine Batterie und dein Solarpanel haben 12V. Mit der Spannugsanzeige (PCF8591) kannst du entweder die Eingangsspannung am Solarpanel messen, oder wie es vorgesehen ist, die Spannung an der Batterie. Damit kannst du abschätzen wie lange dein Akku noch hält.

      Viele Grüße
      Javan

      Reply
  10. Jürgen

    Hallo Javan
    Meine Waage funktioniert tadellos. Einfach ein super Projekt, was ihr da zur Verfügung stellt.
    Ich möchte nun eine Spannungsanzeige auf meinem Raspberry pi Zero WH anschliessen und in Thinkspeak einfügen.
    Da es aber den obigen verlinkten Sensor PCF8591 nicht mehr auf Amazon gibt, wollte ich fragen ob ich dafür den Sensor ADS1115 ADC Modul 16bit 4 Kanäle (Amazon) verweden kann, ohne war zu programmieren zu müssen.
    Bitte um Rückmeldung

    Reply
    1. Javan Post author

      Vielen Dank.
      Nein, da das ein anderer Sensor ist geht das leider nicht.

      Reply
  11. Javan Post author

    Im Wartungsmodus unter dem Reiter “Systemupdate” kannst du auf die neuste Version aktualisieren. Das ist die Version v1.0.6
    Viele Grüße

    Reply
    1. Sebastian

      Danke Javan, ich habe nach dem Update nur auf der Website gesucht..

      Noch eine Frage zur Genauigkeit der Spannungsmessung: Der mit zwei unterschiedlichen Multimetern gemessene Spannungswert an der Batterie liegt bei 12,42V – ausgegeben bekomme ich HoneyPi jedoch 12,207V.

      Kannst du die Abweichung bei dir auch feststellen? Würde hier ein Korrekturwert, wie bei der Temperatur des BME280, sinnvoll sein?

      LG Sebastian

      Reply
      1. Javan Post author

        ivh habe gerade eine Betaversion bereitgestellt. Kannst du nochmal messen ob es jetzt genauer ist?

        Reply
        1. Sebastian

          Die Beta ist nun installiert – leider jedoch keine Verbesserung bei mir..
          Bei den Messergebnissen (Spannung) scheinen auch nur zwei Werte rauszukommen: 12,207 und 12,1094 – seltsam. Beim verstellen des Potis auf der Platine des pcf ergibt sich auch keine Veränderung des Wertes. Auch die 3 Jumper verändern nichts – egal ob sie drin sind oder nicht.
          Der Anschluss nach Schaltplan passt – alle weiteren Sensoren laufen und geben die Daten korrekt aus..
          Den Voltage-Sensor konnte ich tauschen da ich hiervon genügend da habe – den PCF werde ich dann nochmal ordern, nicht das er einfach fehlerhaft funktioniert. Überprüfen kann ich ihn mangels Expertise nicht.
          LG Sebastian

          Reply
        2. Sebastian

          Hallo Javan / Florian,

          danke bis an diese Stelle für eure Hilfe! Die Waage geht heute, trotz der leichter Fehlmessung bei der Spannung, in Betrieb unter 2 Bienenstöcke.

          Ich habe zwischenzeitlich 4 weitere PCF8591 erhalten und der reihe nach getestet – die Fehlmessung bleibt bestehen. Die Volt-Sensoren stammten aus einer Lieferung – vielleicht liegt auch hier der Bauteilefehler: Bei den aufgelöteten Widerständen messe ich R1= 30,12Ohm und R2= 7,48 Ohm. (Bei allen 5) – Vielleicht kommt es auch hierbei zur Fehlerhaften Übersetzung – 1:5 beträgt dieses Verhältnis nicht.

          Bei dem Vergleich der Messwerte zwischen Multimeter und HoneyPi-Messung über PCF8591 kommt es zu folgendem Bild: (Ich hoffe die Formatierung bleibt erhalten)

          Spalte 1. Messung durch HoneyPI
          Spalte 2: Messung durch Multimeter
          Spalte 3: Abweichung zu Realwert

          11,2305 11,5 -0,27
          11,4258 11,66 -0,234
          11,5234 11,76 -0,237
          11,5234 11,82 -0,296
          12,3047 12,53 -0,225
          12,4023 12,69 -0,288
          12,5 12,71 -0,21

          Die Messwerte weichen schon weitestgehend gleichmäßig um~ -0,25V von der tatsächlichen Spannung ab – die Messung löst allerdings, trotz 4 Nachkommastellen, nicht sehr genau auf. Die Abweichung könnte ich mir noch durch das falsche Verhältnis des Spannungsteilers erklären, die grobe Abtastrate jedoch nicht.
          Habt ihr dafür vielleicht einen Ansatz der mich da weiter bringt?
          Danke und viele Grüße
          Sebastian

          Reply
      2. Javan Post author

        Vielen Dank für dein Kommentar vom 2. Mai – das hilft denke ich sehr. Da wir den Spannungswert aus der maximal messbaren Spannung umrechnen kommt es vermutlich zu diesen linearen Abweichungen. Ich habe mir etwas als Lösung überlegt, was ich im nächsten Beta-Update einspielen werden.

        Reply

Leave a Reply to Sebastian Cancel reply

Your email address will not be published.