ich möchte für mein Projekt ein Taster interrupt gesteuert abfragen. Nun hat dieser Taster die unangenehme Eigenschaft zu Prellen.
In meinem Programm habe ich in der Funktioen GPIO.add_event die Möglichkeit dieses mittels bouncetime zu unterdrücken.... theoretisch.
Leider wird diese Funktion mindstens zwei mal ausgeführt. Wenn ich mit extremen Werten für bouncetime heran gehe (z.b. 5000) kommt der zweite event eben später, aber er kommt.
Code: Alles auswählen
#!/usr/bin/python
import RPi.GPIO as GPIO
import time, sys
import urllib2
import datetime
# Variabelen deklarieren
Schalter_PIN = 12 # Eingang GPIO1
EVENT = 'person_enter_leave'
BASE_URL = 'https://maker.ifttt.com/trigger/'
KEY = 'hier ist der key'
# Pin-Nummern verwenden (nicht GPIO-Nummern!)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(Schalter_PIN, GPIO.IN)
#Funktion definieren, um beim Schalterwechsel den IFTTT trigger zu setzen
def send_event(pin):
response = urllib2.urlopen(BASE_URL + EVENT + '/with/key/' + KEY)
print(response.read())
# switch_on-Funktion aufrufen, wenn das Signal wechselt
GPIO.add_event_detect(12, GPIO.BOTH, bouncetime=200)
GPIO.add_event_callback(12, send_event)
# mit minimaler CPU-Belastung auf das Programmende durch Strg+C warten
try:
while True:
time.sleep(5)
except KeyboardInterrupt:
GPIO.cleanup()
print("\nBye!")
sys.exit()
Es würde mich freuen, wenn hier jemand eine Lösung finden könnte.
LG
Patrick