import machine
import utime
# Define LED pins
led1_pin = machine.Pin(28, machine.Pin.OUT)
led2_pin = machine.Pin(10, machine.Pin.OUT)
led3_pin = machine.Pin(15, machine.Pin.OUT)
# Define button pin with internal pull-up
button = machine.Pin(6, machine.Pin.IN, machine.Pin.PULL_UP)
# Blink function
def blink(led_pin, duration_ms):
led_pin.value(1) # Turn on LED
utime.sleep_ms(duration_ms) # Wait
led_pin.value(0) # Turn off LED
# Initial state
State = 0 # 0 means that the LEDs are currently off
if __name__ == '__main__':
while True:
print(button.value())
if button.value() == 0: # Button press
utime.sleep_ms(50) # Debounce delay
if button.value() == 0:
if State == 0:
while button.value() == 0:
utime.sleep_ms(50) # Wait for button release
State = 1
# Start blinking sequence
while State == 1:
if button.value() == 0:
utime.sleep_ms(50) # Debounce delay
if button.value() == 0:
while button.value() == 0:
utime.sleep_ms(50) # Wait for button release
State = 0
blink(led1_pin, 500) # Blink LED1 for 500ms
utime.sleep_ms(100) # Wait for 100ms
blink(led2_pin, 500) # Blink LED2 for 500ms
utime.sleep_ms(100) # Wait for 100ms
blink(led3_pin, 500) # Blink LED3 for 500ms
utime.sleep_ms(100) # Wait for 100ms
blink(led2_pin, 500) # Blink LED2 for 500ms
utime.sleep_ms(100) # Wait for 100ms
else:
# Turn off all LEDs
led1_pin.value(0)
led2_pin.value(0)
led3_pin.value(0)
State = 0
while button.value() == 0:
utime.sleep_ms(50) # Wait for button release
utime.sleep_ms(100) # Polling interval