我们将数组中的第一个LED设置为蓝色…
然后我们用。show()告诉strip打开…
然后将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条继续。混淆点
- 当我们将LED设置为黑色时,我们不再运行另一个.show()方法。长条怎么知道该变黑?
- 当我将延迟设置为疯狂的300000时,蓝色的光出现了…等待延迟时间…然后关闭,然后迭代到下一个LED。我所期望的行为会是灯变成蓝色…然后马上就黑了……然后等待延时计时器…然后迭代到下一个LED…我不确定延迟是如何与
leds[dot] = CRGB::Black;
线相关联的。
第一个循环将led[0]变为蓝色,然后它将使用FastLED.show()将其显示在灯条上。接下来,它将使相同的led[0]变为黑色,但是它只会在循环的第二次迭代中显示。
第二个循环将对leds[1]执行相同的操作,以此类推。