问题标签 [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 回答
536 浏览

c++ - C++:在包含的头文件中使用#define 常量(Arduino)

我正在使用 PlatformIO,目前正在为 ESP32 开发代码。我有一些子库,我希望能够在其中进行调试日志记录。

为了启用调试日志,我认为最好#define MYDEBUG在 main.cpp 中设置一个常量,然后在包含的库中对其进行评估。我把我的代码分解成这个简单的例子:

主.cpp:

LedSetup.h:

LedSetup.cpp:

当我运行它时,我希望在串行日志中看到两行: Did something!Is there output? 我只看到Is there output. 所以显然MYDEBUG包含的头文件中没有定义。为什么?

在他们使用#define 作为在包含的头文件中设置事物的一种方式之前,我已经看到了类似的东西,例如这里: https ://github.com/FastLED/FastLED/wiki/ESP8266-notes

我在这里监督什么?

提前致谢, 蒂莫

0 投票
1 回答
357 浏览

processing - 时间抖动的一般方法

我正在寻找有关在处理中实现时间抖动的一般方法的一些输入。

目前我有一个处理草图,它生成一个十六进制文件,可以通过 SPI 发送到 APA102 LED 灯条。我能够实现的帧速率应该足以实现时间抖动以增加 LED 的动态范围,主要是在较低亮度的情况下。我查看了 FastLed 和 Fadecandy 以尝试了解它是如何完成的,但我无法真正弄清楚。使用这些库不是一个选项,因为动画应该在 hex 文件中“硬编码”。

谁能指出我正确的方向?

编辑:我目前实现了以下内容:首先,我计算 LED 上可实现的帧速率,这给出了我可以插入的抖动帧的数量,基于我的串中 LED 的数量和 SPI 时钟速度。LEDstrip 可以以 420fps 的速度更新,所以我每帧有 7 个“虚拟”帧,仍然能够拥有 60fps 的基本刷新率。然后我计算一个 7x7 的查找表,如下所示:

我使用浮点数进行所有伽马颜色校正计算,查找表中的每一行对应两个值之间的 1/7 步长。然后将这些添加到底 RGB 值以实现抖动。然而,这一切在视觉上并没有真正改变。与没有抖动的动画相比,我看不出有什么不同。我希望看到类似https://www.youtube.com/watch?v=1-_JtRl2ks0

0 投票
3 回答
551 浏览

c++ - 如何调用由另一个函数产生参数的函数?

我正在使用 Arduino 和 FastLED 库控制一条 LED,并且我设置了一些功能,可以让我更改 LED 等的颜色。

我有一个函数,其中传入了红色、绿色和蓝色的值,并将整个条带设置为该颜色:

然后,我设置了一个包含预设颜色及其对应 RGB 值的二维数组:

我想做的是调用changeColour();函数并从数组中传入随机颜色的 RGB 值,所以我编写了该函数:

我将如何获得它以便我可以调用该changeColour()函数,而不是changeColour(valR, valG, valB)调用该randomColour()函数,该函数又返回valR, valGandvalB值,从而将它们传递给changeColour()函数?

0 投票
0 回答
51 浏览

c++ - 用于 LED 板动画的 Arduino 地图或列表

我正在使用带有 6 个 LED 可编程灯条和 FASTLED 库的 arduino。对于动画,我需要有效地将数据传递给方法以创建简单的动画。

LED 位于 6 X 30 的网格中,点亮它们的唯一方法是指定条带和该条带上的索引。

我目前有这段代码可以轻松地通过条带和 LED:

但更好的选择是使用地图来传递数据,例如这段代码

其中一个函数将遍历按键并点亮右侧 LED 条上的相应 LED。

你们知道如何使这成为可能吗

0 投票
0 回答
230 浏览

arduino - 将 octoWS2811 替换为 fastled 2812 以用于流式传输

你好 arduino 程序员们,我目前正在研究一个 LED 矩阵,我正在驱动一个 30x7(210led WS2812)矩阵。我使用 arduino nano 来完成这项工作。

我在互联网上找到了这部分代码,但这是使用 octoWS2811 库,我喜欢在没有 ws2811 octo 库的情况下让它工作,因为这仅适用于 teensys。

原始代码如下所示:

我希望它可以与这样的东西一起使用:

对此有什么建议吗?它应该是一段简单的流式代码,但我不知道如何使用 fastled 库和 NEOPIXEL/ws2812 leds 来编译它。

0 投票
1 回答
159 浏览

c++ - 如何让 LED 代码从键盘按下运行

我正在使用 FastLED 库和 Keypad 库在我的 WS2812 灯上运行代码。当我只使用一个基本的键盘布局来打印出正在按下的键时,这段代码就起作用了。但是现在我添加了从键盘 if 语句运行代码的方法,它似乎不起作用。当我按键盘上的数字时,灯没有任何反应。目前 LED 代码在方法中。我以前只是在键盘本身的 if 语句中使用它。我将尽可能简洁地保持此处包含的代码,以免屏幕上出现我认为不相关的内容。如果您有任何问题,我可以提供其余代码的相关片段。

需要明确的是,运行代码时没有错误。它运行良好。但是,当按下键盘上的键时它什么也不做,我相信它应该运行调用的方法并相应地影响灯光。

编辑:

在实施 Bobby Tables 的建议后,它在一定程度上起作用。除了现在当我按 1 时,即:

它会立即运行,但如果我按任何其他键,它就不能完全发挥作用。例如当我按 5 时:

它什么也不做。除非我先按 5,然后再按 1。它将填充最初的纯白色,然后开始运行christmas()。

0 投票
2 回答
2372 浏览

arduino - FastLED 闪烁 - 使用 millis() 无延迟地改变颜色

我试图在不使用延迟()的情况下闪烁我的 LED 灯条

到目前为止,我有这样的事情:

但它不像我想要的那样工作。例如,如果我更改fill_solid(leds, NUM_LEDS, CRGB::Black);CRGB::Green我只会看到绿色并且很难看到红色闪烁。例如,我想让它看起来像这样:绿色代表 1s -> 红色代表 1s -> 绿色等。

我的循环应该是什么样子?

0 投票
1 回答
474 浏览

c++ - 错误:在 Arduino 类的常量表达式中使用“this”

我正在尝试为 arduino 项目编写一个类,我使用http://paulmurraycbr.github.io/ArduinoTheOOWay.html中的信息作为指南。

我想设置一个灯条以供进一步使用并不断收到错误消息:错误:在常量表达式中使用“this”。

我的代码如下所示:

我已尝试阅读可能导致此错误的原因,但坦率地说,我不明白其中任何一个。据我了解,似乎我不能在那里使用 const (我认为我不是),因为它可能会在代码执行期间被修改。

完整的错误看起来像thissketch_feb03b.ino:在成员函数'void LedStrip::setup()'中:

0 投票
0 回答
518 浏览

c - 带有 int[] 数组的 Arduino 上的 FastLED

我用 ws2812b LED 构建了一个 LED 矩阵。它由 arduino nano 驱动。我将 CLED 库与 FastLED 结合使用。它工作正常!

现在我在这里有一个非常简单的例程,尽管没有错误或警告,但它不起作用。

问题似乎是我要激活的 LED 路径的阵列。那么我错过了什么?当我在 arduino 上激活它时,它会冻结。该getRandomColorValue()函数只返回一个颜色值 0-255。那个工作就像一个魅力。

这个效果很好:

0 投票
0 回答
94 浏览

c - 使用带有指向 int 数组的指针的 PROGMEM 时出现问题

我的 arduino nano 驱动一个 LED 矩阵。一切工作正常。但是我的“大纲路径”对于 SRAM 来说太大了,所以我尝试将它放入 PROGMEM。现在从这个程序数组中读取值会导致完全错误的整数。我究竟做错了什么?

谢谢你的帮助!!

再见安德烈

}