问题标签 [fastled]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
913 浏览

arduino - 使用 FASTLED 和 WS2812b 的颜色色调

请耐心等待我,因为我仍然是使用 FASTLED 库编码的新手。我正在使用带有 fastled 库的 teensy 3.2。我有一条 WS2812B 的 144LED 条带,我正在尝试创建由 3 种颜色组成的色调(我希望条带的第一季度到(48LEDS)是粉红色,然后是下一个 48 个橙色和最后一组 48 个蓝色.我知道使用以下内容写入每个LED

ETC..

但这对于每个 LED 来说都是乏味的,因为我有接近 1000 个 LED 的最终构建。有没有办法输入一系列 LED,例如

或类似的东西我在使用上面的代码或我尝试过的几种方法编译时遇到问题

任何帮助是极大的赞赏 !!提前致谢。

0 投票
1 回答
846 浏览

c++ - 用于多路复用 LED 矩阵的 Arduino 代码优化

我已经构建了一个 10x10RGB(没有 WS2811 ......,正常的)LED 矩阵,带有 5 个移位寄存器和 1 个 arduino micro。

我的问题现在是我的代码似乎很慢,或者 16Mhz 的 arduino 无法处理一个不错的赫兹速率。目前,当我使用下面的代码时,会出现一些闪烁/滞后。我认为大约 60Hz-100Hz 的赫兹率会非常好。我已经将 Arduino IDE 编译器设置从 -Os 更改为 -O3 以获得更好的速度(它确实有效)。

该代码具有用于亮度控制的位角调制和多路复用功能。

所以我的问题:是否值得创建一个数组,其中预定义了所有可能的值(10 个值,只有 int < 10),然后在第 312 行使用它们:

我搜索了internt,发现一些文章告诉arduinos(或微控制器)的划分非常慢。

setBitMaps() 是位角调制发生的地方 myloop() 是多路复用发生的地方

代码: http: //pastebin.com/tkFZsVxS <-- 看看这里

0 投票
0 回答
287 浏览

c++ - 在单独的类中使用库对象

我正在尝试将我的 arduino FastLED 项目的功能分开,并且我想将它们自己放入一个类中。现在这些“模式”,正如我所说的,使用了 FastLED 库的一些功能。

我目前得到的错误是我使用了 FastLED 库的对象的函数CRGB::white,但我得到了错误white is not a member of 'CRGB'。这让我很困惑,因为我能够在主 arduino 文件中使用这种语法,而且我还能够在类中使用库的函数,其语法与主文件中的语法相同。

模式类:

我的猜测是使用不同的语法,但我似乎无法在网上的任何地方找到它......

0 投票
1 回答
461 浏览

c++ - 意外的可变行为 arduino fastLED ws2812b

我有一个使用带有 600 个 ws2812b 灯条的 fastLED 的 arduino。我正在运行以下代码:

我的灯围成一个圆圈,这使得一个红点环绕着圆圈。然而,大约 100 光之外的一个蓝点也会旋转。我的代码中没有任何东西可以发出蓝光。我已经追踪到使用

如果我用代码中的数字替换底部,我会摆脱蓝点并且它可以正常工作。如果我#define bottom 1;,问题也解决了。我将底部定义在现在的位置还是在 shapeTwirl 中并不重要。这使我相信将变量用于底部有问题,但我尝试使用 int、static int、unsigned int 无济于事。

为什么会打开错误的灯?

我正在使用 arduino uno 来控制灯光和外部电源为它们供电。

0 投票
1 回答
689 浏览

c# - Arduino 处理串行的速度不够快

所以我的 Arduino 花了将近 200 毫秒来处理总共 128 个字节。整个过程不写串口只需要25ms。为什么我的 Arduino 遇到这么多瓶颈?

阿杜诺

setColor只是使用 FastLED 库设置 ledstrip 的颜色。

C#

在一个循环中,我正在执行以下操作来写入数据:

我使用以下方法阅读了 Arduino 响应:

0 投票
1 回答
1290 浏览

arduino - ESP8266 多路灯带控制

这就是我得到的。

ESP8266-12E(其实是NodeMcu搭建的,但是pinout和链接一样) https://acrobotic.com/acr-00018

LED灯条采用WS2811芯片

我从作品中借来的代码部分适用于我制作的模组。我只会发布我更改的部分,但完整的代码在这里。 https://github.com/jasoncoon/esp8266-fastled-webserver

的作用 原始代码连接到 wifi 当您将单独的浏览器指向它的 IP 时上传控制页面 使用您的输入更改图案/颜色

我的更改 原始程序是为一个长 LED 灯条设置的,我对其进行了测试以验证一切正常。然后我将条带切割成三个部分,用于橱柜照明。我希望它们每个都在自己的引脚上,这样我就可以控制它们之间的延迟(通过使条带看起来比它们长)。

问题 问题在于切割条带并连接后,并非所有三个条带都亮在一起。(根据我昨晚的记忆) 全部 3 条,只有条带 1 工作 拔下条带 3 导致 1 和 2 工作 拔下条带 2 导致 1 工作,但 3 仍然不起作用 拔下条带 1 导致 3 工作并且 2 仍然不起作用(我认为是那个顺序) 每个条带单独在各自的引脚上工作 请记住,带有一个长条带的原始设置确实可以正常工作。

代码更改(两边都有一点以帮助在原始代码中找到它)第一部分经过修改以考虑不同长度的不同条带

FastLED.addLeds 最初是一行,现在是 3。

切割 LED 灯条的原因是安装位置。Strip_1 在冰箱和炉子之间 Strip_2 在炉子和水槽之间 Strip_3 在水槽和墙壁之间

将它们分开在引脚上的原因是 FastLED 似乎没有一种简单的方法来更新模式。使用当前的设置,我知道它至少可以部分工作,而无需修改程序中已经存在的 8 个左右的模式。在 Strip_3 断开连接的情况下,条 1 和条 2 作为一条连续的条来回摆动。为了在不改变模式的情况下增加延迟,我只是告诉它 Strip_1 更长。这给人的印象是,一束光穿过火炉和水槽,看不见,又在下一条带上再次看到。

这是我用于此设置的示例。 https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples 中途,“一个阵列,许多条”

免责声明:我是一名机械工程师,当我们进行所需的小编程时,我在学校没有专心(事后看来,这很糟糕)。无论如何,我花了一周半的时间阅读 C++ 教程和示例,才走到了这一步。写作会很糟糕,但至少我知道现在 1/2 的程序在做什么。

0 投票
1 回答
1128 浏览

c++ - 使用 Arduino 在 LED 矩阵上显示十六进制值数组

所以我在处理中写了一个脚本,可以将任何给定图像的每个像素的十六进制值输出到一个数组中。我试图让这个 FastLED 库读取数组,但我遇到了很多不同的错误。我尝试将 HEX 更改为使用 FF 和 0x 标头的字符串。似乎没有任何效果。现在它一直说十六进制值没有在范围内声明。如果我将十六进制更改为字符串,我会收到一个函数错误,告诉我它们不是刺痛。我束手无策。这是代码。

0 投票
2 回答
374 浏览

arduino - 使用 FastLED 为 LED 添加颜色

我正在尝试使用arduino 上的FastLED库添加我设置到 LED 的颜色

目前我正在使用fill_solid这样的,

但是,设置后我无法为其添加颜色。理想情况下,我想要这样的东西,

LED会发光RGB = (255, 255, 0)

有什么方法可以在不保留状态信息的情况下实现这一点,只需使用 FastLED 添加到现有颜色?

0 投票
1 回答
2495 浏览

arduino - FastLED:如何在不使用阵列的情况下将整个条带设置为一种颜色?

我目前正在使用 Arduino Uno。我遇到了内存不足的问题,我设法修复了它们。然后这个项目的负责人让我知道还有另一条 150 个 LED 灯条,它们都是一种颜色。

这不是问题,但我知道在 FastLED 中设置 LED 颜色的唯一方法是提供一个颜色数组,其中每个索引代表一个 LED。

在这种情况下,这是 450 字节的数据,大约是 Arduino Unos ram 的 25%,完全专用于 3 字节的数据:一种颜色。

现在,这除了是可恶的资源浪费外,也是我根本无法承受的。

有人知道如何在不制作阵列的情况下将 150 个 LED 设置为相同的颜色吗?

到目前为止我尝试过的: 我尝试过浏览 FastLED 的源代码,发现它CFastLED::addLeds创建了一个CLEDController稍后CLEDController::show()调用的函数,然后调用了“showPixels()”,这是一个被每个不同解抽象的虚拟函数条协议类的类型,并且总是需要一个 LED[] 数组。据我所知,在执行此操作之前,我必须深入研究每个不同的协议类,此时我不妨删除 FastLED 并从头开始编写我自己的版本。

在我的场景中,链的底部似乎是这样的: https ://github.com/FastLED/FastLED/blob/03d12093a92ee2b64fabb03412aa0c3e4f6384dd/platforms/arm/k20/octows2811_controller.h#L40

在 FastLED 中,似乎真的没有合适的方法将整条 LED 设置为相同的颜色。

0 投票
1 回答
786 浏览

hash - 8 位处理器上 8 / 16 位“图形”的散列函数

对于相干噪声的实现(类似于Perlin noise),我正在寻找适合图形的散列函数。

我不需要它以任何方式加密,实际上,我什至不需要它是一个超级出色的哈希。

我只想组合两个 16 位数字并输出一个 8 位哈希。尽可能随机是好的,但在 AVR 处理器(8 位,Arduino 使用的)上快速也是好的。

目前我在这里使用一个实现:

但是考虑到我要截断除 8 位之外的所有位,而且我不需要任何壮观的东西,我可以使用更少的指令来完成一些事情吗?

…我在这个搜索中受到了与 FastLED 打包的lib8tion库的启发。它具有特定的功能,例如,将两个数字相乘以在尽可能少的时钟周期内uint8_t给出一个数字。uint16_t