Since there are a few boards floating around, here it the code that used for it
// This is full code for The TDI L2S project - open source, no warranty, blah blah
// Written by @TechGirlMN includes bits borrowed from Adafruit and Arduino
//
#define BUTTON_PIN 0 // Digital IO pin connected to the button. This will be
// driven with a pull-up resistor so the switch should
// pull the pin to ground momentarily. On a high -> low
// transition the button press logic will execute.
#define LED_1 1 // Digital IO pin connected to LED 1
#define LED_2 2 // Digital IO pin connected to LED 2
#define LED_3 3 // Digital IO pin connected to LED 3
#define LED_4 4 // Digital IO pin connected to LED 4
bool oldState = HIGH;
int showType = 0;
int timer = 75;
int timer2 = 25;
int RandLed = 0;
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop() {
// Get current button state.
bool newState = digitalRead(BUTTON_PIN);
// Check if state changed from high to low (button press).
if (newState == LOW && oldState == HIGH) {
// Short delay to debounce button.
delay(20);
// Check if button is still low after debounce.
newState = digitalRead(BUTTON_PIN);
if (newState == LOW) {
showType++;
if (showType > 3)
showType = 0;
startShow(showType);
}
}
// Set the last button state to the old state.
oldState = newState;
startShow(showType);
}
void startShow(int i) {
switch (i) {
case 0: Scanner();
break;
case 1: Random();
break;
case 2: Blink();
break;
case 3: Pulse();
break;
}
}
// A back and forth animation made popular by the TV show Night Rider
void Scanner() {
digitalWrite(LED_1, HIGH);
delay(timer2);
digitalWrite(LED_1, LOW);
digitalWrite(LED_2, HIGH);
delay(timer2);
digitalWrite(LED_2, LOW);
digitalWrite(LED_3, HIGH);
delay(timer2);
digitalWrite(LED_4, HIGH);
digitalWrite(LED_3, LOW);
delay(timer2);
digitalWrite(LED_4, LOW);
digitalWrite(LED_3, HIGH);
delay(timer2);
digitalWrite(LED_2, HIGH);
digitalWrite(LED_3, LOW);
delay(timer2);
digitalWrite(LED_2, LOW);
}
//Random lights go on or off
void Random() {
RandLed = random(1, 5);
switch (RandLed) {
case 1: digitalWrite(LED_1, HIGH);
delay(timer);
digitalWrite(LED_1, LOW);
break;
case 2: digitalWrite(LED_2, HIGH);
delay(timer);
digitalWrite(LED_2, LOW);
break;
case 3: digitalWrite(LED_3, HIGH);
delay(timer);
digitalWrite(LED_3, LOW);;
break;
case 4: digitalWrite(LED_4, HIGH);
delay(timer);
digitalWrite(LED_4, LOW);
break;
}
}
// all on all off
void Blink() {
digitalWrite(LED_1, HIGH);
digitalWrite(LED_2, HIGH);
digitalWrite(LED_3, HIGH);
digitalWrite(LED_4, HIGH);
delay(timer);
digitalWrite(LED_4, LOW);
digitalWrite(LED_3, LOW);
digitalWrite(LED_2, LOW);
digitalWrite(LED_1, LOW);
delay(timer);
}
//Theatre-style crawling lights.
void Pulse() {
digitalWrite(LED_3, HIGH);
digitalWrite(LED_1, HIGH);
digitalWrite(LED_2, LOW);
digitalWrite(LED_4, LOW);
delay(timer);
digitalWrite(LED_1, LOW);
digitalWrite(LED_3, LOW);
digitalWrite(LED_4, HIGH);
digitalWrite(LED_2, HIGH);
delay(timer);
}