from machine import Pin
import time
print("Hello, ESP32!")
# 定义 LED 的引脚,设置为 OUT
led = Pin(15, Pin.OUT, value=0)
# 当按钮接地,内部使用上拉电阻,
button = Pin(12, Pin.IN, Pin.PULL_UP)
# 初始化 LED 状态
led_state = False
# 中断处理函数
def button_pressed(pin):
global led_state
# 消抖
time.sleep_ms(10)
if not pin.value(): # 确保按钮仍然按下
led_state = not led_state
led.value(led_state)
# 设置中断
button.irq(trigger=Pin.IRQ_FALLING, handler=button_pressed)
# 主循环
while True:
# 主循环可以为空,或者执行其他任务
pass
'''
在 MicroPython 中,为按键设置上拉电阻通常是为了确保在没有按下按钮时,
引脚能够保持在高电平状态。这有助于防止在按钮未按下时由于浮空而导致的不确定状态。
在你的代码中,你可以通过以下方式设置引脚为上拉模式:
btn = Pin(32, Pin.IN, Pin.PULL_UP)
这里 Pin.PULL_UP 参数表示启用内部上拉电阻。
当按钮未按下时,由于上拉电阻的作用,btn.value() 将读取到高电平(即 1)。
当按钮按下时,它会连接到地(GND),btn.value() 将读取到低电平(即 0)。
如果你的按钮在按下时连接到地(GND),那么使用上拉电阻是合适的。
如果你的按钮在按下时连接到正电压(例如 3.3V 或 5V),那么你应该使用下拉电阻,
设置方式如下:
btn = Pin(32, Pin.IN, Pin.PULL_DOWN)
在这种情况下,未按下按钮时,btn.value() 将读取到低电平(即 0),
按下按钮时将读取到高电平(即 1)。
确保你的硬件电路与代码设置相匹配,这样程序才能正确地读取按钮状态。
'''