Messfehler Schalter mit langem Kabel

  • Hallo liebes Raspberry Pi Forum!

    Das ist mein erster Beitrag hier, also bitte nehmt es mir nicht krumm, wenn ich dumme Fragen stelle :*

    Ich habe kürzlich angefangen, mit einem Raspberry Pi 3 Model B zu arbeiten. Der Anfang war für mich äußerts holprig: Erst der vierte Monitor wollte mir ein Bild anzeigen, bis das Internet funktioniert hat, hat es Stunden gedauert und ich stelle fest, dass bei den meisten meiner Raspbian-Probleme erst die mindestens fünfte online vorgeschlagene Lösung funktioniert.

    Jetzt läuft es aber halbwegs und ich möchte (beruflich) ein Projekt bearbeiten. Ich will die Stellung eines Schalters (normally closed) mit mehreren Metern Kabel dazwischen abfragen, in dieser Schaltung:

    Pulldown-Widerstand

    (Aus https://www.elektronik-kompendium.de/sites/raspberry-pi/2006051.htm entnommen)

    R_Pulldown ist bei mir 1 kOhm. Der Raspberry Pi schickt mir, wie von mir vorgesehen, beim Trennen des Schalters eine E-Mail über SMTP. Aktuell habe ich nur ein durchgängiges Kabel ohne Schalter dazwischen und stelle fest, dass er mir trotzdem alle paar Stunden eine E-Mail schickt. Mein Python-Script hat also mit dem GPIO-Modul eine Falling Edge erkannt.

    Folgendes habe ich bereits probiert:

    - 1 A-Netzteil durch 2 A-Netzteil ersetzt (Fehler seltener, aber noch vorhanden)

    - Schaltung ohne Pulldown (Viel schlechter, mit 10 kOhm-Pulldown ebenfalls schlechter)

    - Interner Pulldown (scheint keinen Einfluss zu haben, ist aber gerade an)

    - Falling Edge Event Detection durch zeitversetzte Abfrage [True, 1s später False?] ersetzt (kaum Fehler, ist aber von der Logik her schlechter und sporadische Fehler würden kaum erkannt werden)

    Meine nächsten Schritte wären:

    - Irgendeine Art von Tiefpass mit einem Kondensator

    - Software-mäßiger (Pseudo-)Tiefpass

    - Den Raspberry Pi in einem satanistischen Ritual verbrennen und die Asche in einem scheiß Conrad verstreuen

    Könnt ihr mir da vielleicht weiterhelfen? :helpnew:

    Ich bin leider Maschinenbau-Ingenieur und bin elektrotechnisch nur bedingt fähig. ?(

    Danke euch schonmal!

    Felix

  • Der Anfang war für mich äußerts holprig:

    1 A-Netzteil durch 2 A-Netzteil ersetzt (Fehler seltener, aber noch vorhanden)

    Moin,

    einige Deiner Probleme sind durch die unzureichende Stromversorgung entstanden. Dies solltest Du ändern, es wird Dir immer wieder Probleme bereiten. Das passende Netzteil ist dieses.

    mehreren Metern Kabel dazwischen abfragen

    Die eine hervorragende Antenne abgeben und Dir eine ganze Menge Kram einfangen. In dem Fall ist es vielleicht besser, statt des von Dir verwendeten Pull Down einen Pull up Widerstand zu verwenden. Evt. musst Du trotzdem noch andere Maßnahmen ergreifen. Kommt jedoch drauf an. Gut wäre es, wenn Du DEINEN Aufbau genau skizzierst und auch Dein Python Programm zeigst. Dann können Dir auch die Pythonesen helfen.

    Edit: Hier ist mal noch ein schöner Link zum Lesen für lange Winterabende.

  • Hi STF, danke dir für die schnelle Antwort!

    Das Netzteil wird natürlich bestellt, es war nur kurzfristig nichts besseres da. Den Pulldown benutze ich absichtlich, damit ich es mitbekomme, wenn irgendwo in der Schaltung eine Verbindung nicht mehr da ist. Ich werde morgen mal versuchen, noch mehr Details und meinen Code hier reinzuschreiben.

    • Offizieller Beitrag

    Hallo FelixBeer,

    willkommen im Forum! ;)

    Das Skript wäre hierzu wirklich sehr interessant, da ggf. die internen Widerstände gegen externe arbeiten könnten. Übrigens wäre Pullup einem Pulldown vorzuziehen, weil aus der Erfahrung heraus, damit der Status des GPIO weniger Störanfällig und klarer ist.

  • Hallo zusammen, hier ist mein python-script, Die "XXXX" sind natürlich im Programm funktionierende Daten. Sorry, das Einrücken funktioniert hier irgendwie nicht.

    Einmal editiert, zuletzt von FelixBeer (10. Februar 2021 um 15:33)

  • Danke schonmal für eure Antworten. Ich kann den Fehler jetzt reproduzieren, indem ich eine Pumpe (funktioniert immer) oder ein loses Kaltgerätekabel ohne Verbraucher (funktioniert nicht immer) an die Steckdose stecke. Das funktioniert sogar oft auch wenn ich nur das Bredboard-Kabel am Pin dran habe. Folgendes habe ich noch probiert:

    - Geschirmtes Kabel lose

    - Geschirmtes Kabel, Schirm an GND

    - Kondensator parallel zum Pulldownwiderstand: 100nF / 10µF, gefühlt etwas besser aber nicht perfekt

    - Externen Pulldown-Widerstand entfernt und nur internen PullUP-Widerstand benutzt

    - Externen Pulldown-Widerstand entfernt und nur internen Pulldown benutzt

    - Pin gewechselt

    - Spannung zwischen den Leitern während des Fehlerreproduzierungs-Einsteckens mit dem Multimeter gemessen (dauerhaft korrekte +3,3V)

    Ich glaube, ich muss das softwaremäßig lösen.

  • - Externen Pulldown-Widerstand entfernt und nur internen PullUP-Widerstand benutzt

    - Externen Pulldown-Widerstand entfernt und nur internen Pulldown benutzt

    Das ergibt nicht so richtig einen Sinn. Mach doch mal bitte eine Zeichnung, was Du wie genau mit Pullup/down angeschlossen hast.

    • Offizieller Beitrag
    Python
    GPIO.PUD_DOWN
    
    ...
    
    GPIO.add_event_detect(inputPin, GPIO.FALLING, bouncetime=2000

    Der inputPin ist unten, denn Du hast den Pulldown eingestellt. --- Du prüfst ob ein Event kommt, wenn der inputPin fällt, aber wohin. Noch tiefer als der schon ist? :conf:

    Btw. Die 2000 bouncetime ist viel zu hoch.

    Zum Rest des Skrips schreibe ich (erst)mal nichts. ;)

  • Das ergibt nicht so richtig einen Sinn. Mach doch mal bitte eine Zeichnung, was Du wie genau mit Pullup/down angeschlossen hast.

    Ich kann da nicht mehr zeichnen, als in der Grafik aus meinem ersten Beitrag. Da ist alles drin, was ich angeschlossen habe, von der LED abgesehen.

    Der inputPin ist unten, denn Du hast den Pulldown eingestellt. --- Du prüfst ob ein Event kommt, wenn der inputPin fällt, aber wohin. Noch tiefer als der schon ist? :conf:

    Ähm der ist auf True, wenn er True sein soll und auf False, wenn er False sein soll, von den Fehlerfällen abgesehen. Der ist also nicht unten.

    Btw. Die 2000 bouncetime ist viel zu hoch.

    Das kommt doch auf die Anwendung an? Warum sollte ich das niedriger stellen? So wie ich das verstanden habe, ist das nur die Zeit, in der er schnell nacheinander kommende Events ausblendet. Er erkennt natürlich auch Events, die viel schneller also die 2s sind.

    Zum Rest des Skrips schreibe ich (erst)mal nichts. ;)

    Welche gravierenden Probleme siehst du denn?

  • Ich glaube, ich muss das softwaremäßig lösen.

    ich bin Fan von Hardware, mit einer Stromschleife 20mA haben wir früher in der Telefontechnik Kilometer überbrückt

    Ich kann da nicht mehr zeichnen

    machs NEU auf Papier oder im Malprogramm und lade es hier als Foto hoch, niemand mag irgendwelchen Links ins Unbekannte folgen mit allen Folgen :lol:

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    • Offizieller Beitrag

    Der ist also nicht unten

    Nochmals Du verwendest einen Pulldown (den GPIO nach unten / gegen GND ziehenden) Widerstand.

    https://www.elektronik-kompendium.de/sites/raspberry-pi/2006051.htm

    Wenn ich mitbekommen will, ob sich der Status ändert, dann prüfe ich mit GPIO.RISING.

    https://sourceforge.net/p/raspberry-gpio-python/wiki/Inputs/

  • Nochmals Du verwendest einen Pulldown (den GPIO nach unten / gegen GND ziehenden) Widerstand.

    abgesehen denkbar ungünstig wenn ein GPIO auf Ausgang und low steht und ungebremste 3,3V durch den Chip rauschen was der meist mit dem Tod beantwortet!

    Zur Sicherheit wählt man also pullup und fragt auf low ab und nicht umgekehrt!

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    • Offizieller Beitrag

    Zur Sicherheit wählt man also pullup und fragt auf low ab und nicht umgekehrt!

    Davon abgesehen:

    damit der Status des GPIO weniger Störanfällig und klarer ist.

  • Netzteil, 1A, 2A wird ja schon erwähnt, dann bliebe noch die Spannung des PI.

    Denn ab den 3B Modellen wollen die PI´s dann 5,1V Spannung!

    Der PI 3B dürfte rund 1,6A ziehen.

    Wobei es mich beim 2A Netzteil wundert, das der PI nicht läuft, da dürften dann die 5,1V ins Spiel kommen.

    Das verwendete 2A Netzteil hat wahrscheinlich zu wenig Spannung gebracht, ich schätze da mal so um 4,8 bis 4,9 Volt.

    Die PI haben halt keine Spannungsregelung Onboard und sind deshalb von einer genauen DC Spannung abhängig.

    Ein Manko, wenn mich einer fragt.

  • Ich messe zwischen +5V und GND nur 4,7V. Liegt die Eingangsspannung direkt daran an? Verbraucht vielleicht der LAN-Anschluss relativ viel Leistung?

  • Liegt die Eingangsspannung direkt daran an?

    früher mal über eine Polyfuse und den zu dünnen Leiterbahnen und einem miesen Netzteilstecker.

    4,7V lassen manche PI schon abstürzen, deswegen musst das Netzteil auf 5,1V angehoben werden.

    Also ich weiss immer noch nicht woran es bei dir liegt, ich habe es ja nicht auf meinem Tisch.

    Folgendes habe ich bereits probiert:

    - 1 A-Netzteil durch 2 A-Netzteil ersetzt (Fehler seltener, aber noch vorhanden)

    sagt ja nicht ob es ein richtiges Netzteil ist oder nur ein Ladeadapter für Tabletts und Handys!

    Denen ist es egal ob 5V oder 4,7V ankommen, ein LiIo Akku mit 4,2V wird da immer noch geladen und der Akku puffert mehr Strom bei Bedarf, der PI hat keinen Akku und kann bei 4,7V schon verweigern, niemand der mehr Strom liefert oder puffert hilft dem PI.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hi Leute, danke nochmal für eure Antworten. Ich werde am Wochenende wenn ich Zeit habe einen oder mehrere Schaltpläne NEU zeichnen, dann ist es vielleicht etwas klarer. Ein passendes Netzteil ist bestellt, aber eben noch nicht da. Aktuell verwende ich ein 2A-Handy-Netzteil. Ihr habt natürlich Recht, dass das suboptimal ist, aber das ist eben das beste, was bisher da war.

    jar: Ja, ich bin in dem Fall definitiv auch Fan von Hardware und hoffe mal, das noch irgendwie hinzukriegen.

    Nur weil ich den Eindruck hatte, dass das der ein oder andere überlesen hat: Ich möchte einen normally closed - Schalter abfragen. Meine Anwendung erfordert das einfach.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!