1. 消除引脚输入的抖动¶
用作开关或其他机械设备输入的引脚上可能会产生大量噪声,当第一次按下或释放开关时,会从低电平快速变为高电平。可以使用电容器(去抖动电路)消除这种噪声。也可以使用一个简单的函数来消除它,以确保引脚上的值稳定。
下面的函数就是这样做的。它获取给定引脚的当前值,然后等待值更改。新的引脚值必须连续 20 毫秒稳定才能记录变化。如果您仍然有噪音,您可以调整这个时间(比如 50 毫秒)。
import pyb
def wait_pin_change(pin):
# wait for pin to change value
# it needs to be stable for a continuous 20ms
cur_value = pin.value()
active = 0
while active < 20:
if pin.value() != cur_value:
active += 1
else:
active = 0
pyb.delay(1)
像这样使用它:
import pyb
pin_x1 = pyb.Pin('X1', pyb.Pin.IN, pyb.Pin.PULL_DOWN)
while True:
wait_pin_change(pin_x1)
pyb.LED(4).toggle()