diff options
Diffstat (limited to 'examples/switch.py')
-rw-r--r-- | examples/switch.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/examples/switch.py b/examples/switch.py new file mode 100644 index 0000000000..200caa4a4c --- /dev/null +++ b/examples/switch.py @@ -0,0 +1,46 @@ +__doc__ = """ +switch.py +========= + +Light up some leds when the USR switch on the pyboard is pressed. + +Example Usage:: + + Micro Python v1.0.1 on 2014-05-12; PYBv1.0 with STM32F405RG + Type "help()" for more information. + >>> import switch + >>> switch.run_loop([2, 3]) + Loop started. + Press Ctrl+C to break out of the loop. + +""" + +import pyb + +switch = pyb.Switch() +red_led = pyb.LED(1) +green_led = pyb.LED(2) +orange_led = pyb.LED(3) +blue_led = pyb.LED(4) +all_leds = [red_led, green_led, orange_led, blue_led] + +def run_loop(use_leds=[]): + """ + Start the loop. + + :param `use_leds`: Which leds to light up upon switch press. + :type `use_leds`: list of integers [1-4] + """ + print('Loop started.\nPress Ctrl+C to break out of the loop.') + leds = [all_leds[i - 1] for i in use_leds] + while 1: + try: + if switch(): + [led.on() for led in leds] + else: + [led.off() for led in leds] + except OSError: # VCPInterrupt # Ctrl+C in interpreter mode. + break + +if __name__ == '__main__': + run_loop() |