我试图让我的树莓派使用红外传感器检测动作,然后打开LED 5秒钟,同时每隔0.5秒轮询IR传感器。这是到目前为止我的代码,但它等待LED再次检查红外传感器之前关闭...Python:每秒运行一次循环并触发5秒钟功能
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
PIR_PIN = 18
GPIO.setup(PIR_PIN, GPIO.IN)
LED_PIN = 17
GPIO.setup(LED_PIN, GPIO.OUT)
def light():
GPIO.output(LED_PIN, GPIO.input(PIR_PIN))
time.sleep(5)
GPIO.output(LED_PIN, False)
try:
while True:
if GPIO.input(PIR_PIN):
print("Motion Detected!")
light()
time.sleep(0.5)
except KeyboardInterrupt:
GPIO.cleanup()
使用多线程 – Benjamin