我有一个覆盆子pi连接到切换开关和LED。每个开关打开一个LED,第三个开关激活相应的LED,并再次闪烁20秒。目前,python脚本允许您根据需要关闭和打开按钮,但last-while参数只在第一次运行。如何更改此设置,使其在每次打开GPIO 25时闪烁第三个LED?你知道吗
t_end = time.time() + 20
while(1):
GPIO.wait_for_edge(23, GPIO.FALLING)
print ("Phase 1 Initiated")
sounda.play()
GPIO.wait_for_edge(24, GPIO.FALLING)
print ("Phase 2 Initiated")
soundb.play()
GPIO.wait_for_edge(25, GPIO.FALLING)
print ("Phase 3 Initiated")
soundc.play()
while time.time() < t_end:
GPIO.output(6, GPIO.HIGH)
sleep(.5)
GPIO.output(6, GPIO.LOW)
sleep(.5)
在外部while循环之前,您将
t_end
设置为等于time.time() + 20
,之后再也不更新它,这样一旦20秒过去,time.time()
变为等于然后大于t_end
,内部while time.time() < t_end
while循环中的代码就再也不会执行了。你知道吗因为这段代码中的两个
sleep(.5)
语句意思是说每个闪烁周期需要一秒钟,因为LED亮半秒钟,关半秒钟,为什么不直接用
for i in range(20):
替换while time.time() < t_end:
,然后你就可以得到20秒的闪烁时间,而不需要处理任何额外的时间变量。你知道吗相关问题 更多 >
编程相关推荐