// use the FastLED library (someone's pre-written code)
#include <FastLED.h>
// set how many LEDs there are and the data pin.
const int numLeds = 30;
const int ledStripPin = 6;
// this creates an array to reference our LEDs
CRGB leds[numLeds];
void setup() {
// tells the FastLED code e.g. what LEDs we are using, the data pin
FastLED.addLeds<NEOPIXEL, ledStripPin>(leds, numLeds);
// limit the strip's draw to 400mA at 5v
FastLED.setMaxPowerInVoltsAndMilliamps(5, 400);
// turns the brightness down (so my eyes don't hurt)
FastLED.setBrightness(8);
pinMode(2, INPUT_PULLUP);
}
void loop() {
if (digitalRead(2) == LOW) {
rainbowRow();
delay(0);
orangeFlash();
delay(0);
redFlash();
delay(0);
yellowFlash();
delay(0);
twoFlash();
delay(0);
wholeFlash();
delay(0);
}
}
void rainbowRow(){
for (int light=0; light<10; light++) {
leds[light] = CRGB::Blue;
leds[10+light] = CRGB::Aqua;
leds[20+light]= CRGB::LightCyan;
FastLED.show();
delay(33);
}
for (int light=0; light<10; light++){
leds[light] = CRGB::Black;
leds[10+light]=CRGB::Black;
leds[20+light] = CRGB::Black;
}
FastLED.show();
delay(0);
}
void orangeFlash() {
for(int run =0 ; run<9; run++){
int randomNumber = random(0, 30);
leds[randomNumber] = CRGB::Orange;
FastLED.show();
delay(150);
leds[randomNumber] = CRGB::Black;
FastLED.show();
delay(50);
//copy paste code 5 times or until 6 seconds worth of flashing ig
}
}
void redFlash() {
for(int run =0 ; run<12; run++){
int randomNumber = random(0, 30);
leds[randomNumber] = CRGB::Red;
FastLED.show();
delay(150);
leds[randomNumber] = CRGB::Black;
FastLED.show();
delay(50);
//copy paste code 5 times or until 6 seconds worth of flashing ig
}
}
void yellowFlash(){
for (int run = 0 ; run<19; run++){
int randomNumber = random(0, 30);
leds[randomNumber] = CRGB::Gold;
FastLED.show();
delay(150);
leds[randomNumber] = CRGB::Black;
FastLED.show();
delay(50);
//copy paste code 5 times or until 6 seconds worth of flashing ig
}
}
void twoFlash(){
for (int light = 0 ; light<19; light+=2){
leds[light] = CRGB::Salmon;
FastLED.show();
delay(250);
leds[light] = CRGB::Black;
leds[light+1] = CRGB::Black;
FastLED.show();
delay(10);
leds[light] = CRGB::DarkRed;
leds[light+1] = CRGB::DarkRed;
FastLED.show();
delay(75);
leds[light] = CRGB::Black;
leds[light+1] = CRGB::Black;
FastLED.show();
delay(10);
//start short two quavers
leds[light] = CRGB::DarkRed;
leds[light+1] = CRGB::DarkRed;
FastLED.show();
delay(400);
leds[light] = CRGB::Black;
leds[light+1] = CRGB::Black;
FastLED.show();
delay(10);
leds[light] = CRGB::DarkRed;
leds[light+1] = CRGB::DarkRed;
FastLED.show();
delay(400);
//end short
leds[light] = CRGB::Black;
leds[light+1] = CRGB::Black;
FastLED.show();
delay(25);
leds[light] = CRGB::DarkRed;
leds[light+1] = CRGB::DarkRed;
FastLED.show();
delay(400);
leds[light] = CRGB::Black;
leds[light+1] = CRGB::Black;
FastLED.show();
delay(25);
}
}
void wholeFlash(){
for (int light = 0 ; light<30; light++){
leds[light] = CRGB::Salmon;
FastLED.show();
delay(250);
leds[light] = CRGB::Black;
leds[light+1] = CRGB::Black;
FastLED.show();
delay(10);
leds[light] = CRGB::DarkRed;
leds[light+1] = CRGB::DarkRed;
FastLED.show();
delay(75);
leds[light] = CRGB::Black;
leds[light+1] = CRGB::Black;
FastLED.show();
delay(10);
leds[light] = CRGB::DarkRed;
leds[light+1] = CRGB::DarkRed;
FastLED.show();
delay(400);
leds[light] = CRGB::Black;
leds[light+1] = CRGB::Black;
FastLED.show();
delay(10);
leds[light] = CRGB::DarkRed;
leds[light+1] = CRGB::DarkRed;
FastLED.show();
delay(400);
leds[light] = CRGB::Black;
leds[light+1] = CRGB::Black;
FastLED.show();
delay(25);
leds[light] = CRGB::DarkRed;
leds[light+1] = CRGB::DarkRed;
FastLED.show();
delay(400);
leds[light] = CRGB::Black;
leds[light+1] = CRGB::Black;
FastLED.show();
delay(25);
}
}