// flash 3 Pixel LED WS2812B strips randomly, version 2,  www.steamtraininfo.com.
//Цветные кубики - см.внизу
#include <FastLED.h>
#define NUM_LEDS 15     //the number of leds that will light
#define DATA_PINA 8 // Connect to the data wires on the pixel strips
#define DATA_PINB 7
#define DATA_PINC 6

CRGB ledsA[NUM_LEDS]; // sets number of pixels that will light on each strip.
CRGB ledsB[NUM_LEDS];
CRGB ledsC[NUM_LEDS];

void loop() {   BlinkRandomly();  }

void setup()                  {
  FastLED.addLeds<WS2812B, DATA_PINA, GRB>(ledsA, NUM_LEDS);
  FastLED.addLeds<WS2812B, DATA_PINB, GRB>(ledsB, NUM_LEDS);
  FastLED.addLeds<WS2812B, DATA_PINC, GRB>(ledsC, NUM_LEDS);
  randomSeed(analogRead(A0)); } /*sets the pin to create "static so the the initial LED to light is different
  each time through the loop  */

void fillStrip(int number, const struct CRGB &color) {
  switch (number) {
    case 1: fill_solid(ledsA, NUM_LEDS, color);      break;
    case 2: fill_solid(ledsB, NUM_LEDS, color);      break;
    case 3: fill_solid(ledsC, NUM_LEDS, color);      break;
  } 
  FastLED.show();                                    }

void BlinkRandomly() {
  int delayTime =  random(25, 200);  // sets the blink rate in milliseconds
  int stripIndex = random(1, 4);
  fillStrip(stripIndex, CRGB::Red);    delay(delayTime);
  fillStrip(stripIndex, CRGB::Black);  delay(delayTime);
}