#include <Adafruit_NeoPixel.h>
#define PIX_PIN 12
#define PIX_QTY 8
#define COLORS 15
Adafruit_NeoPixel strip(PIX_QTY, PIX_PIN, NEO_GRB + NEO_KHZ800);
int i, c;
void setup() {
strip.begin(); // start neopix object
strip.setBrightness(0); // avoid current overload
strip.clear(); // clear neopix buffer
strip.setBrightness(255); // set pixel brightness
}
void loop() {
// walkingpixel();
// glitter();
blinker();
}
void blinker() {
int p = random(8);
int r = random(256);
int g = random(256);
int b = random(256);
strip.setPixelColor(p, r * random(2), g * random(2), b * random(3));
strip.show();
strip.clear();
delay(100);
}
void glitter() {
for (byte i = 0; i < PIX_QTY; i++) {
int p = random(8);
int r = random(256);
int g = random(256);
int b = random(256);
strip.setPixelColor(p, strip.Color(r * random(2), g * random(2), b * random(2)));
}
strip.show();
delay(100);
}
void walkingpixel() {
int r, g, b;
delay(125); // delay 1/8 second between pixels
if (i == PIX_QTY) {
i = 0; // reset pixel
// delay(500); // delay between colors
c++; // increment color
if (c == COLORS) { // count colors
c = 0; // reset color
}
strip.clear(); // clear pixel
}
switch (c % COLORS) {
case 0: r = 255; break;
case 1: r = 255; g = 127; break;
case 2: r = 255; g = 255; break;
case 3: r = 255; g = 255; b = 127; break;
case 4: r = 127; g = 255; break;
case 5: g = 255; break;
case 6: g = 255; b = 127; break;
case 7: g = 255; b = 255; break;
case 8: g = 255; b = 255; r = 127; break;
case 9: g = 127; b = 255; break;
case 10: b = 255; break;
case 11: b = 255; r = 127; break;
case 12: b = 255; r = 255; break;
case 13: b = 255; r = 255; g = 127; break;
case 14: b = 127; r = 255; break;
default: break;
}
strip.setPixelColor(i, strip.Color(r, g, b)); // climbing pixel
strip.show();
strip.setPixelColor(i, strip.Color(0, 0, 0)); // walking pixel - remove for climbing
i++; // increment pixel
r = 0; g = 0; b = 0; // reset colors
}