Hello, friends! This was a huge week for the project- Cartland and I installed the lights on Saturday, October 19! We completely changed the plan while doing the installation because Cartland realized the lights fit perfectly within little grooves in the wall the media wall is mounted on. It’s going to look so cool!
I also coded a loop that cycles for the day and one that cycles through the night. I’ll add my code to the bottom of this post!
I had a few difficulties with the amount of voltage going into the lights, so I adjusted the code to be less bright and added a second voltage input for the lights on floor 2. I did accidentally fry the board on the 3rd floor, but we’re getting new ones, so hopefully they’ll work well. Quick tip: when you’re wiring a digital pin, don’t forget to also connect a ground wire to your microcontroller from your lights. Otherwise, you will probably fry your board.
All we have left to do now is fix the 3rd floor board, check the timing of the code so it works well together, and figure out what we’re putting on the media wall! Come to the HCC on Friday, October 25 to see the lights in action!
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 5
#define PIN2 7
#define NUMPIXELS 300
#define NUMPIXELS2 178
Adafruit_NeoPixel pixels2(NUMPIXELS2, PIN2, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 15
#define DELAYVAL2 50
#define DELAYVAL300 10
#define BIGDELAYLOOP 15400
void setup() {
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(clock_div_1);
#endif
pixels.begin();
pixels2.begin();
}
void loop() {
for (int g=0; g<12; g++)
{
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 0, 0));
pixels.show();
}
for(int i=0; i<NUMPIXELS2; i++) {
pixels2.setPixelColor(i, pixels2.Color(0, 0, 0));
pixels2.show();
}
//rainbows comet loop
for(int i=NUMPIXELS; i>71; i--) {
pixels.setPixelColor(i, pixels.Color(255, 0, 0));
pixels.setPixelColor(i+1, pixels.Color(255, 62.5, 0));
pixels.setPixelColor(i+2, pixels.Color(255, 127.5, 0));
pixels.setPixelColor(i+3, pixels.Color(0, 255, 0));
pixels.setPixelColor(i+4, pixels.Color(0, 127.5, 255));
pixels.setPixelColor(i+5, pixels.Color(0, 0, 255));
pixels.setPixelColor(i+6, pixels.Color(255, 0, 255));
pixels.setPixelColor(i+7, pixels.Color(0, 0, 0));
pixels.show();
delay(DELAYVAL300*4);
}
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 0, 0));
pixels.show();
}
for(int i=22; i<NUMPIXELS2; i++) {
pixels2.setPixelColor(i, pixels2.Color(255, 0, 0));
pixels2.setPixelColor(i-1, pixels2.Color(255, 62.5, 0));
pixels2.setPixelColor(i-2, pixels2.Color(255, 127.5, 0));
pixels2.setPixelColor(i-3, pixels2.Color(0, 255, 0));
pixels2.setPixelColor(i-4, pixels2.Color(0, 127.5, 255));
pixels2.setPixelColor(i-5, pixels2.Color(0, 0, 255));
pixels2.setPixelColor(i-6, pixels2.Color(255, 0, 255));
pixels2.setPixelColor(i-7, pixels2.Color(0, 0, 0));
pixels2.show();
delay(DELAYVAL300*4);
}
for(int i=0; i<NUMPIXELS2; i++) {
pixels2.setPixelColor(i, pixels2.Color(0, 0, 0));
pixels2.show();
}
delay(BIGDELAYLOOP);
//triple sparkle
for (int a=0; a<100; a++)
{
long w= random(0,NUMPIXELS);
long p= random(0,NUMPIXELS);
long q= random(0,NUMPIXELS);
long ww= random(0,NUMPIXELS2);
long pp= random(0,NUMPIXELS2);
long qq= random(0,NUMPIXELS2);
pixels.setPixelColor(w, pixels.Color(255, 255, 255));
pixels.show();
pixels.setPixelColor(p, pixels.Color(255, 255, 255));
pixels.show();
pixels.setPixelColor(q, pixels.Color(255, 255, 255));
pixels.show();
pixels2.setPixelColor(ww, pixels2.Color(255, 255, 255));
pixels2.show();
pixels2.setPixelColor(pp, pixels2.Color(255, 255, 255));
pixels2.show();
pixels2.setPixelColor(qq, pixels2.Color(255, 255, 255));
pixels2.show();
delay(200);
pixels.setPixelColor(w, pixels.Color(0, 0, 0));
pixels.setPixelColor(p, pixels.Color(0, 0, 0));
pixels.setPixelColor(q, pixels.Color(0, 0, 0));
pixels.show();
pixels2.setPixelColor(ww, pixels2.Color(0, 0, 0));
pixels2.setPixelColor(pp, pixels2.Color(0, 0, 0));
pixels2.setPixelColor(qq, pixels2.Color(0, 0, 0));
pixels2.show();
}
for(int i=NUMPIXELS; i>0; i--) {
pixels.setPixelColor(i, pixels.Color(0, 0, 0));
pixels.show();
}
for(int i=NUMPIXELS2; i>0; i--) {
pixels2.setPixelColor(i, pixels2.Color(0, 0, 0));
pixels2.show();
}
//rainbow wash
for (int s=0; s<NUMPIXELS; s++){
pixels.setPixelColor(s+51, pixels.Color(125, 0, 0));
pixels.show();
pixels2.setPixelColor(s, pixels2.Color(125, 0, 0));
pixels2.show();
delay(DELAYVAL300*2);
}
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i+51, pixels.Color(125, 62.5, 0));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(125, 62.5, 0));
pixels2.show();
delay(DELAYVAL300*2);
}
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i+51, pixels.Color(127.5, 127.5, 0));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(127.5, 127.5, 0));
pixels2.show();
delay(DELAYVAL300*2);
}
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i+51, pixels.Color(0, 127.5, 0));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(0, 127.5, 0));
pixels2.show();
delay(DELAYVAL300*2);
}
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i+51, pixels.Color(0, 0, 127.5));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(0, 0, 127.5));
pixels2.show();
delay(DELAYVAL300*2);
}
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i+51, pixels.Color(75, 0, 100));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color (75, 0, 100));
pixels2.show();
delay(DELAYVAL300*2);
}
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 0, 0));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(0, 0, 0));
pixels2.show();
}
//rainbow sparkle
for (int a=0; a<200; a++)
{
long w= random(0,NUMPIXELS);
long p= random(0,NUMPIXELS);
long q= random(0,NUMPIXELS);
long ww= random(0,NUMPIXELS2);
long pp= random(0,NUMPIXELS2);
long qq= random(0,NUMPIXELS2);
long x= random(0,255);
long y= random(0,255);
long z= random(0,255);
long xx= random(0,255);
long yy= random(0,255);
long zz= random(0,255);
long xxx= random(0,255);
long yyy= random(0,255);
long zzz= random(0,255);
pixels.setPixelColor(w, pixels.Color(x, y, z));
pixels.show();
pixels.setPixelColor(p, pixels.Color(xx, yy, zz));
pixels.show();
pixels.setPixelColor(q, pixels.Color(xxx, yyy, zzz));
pixels.show();
pixels2.setPixelColor(ww, pixels2.Color(x, y, z));
pixels2.show();
pixels2.setPixelColor(pp, pixels2.Color(xx, yy, zz));
pixels2.show();
pixels2.setPixelColor(qq, pixels2.Color(xxx, yyy, zzz));
pixels2.show();
delay(200);
pixels.setPixelColor(w, pixels.Color(0, 0, 0));
pixels.show();
pixels.setPixelColor(p, pixels.Color(0, 0, 0));
pixels.show();
pixels.setPixelColor(q, pixels.Color(0, 0, 0));
pixels.show();
pixels2.setPixelColor(ww, pixels2.Color(0, 0, 0));
pixels2.show();
pixels2.setPixelColor(pp, pixels2.Color(0, 0, 0));
pixels2.show();
pixels2.setPixelColor(qq, pixels2.Color(0, 0, 0));
pixels2.show();
}
//fade into blue
for (int s=0; s<125; s++){
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 0, s));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(0, 0, s));
pixels.show();
for (int f=0; f<5; f++)
{
s++;
}
}
}
//fade every other to pink
for (int r=0; r<125; r++) {
for(int i=0; i<NUMPIXELS; i++) {
if (i % 2 == 0) {
pixels.setPixelColor(i, pixels.Color(r, 0, 125));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(r, 0, 125));
pixels2.show();
for (int f=0; f<5; f++)
{
r++;
}
}
}
}
//blue/pink marquee
for (int f=0; f<5; f++){
for(int i=0; i<NUMPIXELS; i++) {
if (i % 2 == 0) {
pixels.setPixelColor(i, pixels.Color(0, 0, 125));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(0, 0, 125));
pixels2.show();
}
else {
pixels.setPixelColor(i, pixels.Color(63, 0, 63));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(63, 0, 63));
pixels2.show();
}
}
delay (100);
for(int i=0; i<NUMPIXELS; i++) {
if (i % 2 == 0) {
pixels.setPixelColor(i, pixels.Color(63, 0, 63));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(63, 0, 63));
pixels2.show();
}
else {
pixels.setPixelColor(i, pixels.Color(0, 0, 125));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(0, 0, 125));
pixels2.show();
}
}
delay (100);
}
//fade all to pink
for (int r=0; r<63; r++) {
for(int i=0; i<NUMPIXELS; i++) {
if (i % 2 ==! 0) {
pixels.setPixelColor(i, pixels.Color(r, 0, 63));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(r, 0, 63));
pixels2.show();
r++;
}
}
}
//reverse wash out
for (int s=NUMPIXELS; s>0; s--){
pixels.setPixelColor(s, pixels.Color(0, 0, 0));
pixels.show();
pixels2.setPixelColor(s-122, pixels2.Color(0, 0, 0));
pixels2.show();
delay(DELAYVAL300);
}
//end of 5 minute code
for (int p = 0; p<55; p++)
{
int x=0;
int y = 50;
//blue set and sparkle
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 0, y));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(0, 0, y));
pixels2.show();
}
for (int a=0; a<60; a++)
{
long w= random(0,NUMPIXELS);
pixels.setPixelColor(w, pixels.Color(255, 255, 255));
pixels.show();
pixels2.setPixelColor(w, pixels2.Color(255, 255, 255));
pixels2.show();
delay(225);
pixels.setPixelColor(w, pixels.Color(0, x, y));
pixels2.setPixelColor(w, pixels2.Color(0, x, y));
pixels2.show();
}
//green shift, 225 delayvals
for (int z = 0; z<50; z++){
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, x, y));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(0, x, y));
pixels2.show();
}
delay(DELAYVAL);
y--;
x++; }
//sparkle, 450 delayvals
for (int a=0; a<60; a++)
{
long w= random(0,NUMPIXELS);
pixels.setPixelColor(w, pixels.Color(255, 255, 255));
pixels.show();
pixels2.setPixelColor(w, pixels2.Color(255, 255, 255));
pixels2.show();
delay(225);
pixels.setPixelColor(w, pixels.Color(0, x, y));
pixels.show();
pixels2.setPixelColor(w, pixels2.Color(0, x, y));
pixels2.show();
}
//shift to blue, 255 delayvals
for (int p = 0; p<50; p++){
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, x, y));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(0, x, y));
pixels2.show();
}
delay(DELAYVAL);
y++;
x--; }
}
//end of 12 hour daytime loop
//begin 12 hour nighttime loop-- 2400 repetitions of 30-second loop
for (int q=0; q<2400; q++)
{
int x=0;
int y=0;
int z=120;
for (int t=0; t<50; t++) //red to green
{
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(z, x, y));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(z, x, y));
pixels2.show();
}
delay(DELAYVAL2);
z--;
x++;
}
for (int t=0; t<50; t++) //green to blue
{
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(z, x, y));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(z, x, y));
pixels2.show();
}
delay(DELAYVAL2);
y++;
x--;
}
for (int t=0; t<50; t++) //blue to red
{
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(z, x, y));
pixels.show();
pixels2.setPixelColor(i, pixels2.Color(z, x, y));
pixels2.show();
}
delay(DELAYVAL2);
y--;
z++;
}
}
}
}