from machine import Pin
import time
# 定義LED燈的GPIO引脚編號
LedPins = [23, 22, 21, 19, 18, 5, 17, 16, 4, 0]
# 初始化LED引脚,設置為輸出模式
leds = [Pin(pin, Pin.OUT) for pin in LedPins]
def control_leds(pattern):
"""
根據輸入的二進制字串來控制LED
:param pattern: 由 '0' 和 '1' 組成的字串,長度應與LED數量相等
"""
for i in range(len(pattern)):
if pattern[i] == '1':
leds[i].on() # 開啟LED
else:
leds[i].off() # 關閉LED
# 生成環形移動的二進制字串
patterns = []
num_leds = len(LedPins)
for i in range(num_leds): # 我們需要讓最後一個LED與第一個形成環形
pattern = ['0'] * num_leds # 初始化為全關
pattern[i] = '1' # 開啟第i顆LED
pattern[(i + 1) % num_leds] = '1' # 開啟第i+1顆LED,使用模運算形成環形
patterns.append(''.join(pattern))
# 不斷循環點亮兩顆LED,每次移動一顆
while True:
for pattern in patterns:
control_leds(pattern)
time.sleep(0.5)