import time
import board
import digitalio
# Setup LEDs
led_pins = [board.GP0, board.GP10, board.GP15]
leds = []
for pin in led_pins:
led = digitalio.DigitalInOut(pin)
led.direction = digitalio.Direction.OUTPUT
leds.append(led)
# Setup Switches (pull-down)
def setup_button(pin):
btn = digitalio.DigitalInOut(pin)
btn.direction = digitalio.Direction.INPUT
btn.pull = digitalio.Pull.DOWN
return btn
sw1 = setup_button(board.GP20)
sw2 = setup_button(board.GP21)
sw3 = setup_button(board.GP18)
# Parameters
n = 5 # number of blinks
x = 0.2 # period for SW1
y = 1.0 # period for SW2
z = 0.5 # period for SW3
debounce_delay = 0.05
# Helper functions
def all_off():
for led in leds:
led.value = False
def blink_single(led, times, period):
for _ in range(times):
led.value = True
time.sleep(period / 2)
led.value = False
time.sleep(period / 2)
def blink_all(times, period):
for _ in range(times):
for led in leds:
led.value = True
time.sleep(period / 2)
for led in leds:
led.value = False
time.sleep(period / 2)
def running_light(times, period):
for _ in range(times):
for led in leds:
all_off()
led.value = True
time.sleep(period / 2)
led.value = False
time.sleep(period / 2)
# Debounce function
def is_pressed(button):
if button.value:
time.sleep(debounce_delay)
return button.value
return False
# Main Loop
while True:
if is_pressed(sw1):
print("SW1 pressed")
blink_single(leds[0], n, x)
elif is_pressed(sw2):
print("SW2 pressed")
blink_all(n, y)
elif is_pressed(sw3):
print("SW3 pressed")
running_light(n, z)
else:
all_off()