为了账号安全,请及时绑定邮箱和手机立即绑定

每次按钮打开时,Raspberry Pi 都会闪烁 LED

每次按钮打开时,Raspberry Pi 都会闪烁 LED

红糖糍粑 2022-06-07 19:41:18
我有一个连接到拨动开关和 LED 的树莓派。每个开关打开一个 LED,第三个开关激活它对应的 LED,并再次闪烁 20 秒。目前,python 脚本将允许您根据需要关闭和打开按钮,但最后一个 while 参数仅在第一次运行。每次打开 GPIO 25 时,如何更改它以使第三个 LED 闪烁?t_end = time.time() + 20while(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) 
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

您在外部 while 循环之前设置t_end为等于time.time() + 20,并且在此之后不再更新它,因此一旦 20 秒过去并time.time()变为等于然后大于t_end,您的内部while time.time() < t_endwhile 循环中的代码将永远不会再次执行。


因为sleep(.5)这段代码中的两条语句


while time.time() < t_end:

    GPIO.output(6, GPIO.HIGH) 

    sleep(.5)

    GPIO.output(6, GPIO.LOW) 

    sleep(.5)  

意味着每个闪烁周期需要一秒钟,因为 LED 亮半秒然后熄灭半秒,为什么不替换while time.time() < t_end:为for i in range(20):然后你得到 20 秒的闪烁而无需处理任何额外的时间变量。


查看完整回答
反对 回复 2022-06-07
  • 1 回答
  • 0 关注
  • 92 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号