在设定的时间后,使可寻址的 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 灯条从一种模式转移到下一种模式的主要内容,如果未能解决你的问题,请参考以下文章

WS2812B LED灯工作原理

通过APP控制20米RGB LED灯条

从 Arduino Uno 切换到 NodeMCU esp8266 的 LED 灯条颜色更改代码不起作用

c_cpp 运动激活LED灯条

将 Arduino RGB LED 从一种颜色褪色到另一种颜色?

快速截屏 Java