这就是我得到的。
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 仍然不起作用(我认为是那个顺序) 每个条带单独在各自的引脚上工作 请记住,带有一个长条带的原始设置确实可以正常工作。
代码更改(两边都有一点以帮助在原始代码中找到它)第一部分经过修改以考虑不同长度的不同条带
// the very next line is original, but I commented out to add data pins later
//#define DATA_PIN 8 // for Huzzah: Pins w/o special function: #4, #5, #12, #13, #14; // #16 does not work :(
#define LED_TYPE WS2811
#define COLOR_ORDER BRG
#define STRIP_1 6 // seperate strips are numbered and added together to form one long chain
#define STRIP_2 67 // by adding extra leds, you add a delay so you don't jump a gap between strips too fast
#define STRIP_3 27
#define STRIP_12 STRIP_1 + STRIP_2
#define NUM_LEDS STRIP_1 + STRIP_2 + STRIP_3
#define MILLI_AMPS 10000 // IMPORTANT: set here the max milli-Amps of your power supply 5V 2A = 2000
#define FRAMES_PER_SECOND 120 // here you can control the speed. With the Access Point / Web Server the animations run a bit slower.
FastLED.addLeds 最初是一行,现在是 3。
FastLED.addLeds<LED_TYPE, 5, COLOR_ORDER>(leds, 0, STRIP_1); // for WS2812 (Neopixel)
FastLED.addLeds<LED_TYPE, 6, COLOR_ORDER>(leds, STRIP_1, STRIP_2);
FastLED.addLeds<LED_TYPE, 7, COLOR_ORDER>(leds, STRIP_12, STRIP_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 的程序在做什么。