#include <FastLED.h> // https://github.com/FastLED/FastLED
#define LEDnum 8 // number of WS2812B
#define LEDpin 4 // data pin
CRGB led[LEDnum]; // FastLED object (led[])
int i, r, g, b;
unsigned long timer, timeout = 250;
int rv, gv, bv;
void setup() {
Serial.begin(115200);
randomSeed(analogRead(A0));
FastLED.addLeds<WS2812, LEDpin, RGB>(led, LEDnum); // initialize
FastLED.clear(); // clear buffer
FastLED.show(); // show buffer
}
void loop() {
if (millis() - timer >= timeout) {
timer = millis();
while ((r == 0 && g == 0 && b == 0) || (r == 1 && g == 1 && b == 1)) {
r = random(2); g = random(2); b = random(2);
}
led[i] = CRGB(255 * r, 255 * g, 255 * b); // load WS2812 buffer with random colors
FastLED.show(); // display WS2812 buffer
FastLED.clear(); // clear WS2812 buffer
if (r) rv++;
if (g) gv++;
if (b) bv++;
Serial.print(rv);
Serial.print(" ");
Serial.print(gv);
Serial.print(" ");
Serial.print(bv);
Serial.println();
r = 0; g = 0; b = 0;
i++;
if (i == LEDnum)
i = 0;
}
}