GPIO input 3V abfragen

  • Hi!


    wenn ich an Pin7 (GPIO.IN) messen möchte, ob gemessene 2.9V anliegen, dann erhalte ich mit nachfolgender Python-Abfrage erratisch mal "ON", mal "OFF", egal ob 2.9V anliegen oder nicht:


    Die zugrundeliegende Schaltung zeige ich weiter unten - Ziel der Schaltung ist es, im Sinne eines USV festzustellen, ob das Netzteil 5V liefert oder nicht. Dazu zweige ich 5V ab und leite diese über den Widerstand R3 von 470 Ohm an Pin7 - wenn ich an Klemmbuchse 4 von J3 nachmesse, so liegen dort konstant die gewünschten 2.9V an oder aber 0V, wenn ich das Netzteil ausschalte.



    Warum funktioniert dann das oben gezeigte Python-Script nicht zuverlässig?


    Ich habe wirklich alle möglichen Erklärungen zu pulldown- und pullup-Widerständen gelesen und sämtliche Treffer studiert, die ähnliche Abfragen beinhalten, aber leider habe ich nichts gefunden, was mir weiterhelfen könnte. Ich hab es natürlich auch schon mit den internen pulldown und pullup Widerständen versucht, aber da hatte ich dann allenfalls immer 0 oder immer 1, egal was anlag, also auch nicht besser.


    Wäre super, wenn jemand einen Hinweis geben könnte, wo der Fehler liegt - Danke!


    LG Markus

  • Hallo

    Bitte mal paar mehr Infos bitte ;)

    Welches PI ?
    Welche Python Version von GPIO Zero ist installiert ? Bei Basis Python 3 , akt. 3.8 ist das die Version 1.6.2 für GPIOZero !

    Und den GPIO Port 7 nicht zu Verwechseln mit PIN7 nimmt man für solche Aufgaben nicht !
    Die unteren ;) PIN40 /38/37 sind einfach nicht durch andere Sachen vorbelegt !


    Gesunde Grüße

    Andy

    Mal in der Bash "pinout" ausführen !

  • Wieso hast du da 2,9 Volt? ist das ne blaue oder weiße LED? Bei den üblichen (rot/grün) müssten es eher ~2 Volt sein.


    Du müsstest den GPIO mit Pulldown konfigurieren. Wenn ich das richtig sehe, ist der Pulldown bei dir nicht aktiv.

    Hast du den richtigen Pin am Pi? Mit den BCM-Nummern ist das ja etwas intransparent.

    Teste mal, ob dein Programm richtig funktioniert, indem du einfach 3,3 V vom Pin 1 an den Eingangspin legst.

  • Wow... das ging ja schneller als man hinschauen kann. Da muss ich mich anstrengen:


    1. Raspberry Pi Zero HW

    2. Raspbian 10 (neueste Version stable)

    3. Python 2.7.16

    4. RPi.GPIO-0.7.0

    5. Ja, eine blaue LED - ursprünglich waren es auch 3V nochwas, aber dann habe ich zusätzlich zum 470 Ohm noch einen 1KOhm eingelötet, so dass jetzt dieser schräge Wert herausgekommen ist, ziemlich konstant 2.94V - das müsste doch messbar sein!


    Gut möglich, dass ich mit der PIN-Zählerei durcheinandergekommen bin. Den Pin, den ich angeschlossen habe, das ist der 4. von oben, linke Reihe, wenn man den SD-Slot oben hält.


    pinout habe ich in der bash nicht gefunden, das System kennt den Befehl nicht - muss ich erstmal suchen, was das sein soll..


    Danke schonmal! Ich melde mich auf jeden Fall mit der Lösung sobald ich sie habe!


    LG Markus

  • OK Leute - Asche auf mein Haupt!!! Ich habe in der Tat eine falsche Pin-Nummer angegeben. Mit der richtigen (ich habe jetzt mal GPIO26 versucht) ging es auf Anhieb und zuverlässig.


    Wie kann ich das nur wieder gut tun? Schäm...


    Haue mir 5 mal auf den Schädel, tut weh...


    Danke !!!

  • Hallo

    Komplett falsch ! Das Zero WT habe ich auch ! Dort läuft eine 3.8 Python, mit nicht RPI , sondern mit GPIOZero Bibliothek !


    sudo apt update

    sudo apt upgrade

    sudo apt install -y python3-gpiozer



    "pinout" sollte sich wie gesehen darstellen ;

    Ansonsten bist du wohl nicht auf dem Stand der Dinge

    Gesunde Grüße
    Andy

  • Hi Andy,


    danke für die Erklärung von pinout - das kannte ich in der Tat noch nicht. Und dass ich im Moment nicht "auf dem Stand der Dinge" bin, das hast Du richtig erkannt; alles andere wäre meinerseits ja ziemlich vermessen, also ich meine jetzt, sich derart in der Pin-Belegung zu verhauen und zu glauben, man wäre wer... Nein, da bin ich ganz bescheiden.


    Trotzdem: Vielleicht hilft es ja dem einen oder anderen Anfänger wie mir - ich habe jetzt mal den Schaltplan fertiggestellt und getestet. Es geht mir bei dem Projekt um eine Platine, an die man folgende Komponenten anschließen kann:


    1. Raspberry (Pi Zero)

    2. Akku (mit 2 USB-Ausgängen= 1x 1A -> Ultraschall, 1x 2A -> RPI)

    3. Ultraschallsensor (HC-SR04)


    Funktion: Fortlaufende Messung des Wasserpegels in einer Zisterne o.ä. per Ultraschallsensor - und bei Stromausfall ist ein USV integriert qua Akku. Der Zero läuft dann noch ein paar Tage weiter und misst auch weiter den Wasserpegel und verschickt ihn per Email... den Stromausfall meldet er natürlich auch nebenbei.


    Und hier der Schaltplan:



    Und klar: Der Schaltplan lässt sich sicherlich noch verbessern, aber das Grundprinzip ist glaube ich nicht ganz schlecht - und deutlich günstiger als die Anschaffung eines USV-HATs.


    Liebe Grüße,

    Markus

  • Moin Markus
    Das ist doch kompletter Blödsinn !
    Wieso wenn ich den Schaltplan richtig lese, und verstehe wird der US Sensor nur über den USV Akku betreiben ? Wie kommt dann das PI an seinen Strom, wenn das Netzteil ausfällt ?

    Jetzt erkläre mir mal wieso du versuchst ein PI weil ich den 2 ten Connektor nicht auf dem Schirm hatte, oder als solchen erkannt hatte, du versuchst 5 Volt sowohl über J2 und auch über J5 mit nur einem Vorwiederstand von 470 Ohm gegen den Ausgang 3,3 Volt zum PI zu bringen ?

    Mach ne Spar Schaltung !
    Akku ist und bleibt hoffentlich geladen, Netzteil beim PI kann auch mal 5,8 Volt abgeben, das zerstört es nicht, und dann bring nur die 2 mal Masse Zusammen, und mach das über eine Stromschwelle ! ( Ja nicht Quelle )

    Wenn der Netzstrom ausfällt, über eine Stromschwelle Transistoren kommt dann der gesamte Strom vom Akku ! Ich verstehe auch nicht warum man einen Dauerspannungs-Ausgang über wohl eine nicht mächtigen Widerstand mit einer anderen Spannung oder Potenzial beauflagen sollt ?

    Wenn das Netzteil ausfallen sollte, müsste der obwohl der 3,3 nicht als INPUT gedacht ist dieser Widerstand 470 Ohm fast 1.2 Watt abhalten können ?



    Edited once, last by AndyPI ().

  • Das ist doch kompletter Blödsinn !

    Würds dir sehr schwer fallen, dich im Ton etwas zu mäßigen? Ich finde es unsäglich, wie du hier einen sehr gutwilligen Einsteiger angehst...


    Im übrigen sind deine Sätze so verquer, dass man kaum versteht, was du sagen willst.


    Zitat:

    "Jetzt erkläre mir mal wieso du versuchst ein PI weil ich den 2 ten Connektor nicht auf dem Schirm hatte, oder als solchen erkannt hatte, du versuchst 5 Volt sowohl über J2 und auch über J5 mit nur einem Vorwiederstand von 470 Ohm gegen den Ausgang 3,3 Volt zum PI zu bringen ?"


    Was möchtest du uns damit eigentlich sagen?

  • Moin!


    Knackpunkt der obigen Schaltung ist eine Power-Bank (Akku mit 10000 mAh), der über zwei USB-Buchsen (Ausgang) sowie eine Micro-USB und eine USB-C Buchse (Eingang) zum Laden des Akkus verfügt. Entscheidend ist dabei, dass er gleichzeitig am Netzteil angeschlossen sein kann und zwei angeschlossene Verbraucher versorgen kann (d.h. gleichzeitige Ladung des Akkus und Versorgung der Verbraucher).


    Der Akku wird an ein 5V Netzteil angeschlossen, welches an der einzig verfügbaren Stromleitung (230V) hängt.


    Ein derartiger Akku ermöglicht folgende Funktion: Solange Strom vom Netz kommt, werden der RPI und die Platine mit Ultraschallsensor über den Strom aus dem Netz versorgt. Sobald es zu einem Stromausfall kommt, werden RPI und Platine über die 5V des Akkus weiter versorgt. Dies erfüllt die Funktion eines USV. Damit außerdem der RPI mitbekommt, dass es einen Stromausfall gibt, habe ich eine Abzweigung der 5V des Netzteils über einen 470 Ohm-Widerstand auf einen der GPIOs des RPI gelegt, damit er dort messen kann, ob 3.3V (im konkreten Fall bei mir 2.9V) anliegen oder 0V - ist letzteres der Fall, dann liegt offensichtlich ein Stromausfall vor und das Notfallprogramm ist angesagt.


    Leider hatte ich in der ersten Schaltung (weiter oben) nicht bedacht, dass bei Stromausfall dann zwar noch der RPI versorgt wird, nicht aber mehr der Ultraschallsensor. Da ich aber u.U. wissen möchte (wenn ich im Urlaub weit weg bin), ob der Wasserpegel in den nächsten Stunden weiter steigt, gleich bleibt oder aber wieder sinkt, wäre es sinnvoll, wenn der Sensor ebenfalls mit 5V versorgt wird - das ist just möglich, weil der Akku ja noch über einen zweiten USB-Ausgang verfügt, ergo den Sensor mit 1A (was sicher reichen sollte) versorgen kann.


    Ein kleineres Problem gibt es noch: Bei Stromausfall versorgt der von mir ausgewählte Akku zwar den RPI mit 5V, aber leider nicht komplett unterbrechungsfrei. Für kurze Zeit scheint bei diesem Modell der Strom wegzubleiben, so dass der RPI einen unfreiwilligen Neustart macht. Dabei könnten rein theoretisch wichtige Daten verloren gehen bzw. das Dateisystem beschädigt werden. Das ist jetzt in meinen Augen kein besonders gravierendes Problem, zumal es hoffentlich nicht allzu oft im Leben des RPIs passieren wird (wie oft haben wir schon Stromausfälle...) - aber richtig schön ist das nicht. Vermutlich müsste man die Unterbrechungszeit ohne Strom mit einem entsprechend stark gewählten Kondensator puffern?


    Es gibt aber einen Grund, warum ich das voraussichtlich nicht tun werde: Wenn nämlich ein Stromausfall vorliegt und der RPI nach längerer Zeit (einigen Stunden) heruntergefahren wird, um Datenverlust und Systembeschädigung vorzubeugen, dann gibt es danach womöglich keinen Weg mehr, ihn wieder hochzufahren (das muss ich noch testen), es sei denn, direkt am RPI den Stecker ziehen und neu anschließen. Das allerdings wäre ziemlich umständlich, denn man müsste dann ja jedesmal den Gullideckel öffnen und den Verteiler, in dem alles steckt, aufschrauben, etwa auch dann, wenn man eigentlich nur testen möchte, ob (etwa nach einer Änderung der Einstellungen) alles ordnungsgemäß funktioniert... Die Tatsache der unfreiwilligen Unterbrechung hat so gesehen den Vorteil, dass ich den RPI neu starten kann, indem ich nur für eine kurze Stromunterbrechung sorge.


    Soweit der Ansatz - ich kann nicht erkennen, was daran grundsätzlich falsch oder unsinnig sein sollte. Für meine Zwecke ist es jedenfalls ausreichend - aber ich lerne gerne dazu, vor allem, wie man es besser machen kann.


    LG Markus


    PS: Für einen USV-HAT legt man ca. 30-40€ hin, je nach Modell, nebst Akkuhalterung und Akku, so dass man insgesamt mit ca. 50€ rechnen muss. Dafür bekommt man dann hoffentlich eine grundsolide Lösung. Meine eigene, hier vorgestellte, basiert auf einer Standard-Power-Bank mit ca. 10x mehr Akku-Leistung, kommt auf gerade mal 11€. Hinzu kommen noch die Bauteile für die Platine, insgesamt also höchstens 15€ für deutlich mehr Akku-Leistung, da eine günstige Standard-Power-Bank zum Einsatz kommt, so wie sie massenweise für Smartphones u.ä. verwendet wird.

    Edited 4 times, last by max4raspi ().

  • Nachtrag: Gerade habe ich getestet: Wenn ich den Raspberry Pi Zero ordentlich herunterfahre (mit "shutdown -h 0"), dann kann ich ihn ohne Probleme auch wieder aufwecken, indem ich der PowerBank (deren Akku fast voll ist) wieder Strom gebe (also den Stecker, der zur PowerBank führt, einstecke) - auch dieser Impuls wird an den RPI weitergereicht, so dass die oben als Problem beschriebene Unterbrechung der Stromversorgung effektiv keinen Sinn macht und behoben werden sollte.


    Was meint Ihr, sollte das mit einem Kondensator zu schaffen sein? Und wenn ja, wo im Schaltplan einbauen und welche Stärke?


    Ein Tipp von Euch wäre klasse - danke!


    Liebe Grüße,

    Markus

  • Das kommt drauf an, wie lange die Unterbrechung dauert, wenn von Netz auf Akku umgeschaltet wird. Hast du dazu eine Angabe?

    Da liegst du aber sicher schon im Bereich von einigen mF - das wird klobig und teuer.

    Da das eigentlich keien so ungewöhnliche Aufgabe ist (mein Handy steigt auch nicht aus, wenn ich den Ladestecker rausziehe), sollte es dafür ne elegantere Lösung geben.

    Edited once, last by Gnom ().

  • Das kommt drauf an, wie lange die Unterbrechung dauert, wenn von Netz auf Akku umgeschaltet wird. Hast du dazu eine Angabe?

    Da liegst du aber sicher schon im Bereich von einigen mF - das wird klobig und teuer.

    Da das eigentlich keien so ungewöhnliche Aufgabe ist (mein Handy steigt auch nicht aus, wenn ich den Ladestecker rausziehe), sollte es dafür ne elegantere Lösung geben.

    Der restart setzt allem Anschein nach unmittelbar nach Einstecken des Stecker wieder ein, so dass ich behaupten möchte, dass es sich um eine Unterbrechung von etwa 1 bis maximal 2 Sekunden handelt, auf keinen Fall mehr. Demnach bräuchte es gar keinen fetten Kondensator - oder?


    Diese Stromunterbrechung scheint eine Eigenheit von PowerBanks zu sein, vermutlich zum Schutz der Verbraucher? Jedenfalls gibt es eine sehr kurze Unterbrechung - aber die bewirkt eben schon, dass der RPI einen Neustart macht. Und das ist natürlich nicht sinnvoll...


    LG Markus

  • Ungefähr ein paar Hundert mF - da musst du schon fast mit der Größe eines Schuhkartons rechnen.

    Besorg dir besser einen vernünftigen Laderegler und einen Akku, damit das richtig klappt. Wie gesagt, jedes Handy kann das.