Python 忽略 time.sleep(1)

3 投票
2 回答
4099 浏览
提问于 2025-04-18 13:53

你好,我正在尝试运行一个小的Python程序,用来控制树莓派上的GPIO接口。我希望它在打开每个LED灯之前能等1秒钟,但它并不是在每个LED之间暂停,而是在最后一起暂停(它总共等了3秒钟,这个时间是所有等待时间加起来的)。这是我使用的代码:

import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(True)
GPIO.setup(18,GPIO.OUT)
GPIO.setup(23,GPIO.OUT)
GPIO.setup(24,GPIO.OUT)

print"Lights"
GPIO.output(18,GPIO.HIGH)
time.sleep(1)

GPIO.output(23,GPIO.HIGH)
time.sleep(1)

GPIO.output(24,GPIO.HIGH)
time.sleep(1)

GPIO.cleanup()

2 个回答

2

最开始的延迟可能只是设置的时间。

根据这个链接 http://sourceforge.net/p/raspberry-gpio-python/wiki/BasicUsage/,你可以尝试

GPIO.setup(channel, GPIO.OUT, initial=GPIO.LOW)

把它们一开始设置为关闭状态。

也就是说:

GPIO.setup(18, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(23, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(24, GPIO.OUT, initial=GPIO.LOW)
5

看起来

GPIO.setup(18,GPIO.OUT)
GPIO.setup(23,GPIO.OUT)
GPIO.setup(24,GPIO.OUT)

是在打开你的LED灯,而不是

GPIO.output(24,GPIO.HIGH)

确保你把打印语句放在 GPIO.OUT 语句之间,像这样:

GPIO.setup(18,GPIO.OUT)
time.sleep(1)
GPIO.setup(23,GPIO.OUT)
time.sleep(1)
GPIO.setup(24,GPIO.OUT)

撰写回答