Project

General

Profile

Download (974 Bytes) Statistics
| Branch: | Tag: | Revision:
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())