from machine import Pin
import time
pins = [23, 22, 21, 19, 18, 5, 17, 16, 4, 0]
leds = [Pin(pin, Pin.OUT) for pin in pins]
patterns = [
"1111100000",
"0000011111",
]
button_pin = 13
count = 0
# 設置按鈕引腳為輸入,並啟用內建的上拉電阻
button = Pin(button_pin, Pin.IN, Pin.PULL_UP)
def button_handler(pin):
global count
# 檢查按鈕是否被按下(低電平)
if not pin.value():
# 每次按下按鈕,輸出當前計數
print(count)
# 更新計數,並在3次後重置為0
count = (count + 1) % 3
# 設置中斷處理程序,在按鈕狀態改變時觸發
button.irq(trigger=Pin.IRQ_FALLING, handler=button_handler)
def ctrl_leds(pattern):
if len(pattern) != len(leds):
raise ValueError("模式字符串的長度必須與 LED 的數量相符")
for i in range(len(pattern)):
if pattern[i] == '1':
leds[i].on()
else:
leds[i].off()
current_pattern_index = 0
while True:
current_pattern = patterns[current_pattern_index]
ctrl_leds(current_pattern)
time.sleep(0.5)
current_pattern_index = (current_pattern_index + 1) % len(patterns)