From 0ac94b5b31addad628c8e4e1f9a7b62c22634ce3 Mon Sep 17 00:00:00 2001 From: John Shaver Date: Wed, 4 Apr 2018 14:40:10 -0700 Subject: [PATCH] Switched from poling to interrupts --- main.py | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/main.py b/main.py index d81db8d..9bbf806 100644 --- a/main.py +++ b/main.py @@ -3,19 +3,32 @@ import RPi.GPIO as GPIO import time -GPIO.setmode(GPIO.BCM) -GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP) -GPIO.setup(24, GPIO.OUT) +def buttonEventHandler(value): + print "buton event!" + if value is 0: + GPIO.output(24, True) + print('Button Pressed...') + else: + GPIO.output(24, False) + print('Button Released...') -try: - while True: - button_state = GPIO.input(23) - if button_state == False: - GPIO.output(24, True) - print('Button Pressed...') - time.sleep(0.2) - else: - GPIO.output(24, False) -except: - GPIO.cleanup() +def main(): + print "Let's do this!" + + GPIO.setmode(GPIO.BCM) + + GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP) + GPIO.setup(24, GPIO.OUT) + #GPIO.add_event_detect(23, GPIO.FALLING) + #GPIO.add_event_callback(23, buttonEventHandler) + try: + while True: + GPIO.wait_for_edge(23, GPIO.BOTH) + buttonEventHandler(GPIO.input(23)) + except KeyboardInterrupt as e: + GPIO.cleanup() + raise + +if __name__== "__main__": + main()