bool DEBUG = 0;
#include <Adafruit_NeoPixel.h> // https://github.com/adafruit/Adafruit_NeoPixel
#define PIN 4 // NeoPixel pin
#define PIX 40 // Number of NeoPixels 5 x 8)
Adafruit_NeoPixel WS2812 = Adafruit_NeoPixel(PIX, PIN, NEO_GRB + NEO_KHZ800);
unsigned long timer, timeout = 5; // milliseconds
bool direction; // for color change of direction
int value, mini = 51, maxi = 255; // color values
void setup() {
if (DEBUG)
Serial.begin(115200); // initialize serial communications
WS2812.begin(); // initialize Neopixel object/instance
WS2812.clear(); // clear display buffer
WS2812.show(); // display pixel buffer
}
void loop() {
int color, pixel;
direction = !direction;
for (color = 0; color < maxi - mini; color++) {
for (pixel = 0; pixel < PIX; pixel++) {
if (direction)
value = mini + color;
else
value = maxi - color;
WS2812.setPixelColor(pixel, WS2812.Color(value, value, value));
}
WS2812.show(); // display pixel buffer
if (DEBUG) {
Serial.print(direction);
Serial.print(" ");
Serial.println(value);
}
}
delay(100);
}