我尝试使用以下代码在Raspberry Pi 2上使用RPi.GPIO创建一个简单的按钮脚本。
import RPi.GPIO as GPIO
import time
import os
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.IN, pull_up_down = GPIO.PUD_UP)
while True:
input_state=GPIO.input(25)
if input_state==False:
print("Open")
time.sleep(0.1)
GPIO.cleanup()
但是,上述代码似乎不起作用。我做错了什么?
答案 0 :(得分:2)
你的问题来自while循环中的GPIO.cleanup()
。
你必须把它移到循环之外。
否则,如果您在每次迭代时执行它,它将删除引脚配置,您的脚本将无法正常工作。
此外,您可能对仅在检测到边缘(下降或上升)时触发的GPIO.wait_for_edge
感兴趣。
示例代码:
while True:
GPIO.wait_for_edge(25, GPIO.RISING)
print('Button 1 Pressed')
GPIO.wait_for_edge(25, GPIO.FALLING)
print('Button 1 Released')
GPIO.cleanup()