from machine import Pin
from time import sleep
led_r = Pin(1, Pin.OUT) # 红色LED
led_g = Pin(0, Pin.OUT) # 绿色LED
button_r = Pin(2, Pin.IN, Pin.PULL_UP) # 红色按钮,内部上拉电阻,按下为0
button_g = Pin(3, Pin.IN, Pin.PULL_DOWN) # 绿色按钮,内部下拉电阻,按下为1
r_pressed = False
g_pressed = False
def toggle_led(led):
led.value(not led.value())
def debounced_button_state(button):
state = button.value()
for _ in range(3): # 增加3次检测以进行防抖
if button.value() != state:
return None
sleep(0.01) # 等待10ms
return state
while True:
r_state = debounced_button_state(button_r)
if r_state == 0 and not r_pressed: # 红色按钮按下且之前未按下
r_pressed = True
toggle_led(led_r)
sleep(1) # 间隔一秒
elif r_state == 1 and r_pressed: # 红色按钮释放且之前已按下
r_pressed = False
g_state = debounced_button_state(button_g)
if g_state == 1 and not g_pressed: # 绿色按钮按下且之前未按下
g_pressed = True
toggle_led(led_g)
sleep(1) # 间隔一秒
elif g_state == 0 and g_pressed: # 绿色按钮释放且之前已按下
g_pressed = False
sleep(1) # 间隔一秒,让两种颜色的小灯的显示方式为间隔