My new shades (and some background commentary)

include <Adafruit_NeoPixel.h>

#define N_LEDS 29 #define PIN 3

Adafruit_NeoPixel strip = Adafruit_NeoPixel(N_LEDS, PIN, NEO_GRB + NEO_KHZ800); int recColor1 = 3; int recColor2 = 2; int recColor3 = 1; int blinkDelay = 0; int mCounter = 0; const int REPS = 1000; // Number of times to repeat the animation loop (1-255) int rep = REPS;

void setup() { strip.begin(); randomSeed(analogRead(0)); }

int pos = 0, dir = 1; // Position, direction of "eye" int pos1 = 0, dir1 = 1; // Position, direction of "eye" int pos2 = 0, dir2 = -1; // Position, direction of "eye"

void loop() { mCounter++; if (mCounter<100) { Scanner1(); } else if (mCounter > 99 && mCounter < 200) {
Scanner1(); } else if (mCounter > 199 && mCounter < 400) {
Scanner1(); } else if (mCounter > 399 && mCounter < 600) {
Scanner1(); } else if (mCounter > 599 && mCounter < 990) { Scanner1(); //mRandom(); } else { mRedEyes(); }

    if (mCounter>1000) {
      mCounter = 0;
      strip.clear();
    }    

}

void mRedEyes() { eyeDisplay(); strip.show();
delay(1000);
strip.clear();
strip.show();
blinkDelay = random(220) + 30; delay(blinkDelay);

}

void eyeDisplay() { strip.setPixelColor(7, 0x100000); // Dark blue strip.setPixelColor(8, 0x800000); // Medium blue strip.setPixelColor(9 , 0xFF3000); // Center pixel is brightest strip.setPixelColor(10, 0x800000); // Medium blue strip.setPixelColor(11, 0x100000); // Dark blue

  strip.setPixelColor(16, 0x100000); // Dark blue
  strip.setPixelColor(17, 0x800000); // Medium blue
  strip.setPixelColor(18, 0xFF3000); // Center pixel is brightest
  strip.setPixelColor(19, 0x800000); // Medium blue
  strip.setPixelColor(20, 0x100000); // Dark blue

}

void mRandom() { for(int x=0; x<N_LEDS;x++) { recColor1 = random(255); recColor2 = random(255); recColor3 = random(255); strip.setPixelColor(x, recColor1,recColor2,recColor3); } strip.show(); delay(20);
}

void Scanner1() { int j; strip.setPixelColor(pos - 2, 0x000010); // Dark blue strip.setPixelColor(pos - 1, 0x400040); // Medium blue strip.setPixelColor(pos , 0xFF3000); // Center pixel is brightest strip.setPixelColor(pos + 1, 0x400040); // Medium blue strip.setPixelColor(pos + 2, 0x000010); // Dark blue

  strip.show();
  delay(30);

  // Rather than being sneaky and erasing just the tail pixel,
  // it's easier to erase it all and draw a new one next time.
  for(j=-2; j<= 2; j++) strip.setPixelColor(pos+j, 0);

  // Bounce off ends of strip
  pos += dir;
  if(pos < 0) {
    pos = 1;
    dir = -dir;
  } else if(pos >= strip.numPixels()) {
    pos = strip.numPixels() - 2;
    dir = -dir;
  }

}

/r/arduino Thread Link - youtu.be