我有一个LED灯带,我不知道为什么灯没有立即关闭.需要代码澄清



我是一个编写Arduino代码的新手,我对一段代码感到困惑。

当执行时,一个蓝点沿着LED条移动,并最终循环回到起点。

#include <FastLED.h>
#define NUM_LEDS 150
#define DATA_PIN 4
CRGB leds[NUM_LEDS];
void setup() { 
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
}
void loop() {
for(int dot = 0; dot < NUM_LEDS; dot++) { 
leds[dot] = CRGB::Blue;
FastLED.show();
// clear this led for the next time around the loop
leds[dot] = CRGB::Black;
delay(30);
}
}

遵循void循环逻辑…


我们将数组中的第一个LED设置为蓝色…
然后我们用。show()告诉strip打开…
然后将LED设置为黑色…(这就是我困惑的地方)
然后在函数上设置延时…

函数然后迭代dot变量并沿着LED条继续。混淆点

  1. 当我们将LED设置为黑色时,我们不再运行另一个.show()方法。长条怎么知道该变黑?
  2. 当我将延迟设置为疯狂的300000时,蓝色的光出现了…等待延迟时间…然后关闭,然后迭代到下一个LED。我所期望的行为会是灯变成蓝色…然后马上就黑了……然后等待延时计时器…然后迭代到下一个LED…我不确定延迟是如何与leds[dot] = CRGB::Black;线相关联的。

第一个循环将led[0]变为蓝色,然后它将使用FastLED.show()将其显示在灯条上。接下来,它将使相同的led[0]变为黑色,但是它只会在循环的第二次迭代中显示。

第二个循环将对leds[1]执行相同的操作,以此类推。

相关内容

  • 没有找到相关文章

最新更新