Code for the test.
#include "FastLED.h"
#define NUM_LEDS 41
#define DATA_PIN 11
#define CLOCK_PIN 13
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
}
void Pulse(CRGB colour)
{
for(int i = 0; i < NUM_LEDS; i++) {
leds[i] = colour;
leds[i].maximizeBrightness();
}
FastLED.show();
for(int i = 0; i < 14; i++) {
for(int k = 0; k < NUM_LEDS; k++) {
leds[k].fadeLightBy( 64 );
}
FastLED.show();
delay(50);
}
for(int i = 0; i < 14; i++) {
for(int k = 0; k < NUM_LEDS; k++) {
leds[k] *= 2;
}
FastLED.show();
delay(100);
}
}
void UpDown(CRGB colour) {
for(int i = 0; i < NUM_LEDS; i++) {
leds[i] = colour;
FastLED.show();
leds[i] = CRGB::Black;
delay(30);
}
for(int i = NUM_LEDS-1; i >= 0; i--) {
leds[i] = colour;
FastLED.show();
leds[i] = CRGB::Black;
delay(30);
}
}
void loop() {
UpDown(CRGB::Red);
UpDown(CRGB::Red);
for(int i = 0; i < 5; i++){
Pulse(CRGB::Red);
}
UpDown(CRGB::Purple);
UpDown(CRGB::Purple);
for(int i = 0; i < 5; i++){
Pulse(CRGB::Purple);
}
UpDown(CRGB::Blue);
UpDown(CRGB::Blue);
for(int i = 0; i < 5; i++){
Pulse(CRGB::Blue);
}
}