Anfängerprobleme, Taster und LED direkt am Pi3

  • Hallo liebe Community,


    ich versuche nun seit mehreren Wochen und vielen Stunden mithilfe der GPIOs einen Taster auszulesen und damit eine LED ans leuchten zu bekommen. Nun ist mein Problem zweierlei: meist erhalte ich keine Reaktion vom Doorpi System, sprich der Tastendruck wird nach ca. 10-30s im Webinterface registriert, aber es passiert nichts. Manchmal wird der Tastendruck gar nicht angezeigt. Selten (v.a. nach reboot) funktioniert die LED wie gewünscht. Sowohl Taster als auch LED sind direkt angeschlossen und funktionieren technisch.
    Ich habe auch schon mehrfach einen Call intern abgesetzt bekommen, jedoch immer um 30-60s verzögert. Alles läuft (noch) über eine FritzBox als SIP Server, mit anderen SIP Geräten habe ich keine Verzögerungen dieser Art feststellen können.


    Mein Anliegen wäre zunächst ein troubleshooting der LED Geschichte, ich befürchte fast, dass der PI oder die SD hinüber ist.


    Für Antworten und Hilfestellungen bin ich sehr dankbar!


    Gruß,
    Nils


    edit: doorpi.ini als Spoiler


  • Hi Marcus,
    danke für die schnelle Antwort, der Taster ist aktuell mit einem 10k Widerstand gegen Masse angeschlossen (funktioniert auch ohne), die LED ist in einem Schalter drin und hat einen eingebauten Vorwiderstand (unbek. Größe).


    Mein Hauptproblem ist, dass zwar der Tasterinput erkannt wird, jedoch (scheinbar) kein Event ausgelöst wird, selten halt eben dann doch aber um ~30sek verzögert.


    Die Spannung am Taster ist immer gegeben, (GPIO40) mit 3,3V, jedoch wird im Fehlerfall keine Spannung für die LED ausgegeben (getestet mit GPIO38 und GPIO36).


    Ich befürchte halt, dass der Pi durch vorherige Basteleien einen mitbekommen haben könnte

  • Ok, das würde bedeuten, dass die Spannung am GPIO für den Taster 3,3V betragen soll, und durch den Taster gebrückt wird, sodass der GPIO auf quasi 0V gegen GND sein soll.
    Tut mir leid wenn das hier totale Anfängerfragen sind, aber ich habe leider keine wirklich für mich verständlichen Erklärungen gefunden.


    Wenn das der Fall sein sollte müsste ich das ja alles mit Transistorlogik schalten können, oder vertue ich mich da?
    Den eigentlichen Anschluss der Geräte regel ich wahrscheinlich eh separat vom Pi, mir geht es nur darum, die Signalverarbeitung zu verstehen.


    Danke für die Antworten auf jeden Fall!


    edit: Habe gerade alles nochmal durchgemessen, ich habe saubere 3,3V am Taster anliegen, diese gehen auf 0,01V beim schalten. Der Taster wird auch im System verarbeitet, allerdings bekomme ich keine saubere Spannung aus den Pins 36 und 38, dafür aber aus diversen anderen Pins. Ich denke daher, dass die betreffenden Pins einen weg haben.


    Danke wie gesagt an euch!

  • Ich glaube Du hast das gleiche Problem wie ich am Anfang:
    Du musst als Nummer nicht die GPiO Nummer benutzen, sondern den Pin der Anschlussleiste.


    Ich kopieren Dir mal meine relevanten doorpi.ini Einträge:


    Das Keyboard:

    Code
    [keyboards]
    onboardpins = gpio


    Die Keyboard Propertys: (Bei mir mit bounctime = 2000, aber das ist Geschmackssache)

    Code
    [onboardpins_keyboard]
    bouncetime = 2000
    mode = BOARD
    polarity = 0
    pressed_on_keydown = True
    pull_up_down = PUD_UP


    Die Pins der Eingänge habe ich nur mit den Nummern angelegt

    Code
    [onboardpins_InputPins]
    23 = 23

    Die Pins der Ausgänge zusätzlich mit Namen

    Code
    [onboardpins_OutputPins]
    18 = Tueroeffner

    Den Taster an Pin 23 (GPiO11)

    Code
    [EVENT_OnKeyUp_onboardpins.23]
    10 = call:110

    Türöffner an Pin 18 (GPiO 24)

    Code
    [DTMF]
    "1" = out:Tueroeffner,1,0,3
  • Dann würden ja überhaupt gar keine Eingaben erkannt. In dem beschriebenen Fall werden die Eingaben nur sporadisch oder sehr zeitverzögert erkannt. Das kann es also nicht sein, so wie das Phänomen beschrieben wird. Wenn die Eingaben nur sporadisch erkannt werden oder nach Zufall auslösen, dann hat es in den allermeisten fällen was mit einem unklaren Spannungspotenzial zu tun. D.h. der Status hi/Lo ist nicht eindeutig definiert. Das kommt zum Beispiel zustande, indem man den falschen oder gar keinen Vorwiderstand verwendet. Das wurde aber auch schon ausgeschlossen. Einfach mal andere PINs benutzen, oder (das ist das was ich immer mehr empfehle), ein PiFace drauf stecken. Das erspart jede Menge Ärger und Bastelei

  • ...dann hat es in den allermeisten fällen was mit einem unklaren Spannungspotenzial zu tun.

    na klar hat es das!
    er hat durch die Konfig die IOs mit PullUp auf Hi gezogen und mit einen extern auf PullDown. Wie soll das vernünftig funktionieren?


    ...ein PiFace drauf stecken.

    darf man machen, muss man aber nicht wenn die Beschaltung richtig gemacht wird.

  • ich versuche nun seit mehreren Wochen und vielen Stunden mithilfe der GPIOs einen Taster auszulesen

    die Variante mit dem PiFace bietet sich hier stark an. Man muss halt für sich entscheiden wie viel Lebenszeit man gegenüber einer alternativen 40,- Euro Investition einsetzen möchte. Ich kann es nur jedem empfehlen, der nicht 100% sicher auf dem Terrain ist (my 2 cents)


    er hat durch die Konfig die IOs mit PullUp auf Hi gezogen und mit einen extern auf PullDown. Wie soll das vernünftig funktionieren

    Dewegen meine Frage nach der Beschaltung (s. O.)

  • ok, Problem ist vorerst gelöst, mit nem neuen Pi habe ich nur noch die Probleme durch unsaubere Signale, die Pins scheint es irgendwann mal gegrillt zu haben. Tatsächlich werde ich wohl die meiste Beschaltung über Relais machen und nur das nötigste am Pi direkt. Hauptgrund hierfür ist, dass ich keine direkte Verbindung vom Türöffner an einer von außen zugänglichen Stelle haben möchte, und die Leitungen eh schon im Mauerwerk liegen.


    Danke nochmal für die Tipps und Hilfe!

  • Nur mal so...
    Hatte mit dem Pi auch das Problem von ungewolltem Auslösen (Bouncing).
    Hab das dann gelöst, indem ich die Taster an einem Arduino softwareseitig entprellt habe und den Arduino dann per I2C-Keyboard an doorpi angehängt habe. Seitdem ist Ruhe und es läutet nur, wenn tatsächlich jemand einen Taster drückt...


    Cheers,


    Pula