在设定的时间后,使可寻址的 LED 灯条从一种模式转移到下一种模式
Posted
技术标签:
【中文标题】在设定的时间后,使可寻址的 LED 灯条从一种模式转移到下一种模式【英文标题】:make an addressable led strip shift from one pattern to the next after a set amount of time 【发布时间】:2019-08-03 06:33:21 【问题描述】:我有一个树莓派和一个连接到它的可寻址 LED 灯带,我还有一堆图案。我想做的基本上是展示我拥有的图案和颜色,而不必单独发送命令。我对所有这一切都是一个认真的新手,我不知道如何告诉它在 X 时间内运行一个模式,然后继续下一个。我把其中两种模式的代码放在下面。非常感谢任何帮助,我一直在互联网上搜索教程,但一切都是关于 arduino 的,我无权访问任何这些。提前感谢您的任何建议!
进口板 导入新像素 进口时间 像素 = neopixel.NeoPixel(board.D18, 6)
pixels.fill((0, 230, 230)) 是第一个,然后我希望它在大约 5 秒后切换到下一个
进口板 导入新像素 进口时间 像素 = neopixel.NeoPixel(board.D18, 6)
pixels.fill((51, 0, 51))
我搜索了整个谷歌,但找不到任何关于我需要写什么的东西。
【问题讨论】:
这个问题对于 *** 来说太宽泛了。您可以将命令分组到函数中,以便一起重复使用它们。从学习 Python 开始,然后阅读您正在使用的 API 的文档。如果您有更具体的问题,请回到这里。 我要回答这个问题,因为我认为 OP 只需要一个新的构造(while 循环),甚至不需要了解函数等。所以不要太宽泛。 尼尔,你是对的。在我发帖几个小时后,我终于弄明白了,我知道这会很简单。非常感谢您花时间帮助新人!超级兴奋地继续学习 【参考方案1】:您正试图让某些东西永久运行。这是一项服务,而不是批处理作业。通常,您实现服务的方式是通过一个持续运行的循环来实现。
注意,我假设您在此处对 neopixel 和 board api 进行了正确调用。
import board
import neopixel
import time
pixels = neopixel.NeoPixel(board.D18, 6)
while(True):
pixels.fill((0, 230, 230))
# Now, make it wait for however long you want
time.sleep(5)
pixels.fill((51, 0, 51))
# Now, make it wait again
time.sleep(5)
# At this point, it's just going to loop back to the top again! and will
# keep going until you kill it.
如果您有很多要循环的模式,那么您可以将它们放入一些可迭代的结构中,例如列表。然后,您可以使用 for 循环遍历它们。
import board
import neopixel
import time
pixels = neopixel.NeoPixel(board.D18, 6)
patterns = [(0, 230, 230), (51, 0, 51), (1, 2, 3), (4, 5, 6)]
while(True):
for pattern in patterns:
pixels.fill(pattern)
# Now, make it wait for however long you want
time.sleep(5)
【讨论】:
以上是关于在设定的时间后,使可寻址的 LED 灯条从一种模式转移到下一种模式的主要内容,如果未能解决你的问题,请参考以下文章
从 Arduino Uno 切换到 NodeMCU esp8266 的 LED 灯条颜色更改代码不起作用