Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino ESP8266多LED条带控制_Arduino_Esp8266_Led_Fastled - Fatal编程技术网

Arduino ESP8266多LED条带控制

Arduino ESP8266多LED条带控制,arduino,esp8266,led,fastled,Arduino,Esp8266,Led,Fastled,这是我得到的 ESP8266-12E(实际上由NodeMcu制造,但引脚与链路相同) https://acrobotic.com/acr-00018 LED条采用WS2811芯片 我从works中借用的代码,部分与我制作的mods配合使用。我将只发布我更改的部分,但完整的代码在这里。 它的作用 原始代码连接到wifi 将单独的浏览器指向控件页的IP时上载控件页 使用您的输入更改图案/颜色 我的更改 原来的程序是为一个长的LED条,我测试,以验证一切工作设置。 然后,我把这条带子切成三段,用于柜

这是我得到的

ESP8266-12E(实际上由NodeMcu制造,但引脚与链路相同) https://acrobotic.com/acr-00018

LED条采用WS2811芯片

我从works中借用的代码,部分与我制作的mods配合使用。我将只发布我更改的部分,但完整的代码在这里。

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

我的更改 原来的程序是为一个长的LED条,我测试,以验证一切工作设置。 然后,我把这条带子切成三段,用于柜下照明。我希望它们都有自己的pin码,这样我就可以控制它们之间的延迟(通过使条带看起来比它们长)

问题 问题是在切割和连接铝条后,并非所有三条铝条都会发光。 (根据我昨晚的记忆) 对于所有3英寸,只有带1工作 拔下条带3使1和2工作 拔下条带2会导致1工作,而3仍然不工作 拔掉第一条导致第三条起作用,第二条仍然不起作用(我认为这就是顺序) 每个条带单独在各自的引脚中工作 请记住,原来的设置与一个长条没有工作得很好

代码更改(两边都有一点更改,以帮助在原始代码中找到它) 对第一节进行了修改,以考虑不同长度的不同条带

// 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.AddLED最初是一行,现在是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);
FastLED.addled(发光二极管,0,带1);//对于WS2812(Neopix)
快速发光。添加发光二极管(发光二极管、带1、带2);
快速发光。添加发光二极管(发光二极管,带12,带3);
切割LED条的原因是安装位置。 条带1位于冰箱和炉子之间 条带2位于炉子和水槽之间 条带3位于水槽和墙壁之间

将它们分开的原因是FastLED似乎没有一种简单的方式来更新模式。对于当前的设置,我知道它至少部分工作,而不必经过和修改程序中已有的8个左右的模式。断开带_3时,带1和2作为一条连续带来回摆动。为了增加延迟而不改变模式,我只告诉它Strip_1更长。这给人的印象是,一束光穿过炉子和水槽,看不见,然后在下一条带子上再次出现

下面是我用于此设置的示例。 中途,“一个阵列,多条带”


免责声明:我是一名机械工程师,在学校里,当我们做要求的小程序时,我没有注意到(事后看来,这很糟糕)。无论如何,我花了一个半月的时间通过C++教程和例子来达到这一目的。写东西会很糟糕,但至少我知道1/2的程序现在在做什么

试着运行您的代码,但不要在Strip_1中增加额外的长度:

为了增加延迟而不改变模式,我只告诉它Strip_1更长。这给人的印象是,一束光穿过炉子和水槽,看不见,然后在下一条带子上再次出现


通过尝试访问Neopix条中不存在的像素,您可能会遇到LED条的索引问题。如果这确实是问题所在,请实施适当的延迟技术。

不确定我为什么会被扣分。对此作出澄清将是有益的。我做了大量的研究,但有一部分我被卡住了。在我们机械师之间。。。这个网站上的人对问题是如何形成的相当挑剔我没有投反对票,但你具体的代码问题还不清楚。你有代码问题吗?还是电路问题?您是否正确索引了条带/指示灯?实际上,代码当前没有延迟。我认为它可能会起作用的原因是,当我测试整个条带时,我意外地告诉它300个LED(只有100个地址),波形会在结束后熄灭,让我想知道为什么要花这么长时间才能恢复。它与条带1、2一起工作。波浪向下移动,好像它们是相连的。但它不喜欢有3个管脚来发送数据,所以要回答Mepix,我认为这看起来更像是一个电路问题。一个真正的讨厌鬼,因为我用的是和以前一样的压水堆、电路板和led条。无论如何,谢谢你,但是我可能上错论坛了。我猜是这样的。我发现索引问题在这些东西中很常见(至少在我的项目中)。您可能已经这样做了,但是您是否交换了条带的顺序,以确保条带_3在拆分时没有损坏?在这一点上(没有更多细节/电路/您的完整代码),我所能做的只是猜测。。。祝你好运!