root/525.743/code/test scripts/button_LED.py @ 22b6f476
| 22b6f476 | dsorber | import itertools
|
|
import sys
|
|||
import RPIO
|
|||
CURRENT = 23
|
|||
outputs = [23, 24, 25, 8, 7]
|
|||
out_iterator = itertools.cycle(outputs)
|
|||
def main():
|
|||
# Use the BCM addressing scheme
|
|||
RPIO.setmode(RPIO.BCM)
|
|||
# Setup input
|
|||
RPIO.setup(22, RPIO.IN)
|
|||
# Setup all five outputs
|
|||
for gpio in outputs:
|
|||
RPIO.setup(gpio, RPIO.OUT)
|
|||
RPIO.output(gpio, False)
|
|||
# Setup switch interrupt with debounce
|
|||
RPIO.add_interrupt_callback(22, switch_callback, edge='rising',
|
|||
pull_up_down=RPIO.PUD_DOWN, threaded_callback=True,
|
|||
debounce_timeout_ms=100)
|
|||
print 'Okay, waiting for interrupts... %d' % CURRENT
|
|||
# Main (blocking) loop
|
|||
while True:
|
|||
RPIO.wait_for_interrupts()
|
|||
def switch_callback(gpio_id, val):
|
|||
print 'Switch activated! %s --- %s' % (gpio_id, val)
|
|||
print outputs
|
|||
# Turn off current LED
|
|||
RPIO.output(CURRENT, False)
|
|||
# Get next output and turn it on
|
|||
CURRENT = out_iterator.next()
|
|||
RPIO.output(CURRENT, True)
|
|||
if __name__ == '__main__':
|
|||
sys.exit(main())
|