Endlagentaster GPIO komisches Verhalten

  • Hey Leute,

    habe da ein kleines Problem. Und zwar habe ich 12 Endlagentaster, jeweils 2 in Reihe. Also ich benutze 6 GPIO-EINGANG. Nun entsteht folgendes Mysterium, öfter wenn ich einen von den 2 in Reihe drücke und dann nach einer kurzen Zeit den anderen. Erkennt er das als ein Eingangssignal. Die Kabel waren vom Kollegen gelegt und haben schon eine Strecke von knapp 20m insgesamt.

    Die Mqtt Sachen könnt ihr ruhig außen vor lassen.

    Ich habe momentan 10kO Pull Up Widerstände für jeden Eingang. An der Verkabelung gibt es sonst nichts zu meckern. Wie gesagt manchmal geht es das man beide drücken muss und manchmal reicht einfach ein nacheinander. Die Stellung der Taster sind auch alle korrekt.

    Falls ihr noch eine Idee habt. Lasst es mich wissen.

  • Ich finde deine Beschreibung nicht hinreichend. Wenn du sagst

    Zitat


    wenn ich einen von den 2 in Reihe drücke und dann nach einer kurzen Zeit den anderen. Erkennt er das als ein Eingangssignal.

    klingt das genau so, wie es sein soll. Beide muessen geschlossen sein, damit etwas passiert, aufgrund der Reihenschaltung.

    Du musst also etwas anders machen, wenn dich das verwundert. Was ist das anders?

    Der Code ist ansonsten wirklich schlimm, und wuerde deutlich von dem Gebrauch von Funktionen und statt polling auch Ereignisbehandlung profitieren. So, wie er da steht, werden im uebrigen auch Signale, die waehren der 0.5s Wartezeit auflaufen, aber dann wieder wegfallen, ignoriert. Keine Ahnung ob das passieren kann, aber es ist eine unnoetige Einschraenkung dessen, was das Programm kann.

  • Das Programm ist auch... sag ich mal aus einem alten entstanden und könnte von einigen noch profitieren. Ich habe mich falsch ausgedrückt. Alles sind Taster, das heißt einer wird gedrückt und wieder los gelassen. Dann drücke ich den 2ten in der Reihe und der Pi kriegt ein Signal.

  • Bei den langen Kabeln könnte das von den Kapazitäten der Leitungen kommen. Vielleicht sammeln sich da genügend Ladungen an, um bei einem Betätigen der Schalter nacheinander sozusagen durchgereicht zu werden. Ein RC-Glied am GPIO oder ein 10 K Widerstand nach GND zwischen den beiden Schaltern würde da vielleicht Abhilfe schaffen.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Ich wuerde mal zur Diagnosezwecken das Programm wegwerfen (ok, zu Diagnosezwecken muss es nur beseite gelegt werden. Aber wirklich, es muss eigentlich weggeworfen werden). Und ein Programm schreiben, das mit add_event_detect arbeitet, und ohne anderen Firlefanz ganz klar rueckmeldet, das ein Ereignis stattgefunden hat. Denn durch dieses Zustandswust kann und will keiner durchschauen.

  • Was daran Sinn macht oder nicht, steht auf einem anderen Blatt :D Aber ich denke nicht, nein. Aber das das alles fort muss, hatten wir ja schon :)

Jetzt mitmachen!

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