问题描述
我目前正在使用覆盆子pi编写具有LED的一维乒乓游戏。我正在尝试使用gpiozero库完成此操作。我想要的是实现一种方法,一旦LED指示灯亮起,我就启动一个计时器,如果在所述计时器之前未按下按钮,它将中断循环。
我想按照以下方式做些事情:
while True:
led.on()
if button.value != 1 (in t seconds):
break
led.off()
但是我不知道如何实现(以t秒为单位)。我必须控制超时发生的事情,这一点很重要,因为我计划让它调用确定赢家的函数。
解决方案: 我认为有一种方法可以检测LED是否亮着,所以我就做到了
while led.value == 1:
if button.press == 1:
press = 1
if press ==1:
continue
else:
break
解决方法
您可以像这样使用time.time()
:
import time
start = time.time()
tseconds = 2
while True:
print("led.on")
now = time.time()
# if button.value != 1.. your conditions
if not now - start > tseconds:
print(now - start)
else:
break
print("lead.off")