root/525.743/code/bfcslib/LED_cycle.py @ 317c2b10
| c5ac7e4c | dsorber | import itertools
|
|
import sys
|
|||
import RPIO
|
|||
from blinky_pattern import cylon, randomize, turn_on_top_down, turn_off_top_down,\
|
|||
turn_on_bottom_up, turn_off_bottom_up
|
|||
outputs = [23, 24, 25, 8, 7]
|
|||
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=150)
|
|||
print 'Okay, waiting for interrupts...'
|
|||
# Main (blocking) loop
|
|||
while True:
|
|||
RPIO.wait_for_interrupts()
|
|||
def switch_callback(gpio_id, val):
|
|||
global CURRENT
|
|||
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()
|
|||
print CURRENT
|
|||
RPIO.output(CURRENT, True)
|
|||
if __name__ == '__main__':
|
|||
sys.exit(main())
|