Der Martin: Gaszähler auslesen - Interrupt

Beitrag lesen

Hallo,

es gibt mit Sicherheit auch einige, die sich mit Interrupt – Handling auskennen :-)

nein, aber vielleicht mit Interrupt-Handling. ;-)
Merke: Ein Bindestrich soll binden, nicht trennen. Deshalb hat er niemals Leerzeichen davor oder danach.

Nun – ich möchte meinen Gaszähler auslesen. Dazu hab ich einen Reedschalter angepappt und einen Banana Pi (Raspinachfolger) drangehängt. GPIO 17 – Reed - +3,3V.

Klingt gut.

Installiert ist Debian und das Prog läuft mit DaemonTools im Hintergrund.
Leider hab ich für PHP nix gefunden und verwende jetzt Python.

Nun habe ich von Python (noch) nicht viel Ahnung, aber ich vermute, dass es als typische Scriptsprache nicht wirklich Interrupts nutzt, sondern eher eine zyklische Abfrage (Polling).

Obwohl ich, wenn Gas strömt, mit dem Multimeter, ca 2 sec durchgeschalten und ca. 15 sec off messe, bekommt das Prog nur sporadisch Einige (20%) mit.

Das heißt, die Impulse sind eigentlich sehr langsam. Dauern gefühlte Ewigkeiten und noch mehr Ewigkeiten bis zum nächsten Impuls. Hast du schon mal versucht, in der Schleife einfach stur den aktuellen Eingangswert des GPIO-Pins zu lesen und mit dem Wert des vorherigen Schleifendurchlaufs zu vergleichen? Weil ... keine Ahnung, wie zuverlässig die Methode wait_for_edge() arbeitet.

Hab auch schon einen Kondensator 33n dazwischen geklemmt, sollte es prellen.

Wenn du Impulse verlierst, anstatt unverhofft mehr als erwartet zu registrieren, ist Prellen nicht dein Problem.

So long,
 Martin

--
Schildkröten können mehr über den Weg berichten als Hasen.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(