如何修改树莓派GPIO监控脚本以同时监测引脚16和33
修改树莓派GPIO脚本以同时监测多个引脚
没问题,我来帮你调整这个脚本,让它能同时监测GPIO引脚16和33。下面是具体的修改方案和完整代码:
修改思路
主要做这几个关键调整,还能兼顾后续扩展更多引脚的需求:
- 把需要监测的引脚放到一个列表里,方便统一管理
- 循环遍历列表初始化每个引脚的输入模式
- 在主循环里逐个读取每个引脚的状态并输出
完整修改后的代码
# 导入GPIO库 import RPi.GPIO as GPIO # 可选:如果要加延迟避免刷屏,需要导入time库 # import time # 定义需要监测的GPIO引脚列表(BOARD编号模式) MONITOR_PINS = [16, 33] # 设置GPIO编号模式为BOARD GPIO.setmode(GPIO.BOARD) # 循环初始化每个监测引脚为输入模式 for pin in MONITOR_PINS: GPIO.setup(pin, GPIO.IN) try: while True: # 逐个读取每个引脚的状态并打印 for pin in MONITOR_PINS: if GPIO.input(pin) == 0: print(f"Pin_{pin}: Open") else: print(f"Pin_{pin}: Closed") # 可选:添加0.5秒延迟,防止输出刷屏 # time.sleep(0.5) finally: # 程序结束前清理GPIO资源,避免引脚状态异常 GPIO.cleanup()
额外说明
- 我用了f-string格式化输出,能清晰对应每个引脚的状态;如果你的Python版本低于3.6,把print语句改成
print("Pin_{}: Open".format(pin))即可 - 如果觉得输出太频繁,可以取消注释代码里的
time.sleep(0.5),记得在开头加上import time - 确认你的硬件接线对应BOARD编号的引脚,别和BCM模式搞混了哦
内容的提问来源于stack exchange,提问作者vigilance wx
相关产品推荐
相关产品推荐

