import time
import board
import digitalio
import pwmio
LED_PINS = (board.GP10, board.GP11, board.GP12, board.GP13)
BUTTON_PINS = (board.GP16, board.GP17)
BUZZER_PIN = board.GP14
leds = []
for pin in LED_PINS:
led = digitalio.DigitalInOut(pin)
led.direction = digitalio.Direction.OUTPUT
leds.append(led)
buttons = []
for pin in BUTTON_PINS:
btn = digitalio.DigitalInOut(pin)
btn.direction = digitalio.Direction.INPUT
btn.pull = digitalio.Pull.DOWN
buttons.append(btn)
buzzer = pwmio.PWMOut(BUZZER_PIN, duty_cycle=0, frequency=440, variable_frequency=True)
def turn_off_all():
for led in leds:
led.value = False
buzzer.duty_cycle = 0
def wait_for_release(button):
while button.value:
time.sleep(0.01)
def execute_blink_sequence():
print("Task 1.1")
for _ in range(5):
for led in leds:
led.value = True
time.sleep(0.5)
for led in leds:
led.value = False
time.sleep(0.5)
buzzer.duty_cycle = 32768
time.sleep(1)
buzzer.duty_cycle = 0
def execute_running_lights():
print("Task 1.2")
for _ in range(5):
for led in leds:
led.value = True
time.sleep(0.1)
led.value = False
for led in leds[-2:0:-1]:
led.value = True
time.sleep(0.1)
led.value = False
while True:
button_1_pressed = buttons[0].value
button_2_pressed = buttons[1].value
if button_1_pressed:
time.sleep(0.05)
if buttons[0].value:
execute_blink_sequence()
turn_off_all()
wait_for_release(buttons[0])
time.sleep(0.05)
elif button_2_pressed:
time.sleep(0.05)
if buttons[1].value:
execute_running_lights()
turn_off_all()
wait_for_release(buttons[1])
time.sleep(0.05)
else:
turn_off_all()
time.sleep(0.01)