root/525.743/code/test scripts/button_LED.py @ e45aa19e
| 22b6f476 | dsorber | import itertools
|
||
import sys
|
||||
import RPIO
|
||||
outputs = [23, 24, 25, 8, 7]
|
||||
out_iterator = itertools.cycle(outputs)
|
||||
| c5ac7e4c | dsorber | CURRENT = outputs[0]
|
||
| 22b6f476 | dsorber | |||
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,
|
||||
| c5ac7e4c | dsorber | debounce_timeout_ms=150)
|
||
| 22b6f476 | dsorber | |||
| c5ac7e4c | dsorber | print 'Okay, waiting for interrupts...'
|
||
| 22b6f476 | dsorber | |||
# Main (blocking) loop
|
||||
while True:
|
||||
RPIO.wait_for_interrupts()
|
||||
def switch_callback(gpio_id, val):
|
||||
| c5ac7e4c | dsorber | global CURRENT
|
||
| 22b6f476 | dsorber | print 'Switch activated! %s --- %s' % (gpio_id, val)
|
||
# Turn off current LED
|
||||
RPIO.output(CURRENT, False)
|
||||
# Get next output and turn it on
|
||||
CURRENT = out_iterator.next()
|
||||
| c5ac7e4c | dsorber | print CURRENT
|
||
| 22b6f476 | dsorber | RPIO.output(CURRENT, True)
|
||
if __name__ == '__main__':
|
||||
sys.exit(main())
|