This is an old revision of the document!
IN PROGRESS
#include <Adafruit_NeoPixel.h>
#define PIN 15
#define NUM_LEDS 75
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.show(); // Initialize all pixels to 'off'
}
void loop() {
Main(0x50, 0, 0x50, 4, 60, 0);
Party(0x50, 0x50, 0, 2, 100, 100);
Interrupt(0x50, 0, 0x50, 25, 100);
Main1(0x50, 0x50, 0, 4, 60, 0);
Party(0x50, 0, 0x50, 2, 100, 100);
Interrupt(0x50, 0x50, 0, 25, 100);
}
void Main(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay){
CenterToOutside(red, green, blue, EyeSize, SpeedDelay, ReturnDelay);
OutsideToCenter(red, green, blue, EyeSize, SpeedDelay, ReturnDelay);
CenterToOutside(red, green, blue, EyeSize, SpeedDelay, ReturnDelay);
OutsideToCenter(red, green, blue, EyeSize, SpeedDelay, ReturnDelay);
}
void CenterToOutside(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay) {
for(int i =((NUM_LEDS-EyeSize)/2); i>=0; i--) {
setAll(0,0,0);
setPixel(i, 0x50, 0x50, 0);
for(int j = 1; j <= EyeSize; j++) {
setPixel(i+j, red, green, blue);
}
setPixel(i+EyeSize+1, 0x50, 0x50, 0);
setPixel(NUM_LEDS-i, 0x50, 0x50, 0);
for(int j = 1; j <= EyeSize; j++) {
setPixel(NUM_LEDS-i-j, red, green, blue);
}
setPixel(NUM_LEDS-i-EyeSize-1, 0x50, 0x50, 0);
showStrip();
delay(SpeedDelay);
}
delay(ReturnDelay);
}
void OutsideToCenter(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay) {
for(int i = 0; i<=((NUM_LEDS-EyeSize)/2); i++) {
setAll(0,0,0);
setPixel(i, 0x50, 0x50, 0);
for(int j = 1; j <= EyeSize; j++) {
setPixel(i+j, red, green, blue);
}
setPixel(i+EyeSize+1, 0x50, 0x50, 0);
setPixel(NUM_LEDS-i, 0x50, 0x50, 0);
for(int j = 1; j <= EyeSize; j++) {
setPixel(NUM_LEDS-i-j, red, green, blue);
}
setPixel(NUM_LEDS-i-EyeSize-1, 0x50, 0x50, 0);
showStrip();
delay(SpeedDelay);
}
delay(ReturnDelay);
}
void Main1(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay){
CenterToOutside1(red, green, blue, EyeSize, SpeedDelay, ReturnDelay);
OutsideToCenter1(red, green, blue, EyeSize, SpeedDelay, ReturnDelay);
CenterToOutside1(red, green, blue, EyeSize, SpeedDelay, ReturnDelay);
OutsideToCenter1(red, green, blue, EyeSize, SpeedDelay, ReturnDelay);
}
void CenterToOutside1(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay) {
for(int i =((NUM_LEDS-EyeSize)/2); i>=0; i--) {
setAll(0,0,0);
setPixel(i, 0x50, 0, 0x50);
for(int j = 1; j <= EyeSize; j++) {
setPixel(i+j, red, green, blue);
}
setPixel(i+EyeSize+1, 0x50, 0, 0x50);
setPixel(NUM_LEDS-i, 0x50, 0, 0x50);
for(int j = 1; j <= EyeSize; j++) {
setPixel(NUM_LEDS-i-j, red, green, blue);
}
setPixel(NUM_LEDS-i-EyeSize-1, 0x50, 0, 0x50);
showStrip();
delay(SpeedDelay);
}
delay(ReturnDelay);
}
void OutsideToCenter1(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay) {
for(int i = 0; i<=((NUM_LEDS-EyeSize)/2); i++) {
setAll(0,0,0);
setPixel(i, 0x50, 0, 0x50);
for(int j = 1; j <= EyeSize; j++) {
setPixel(i+j, red, green, blue);
}
setPixel(i+EyeSize+1, 0x50, 0, 0x50);
setPixel(NUM_LEDS-i, 0x50, 0, 0x50);
for(int j = 1; j <= EyeSize; j++) {
setPixel(NUM_LEDS-i-j, red, green, blue);
}
setPixel(NUM_LEDS-i-EyeSize-1, 0x50, 0, 0x50);
showStrip();
delay(SpeedDelay);
}
delay(ReturnDelay);
}
void Interrupt(byte red, byte green, byte blue, int Count, int SpeedDelay) {
setAll(0,0,0);
for (int i=0; i<Count; i++) {
setPixel(random(NUM_LEDS),red,green,blue);
showStrip();
delay(SpeedDelay);
}
delay(SpeedDelay);
}
void Party(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay){
for(int i =((NUM_LEDS-EyeSize)/2); i>=0; i--) {
for(int j = 1; j <= EyeSize; j++) {
setPixel(i+j, red, green, blue);
}
setPixel(i+EyeSize+1, red, blue, green);
for(int j = 1; j <= EyeSize; j++) {
setPixel(NUM_LEDS-i-j, red, green, blue);
}
setPixel(NUM_LEDS-i-EyeSize-1, red, blue, green);
showStrip();
delay(SpeedDelay);
}
delay(ReturnDelay);
}
void showStrip() {
strip.show();
}
void setPixel(int Pixel, byte red, byte green, byte blue) {
strip.setPixelColor(Pixel, strip.Color(red, green, blue));
}
void setAll(byte red, byte green, byte blue) {
for(int i = 0; i < NUM_LEDS; i++ ) {
setPixel(i, red, green, blue);
}
showStrip();
}