使用PUD_UP在Python中实现按键状态检测
发布时间:2023-12-26 00:31:19
在Python中,可以使用 GPIO 库来实现按键状态检测。以下是一个使用 RPi.GPIO 库的示例代码,该库是用于树莓派的 GPIO 控制的专用库。
import RPi.GPIO as GPIO
import time
# 设置 GPIO 模式为 BCM
GPIO.setmode(GPIO.BCM)
# 定义按键引脚号
button_pin = 17
# 设置按键引脚为输入,使用内部上拉电阻
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
try:
while True:
# 检测按键状态
button_state = GPIO.input(button_pin)
if button_state == GPIO.LOW:
print("按键按下")
else:
print("按键释放")
# 等待一段时间
time.sleep(0.1)
except KeyboardInterrupt:
pass
finally:
# 清理 GPIO 引脚设置
GPIO.cleanup()
在此示例中,我们使用 GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) 将按键引脚配置为输入模式,并使用内部上拉电阻。这样,当按键未按下时,引脚将保持高电平状态。当我们按下按键时,引脚将被拉低。
在 while 循环中,我们使用 GPIO.input(button_pin) 检测按键引脚的状态。如果引脚状态为低电平(按下),则打印 "按键按下",否则打印 "按键释放"。然后,我们使用 time.sleep(0.1) 在每次循环迭代之间添加一个短暂的延迟,以避免检测到按键的过程中反复触发。
当程序被中断(如按下 Ctrl+C)时,我们使用 GPIO.cleanup() 清除 GPIO 引脚的设置,以确保在脚本结束时不会留下任何活动引脚状态。
请注意,上述示例假定您已在树莓派上正确安装了 RPi.GPIO 库,您可以使用 sudo pip install RPi.GPIO 命令进行安装。
