Hallo,
folgendes script habe ich gefunden und möchte es für die Flankenerkennung eines Reed-Kontaktes nutzen.
Leider wird bei einer Steigenen UND bei einer fallenden Flanke hochgezählt. Dafür sehr stabil, so dass ich eigentlich den Counter nur :2 teilen müsste ...
Das ist aber blöd ! Warum ist das so, ich würde es gerne richtig machen ...
(den PD-R des Pi habe ich ausgeklammert, da ich einen PD-R beschaltet habe)
Code
def count_edge():
try:
with open(GAS_METER_FILENAME, 'r') as counter_file:
counter = int(counter_file.read())
except IOError as error:
if error.errno != errno.ENOENT:
raise
counter = 0
counter += 1
with open(GAS_METER_FILENAME, 'w') as counter_file:
counter_file.write(str(counter))
def main():
try:
GPIO.setmode(GPIO.BCM)
GPIO.setup(GAS_METER_PIN, GPIO.IN) #, pull_up_down=GPIO.PUD_DOWN)
while True:
GPIO.wait_for_edge(GAS_METER_PIN, GPIO.RISING)
count_edge()
finally:
GPIO.cleanup()
Alles anzeigen