gpio_inputs_-_button_led_control_using_an_interrupt
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
gpio_inputs_-_button_led_control_using_an_interrupt [2016/08/09 23:00] – walkeradmin | gpio_inputs_-_button_led_control_using_an_interrupt [2016/12/13 21:28] – external edit 127.0.0.1 | ||
---|---|---|---|
Line 2: | Line 2: | ||
\\ | \\ | ||
\\ | \\ | ||
- | blah blah | + | The previous example of using a button to light an LED, everything worked fine, but our processor was at 100%, this needs fixing, so in this example instead of constantly polling and setting GPIO pins, we are using a interrupt where by we do nothing until a button is actually pressed. |
\\ | \\ | ||
\\ | \\ | ||
+ | Create a new file in the normal way ( you can download the python file {{ : | ||
+ | \\ | ||
+ | sudo nano LED-Button-i.py | ||
+ | |||
#import modules | #import modules | ||
- | import RPi.GPIO as GPIO # This imports the GPIO libarary | + | import RPi.GPIO as GPIO # This imports the GPIO library |
- | import time # This imports the time libarary | + | import time # This imports the time library |
# These libraries are built in to Raspbian. | # These libraries are built in to Raspbian. | ||
| | ||
Line 25: | Line 29: | ||
print " | print " | ||
GPIO.output(12, | GPIO.output(12, | ||
+ | | ||
# this is where we setup the GPIO input to use the event buttonPressed that was | # this is where we setup the GPIO input to use the event buttonPressed that was | ||
# defined previously. bouncetime is a simple switch debouncer in mS. | # defined previously. bouncetime is a simple switch debouncer in mS. | ||
Line 43: | Line 47: | ||
| | ||
#End | #End | ||
+ | \\ | ||
+ | Once you have your file saved, you can run it by using: | ||
+ | \\ | ||
+ | sudo python LED-Button-i.py | ||
+ | \\ | ||
+ | ===== Example Output ===== | ||
+ | \\ | ||
+ | Here you can see the code running {{ : | ||
+ | \\ | ||
+ | The main advantage using the **interrupt** is that my processor occupancy on the Pi Zero is now around 10% normal, and 14% when I press the button. That's much better than the previous constant 100%. | ||
+ | \\ | ||
+ | \\ | ||
+ |