summaryrefslogtreecommitdiffstatshomepage
path: root/examples/switch.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/switch.py')
-rw-r--r--examples/switch.py46
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()