This is brilliant! My project is very similar in function but uses 4 buttons and 13 LEDs, written with simple digitalWrites() and delays(). Obviously, any button push is hit/miss with all the delay statements. I never thought to write a time holder in place of the delays, how simple is that!? I will share my results when I finish the setup. Thank you for sharing this.
EDIT: Here is what I came up with using your sketch. Yes, I still have some cleanup to do. I'm looking into more options to simplify also, as this version has more lines than my original plan. However, this one functions very well in response to button pushes. Thank you again for sharing this and to everyone else who has been helpful on the subject. I'm just 5 days into learning this stuff and have gained only a drop of water compared to the ocean, but love to explore!
const int LED1 = 31; // blue
const int LED2 = 33; // blue
const int LED3 = 35; // white
const int LED4 = 37; // white
const int LED5 = 39; // white
const int LED6 = 41; // white
const int LED7 = 43; // blue
const int LED8 = 45; // blue
// lower lights
const int LED9 = 2; // white
const int LED10 = 3; // blue
const int LED11 = 5; // blue
const int LED12 = 6; // white
// in cab
const int LED13 = 12; // red indicator
int buttonPin3 = 18; // left TA
int buttonPin = 19; // case +
int buttonPin2 = 21; // case -
int buttonPin4 = 20; // right TA
int initial = 0;
int oldstate = 0;
int buttonstate = 0;
int myTime = (millis); // Variable for flash control
void setup() {
Serial.begin(9600); // Initialize Serial
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED7, OUTPUT);
pinMode(LED8, OUTPUT);
pinMode(LED9, OUTPUT);
pinMode(LED10, OUTPUT);
pinMode(LED11, OUTPUT);
pinMode(LED12, OUTPUT);
pinMode(LED13, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
pinMode(buttonPin2, INPUT_PULLUP);
pinMode(buttonPin3, INPUT_PULLUP);
pinMode(buttonPin4, INPUT_PULLUP);
}
void Power_On() { // Red Indicator on
digitalWrite(LED13, HIGH);
}
void WigWag() { // BLUE x4
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
//WHITE X4
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED11, HIGH);
mydelay(70);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED11, LOW);
mydelay(70);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED11, HIGH);
mydelay(70);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED11, LOW);
mydelay(70);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED11, HIGH);
mydelay(70);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED11, LOW);
mydelay(70);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED11, HIGH);
mydelay(70);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED11, LOW);
mydelay(70);
}
void Blue_White() { //ALL BLUE X4
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
mydelay(70);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
mydelay(70);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
mydelay(70);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
mydelay(70);
//ALL WHITE X4
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
}
void Double_Pulse() { //2x Fast
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(50);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(200); //Longer Pause Mid Cycle
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(50);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(700);
}
void Ping_Pong() { // Left to Right
digitalWrite(LED1, HIGH);
digitalWrite(LED9, HIGH);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
mydelay(70);
digitalWrite(LED2, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED3, HIGH);
digitalWrite(LED10, HIGH);
mydelay(70);
digitalWrite(LED3, LOW);
digitalWrite(LED4, HIGH);
mydelay(70);
digitalWrite(LED4, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED5, HIGH);
digitalWrite(LED11, HIGH);
mydelay(70);
digitalWrite(LED5, LOW);
digitalWrite(LED6, HIGH);
mydelay(70);
digitalWrite(LED6, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED7, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED7, LOW);
digitalWrite(LED8, HIGH);
mydelay(140);
// Right to Left
digitalWrite(LED8, LOW);
digitalWrite(LED12, LOW);
digitalWrite(LED7, HIGH);
digitalWrite(LED11, HIGH);
mydelay(70);
digitalWrite(LED7, LOW);
digitalWrite(LED6, HIGH);
mydelay(70);
digitalWrite(LED6, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED5, HIGH);
digitalWrite(LED10, HIGH);
mydelay(70);
digitalWrite(LED5, LOW);
digitalWrite(LED4, HIGH);
mydelay(70);
digitalWrite(LED4, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED3, HIGH);
digitalWrite(LED9, HIGH);
mydelay(70);
digitalWrite(LED3, LOW);
digitalWrite(LED2, HIGH);
mydelay(70);
digitalWrite(LED2, LOW);
digitalWrite(LED1, HIGH);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED9, LOW);
}
void Pulse_and_Sweep() {
// ALL BLUE X2
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
mydelay(100);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
mydelay(70);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
mydelay(100);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
mydelay(70);
// LEFT TO RIGHT
digitalWrite(LED1, HIGH);
digitalWrite(LED9, HIGH);
delay(50);
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
mydelay(50);
digitalWrite(LED2, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED3, HIGH);
digitalWrite(LED10, HIGH);
mydelay(50);
digitalWrite(LED3, LOW);
digitalWrite(LED4, HIGH);
mydelay(50);
digitalWrite(LED4, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED5, HIGH);
digitalWrite(LED11, HIGH);
mydelay(50);
digitalWrite(LED5, LOW);
digitalWrite(LED6, HIGH);
mydelay(50);
digitalWrite(LED6, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED7, HIGH);
digitalWrite(LED12, HIGH);
mydelay(50);
digitalWrite(LED7, LOW);
digitalWrite(LED8, HIGH);
mydelay(50);
digitalWrite(LED8, LOW);
digitalWrite(LED12, LOW);
mydelay(50);
// ALL WHITE X2
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED12, HIGH);
mydelay(100);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED12, HIGH);
mydelay(100);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
// RIGHT TO LEFT
digitalWrite(LED8, HIGH);
digitalWrite(LED12, HIGH);
mydelay(50);
digitalWrite(LED8, LOW);
digitalWrite(LED7, HIGH);
mydelay(50);
digitalWrite(LED7, LOW);
digitalWrite(LED12, LOW);
digitalWrite(LED6, HIGH);
digitalWrite(LED11, HIGH);
mydelay(50);
digitalWrite(LED6, LOW);
digitalWrite(LED5, HIGH);
mydelay(50);
digitalWrite(LED5, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED4, HIGH);
digitalWrite(LED10, HIGH);
mydelay(50);
digitalWrite(LED4, LOW);
digitalWrite(LED3, HIGH);
mydelay(50);
digitalWrite(LED3, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED2, HIGH);
digitalWrite(LED9, HIGH);
mydelay(50);
digitalWrite(LED2, LOW);
digitalWrite(LED1, HIGH);
mydelay(50);
digitalWrite(LED1, LOW);
digitalWrite(LED9, LOW);
mydelay(50);
}
void Jumpy() { // Rapid Pulses
digitalWrite(LED4, HIGH);
digitalWrite(LED12, HIGH);
mydelay(30);
digitalWrite(LED4, LOW);
digitalWrite(LED12, LOW);
mydelay(50);
digitalWrite(LED4, HIGH);
digitalWrite(LED12, HIGH);
mydelay(30);
digitalWrite(LED4, LOW);
digitalWrite(LED12, LOW);
mydelay(50);
digitalWrite(LED7, HIGH);
digitalWrite(LED12, HIGH);
mydelay(30);
digitalWrite(LED7, LOW);
digitalWrite(LED12, LOW);
mydelay(50);
digitalWrite(LED7, HIGH);
digitalWrite(LED12, HIGH);
mydelay(30);
digitalWrite(LED7, LOW);
digitalWrite(LED12, LOW);
mydelay(50);
digitalWrite(LED3, HIGH);
digitalWrite(LED10, HIGH);
mydelay(30);
digitalWrite(LED3, LOW);
digitalWrite(LED10, LOW);
mydelay(50);
digitalWrite(LED3, HIGH);
digitalWrite(LED10, HIGH);
mydelay(30);
digitalWrite(LED3, LOW);
digitalWrite(LED10, LOW);
mydelay(50);
digitalWrite(LED2, HIGH);
digitalWrite(LED10, HIGH);
mydelay(30);
digitalWrite(LED2, LOW);
digitalWrite(LED10, LOW);
mydelay(50);
digitalWrite(LED2, HIGH);
digitalWrite(LED10, HIGH);
mydelay(30);
digitalWrite(LED2, LOW);
digitalWrite(LED10, LOW);
mydelay(50);
digitalWrite(LED6, HIGH);
digitalWrite(LED11, HIGH);
mydelay(30);
digitalWrite(LED6, LOW);
digitalWrite(LED11, LOW);
mydelay(50);
digitalWrite(LED6, HIGH);
digitalWrite(LED11, HIGH);
mydelay(30);
digitalWrite(LED6, LOW);
digitalWrite(LED11, LOW);
mydelay(50);
digitalWrite(LED8, HIGH);
digitalWrite(LED11, HIGH);
mydelay(30);
digitalWrite(LED8, LOW);
digitalWrite(LED11, LOW);
mydelay(50);
digitalWrite(LED8, HIGH);
digitalWrite(LED11, HIGH);
mydelay(30);
digitalWrite(LED8, LOW);
digitalWrite(LED11, LOW);
mydelay(50);
digitalWrite(LED1, HIGH);
digitalWrite(LED9, HIGH);
mydelay(30);
digitalWrite(LED1, LOW);
digitalWrite(LED9, LOW);
mydelay(50);
digitalWrite(LED1, HIGH);
digitalWrite(LED9, HIGH);
mydelay(30);
digitalWrite(LED1, LOW);
digitalWrite(LED9, LOW);
mydelay(50);
digitalWrite(LED5, HIGH);
digitalWrite(LED9, HIGH);
mydelay(30);
digitalWrite(LED5, LOW);
digitalWrite(LED9, LOW);
mydelay(50);
digitalWrite(LED5, HIGH);
digitalWrite(LED9, HIGH);
mydelay(30);
digitalWrite(LED5, LOW);
digitalWrite(LED9, LOW);
mydelay(50);
// All Pulse
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(30);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(30);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(50);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(50);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(50);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(30);
// Sweep Right to Left
digitalWrite(LED8, HIGH);
digitalWrite(LED12, HIGH);
mydelay(50);
digitalWrite(LED8, LOW);
digitalWrite(LED7, HIGH);
mydelay(50);
digitalWrite(LED7, LOW);
digitalWrite(LED12, LOW);
digitalWrite(LED6, HIGH);
digitalWrite(LED11, HIGH);
mydelay(50);
digitalWrite(LED6, LOW);
digitalWrite(LED5, HIGH);
mydelay(50);
digitalWrite(LED5, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED4, HIGH);
digitalWrite(LED10, HIGH);
mydelay(50);
digitalWrite(LED4, LOW);
digitalWrite(LED3, HIGH);
mydelay(50);
digitalWrite(LED3, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED2, HIGH);
digitalWrite(LED9, HIGH);
mydelay(50);
digitalWrite(LED2, LOW);
digitalWrite(LED1, HIGH);
mydelay(50);
digitalWrite(LED1, LOW);
digitalWrite(LED9, LOW);
mydelay(50);
// Sweep Left to Right
digitalWrite(LED1, HIGH);
digitalWrite(LED9, HIGH);
mydelay(50);
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
mydelay(50);
digitalWrite(LED2, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED3, HIGH);
digitalWrite(LED10, HIGH);
mydelay(50);
digitalWrite(LED3, LOW);
digitalWrite(LED4, HIGH);
mydelay(50);
digitalWrite(LED4, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED5, HIGH);
digitalWrite(LED11, HIGH);
mydelay(50);
digitalWrite(LED5, LOW);
digitalWrite(LED6, HIGH);
mydelay(50);
digitalWrite(LED6, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED7, HIGH);
digitalWrite(LED12, HIGH);
mydelay(50);
digitalWrite(LED7, LOW);
digitalWrite(LED8, HIGH);
mydelay(50);
digitalWrite(LED8, LOW);
digitalWrite(LED12, LOW);
mydelay(50);
// Sweep Right to Left
digitalWrite(LED8, HIGH);
digitalWrite(LED12, HIGH);
mydelay(50);
digitalWrite(LED8, LOW);
digitalWrite(LED7, HIGH);
mydelay(50);
digitalWrite(LED7, LOW);
digitalWrite(LED12, LOW);
digitalWrite(LED6, HIGH);
digitalWrite(LED11, HIGH);
mydelay(50);
digitalWrite(LED6, LOW);
digitalWrite(LED5, HIGH);
mydelay(50);
digitalWrite(LED5, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED4, HIGH);
digitalWrite(LED10, HIGH);
mydelay(50);
digitalWrite(LED4, LOW);
digitalWrite(LED3, HIGH);
mydelay(50);
digitalWrite(LED3, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED2, HIGH);
digitalWrite(LED9, HIGH);
mydelay(50);
digitalWrite(LED2, LOW);
digitalWrite(LED1, HIGH);
mydelay(50);
digitalWrite(LED1, LOW);
digitalWrite(LED9, LOW);
mydelay(50);
// Sweep Left to Right
digitalWrite(LED1, HIGH);
digitalWrite(LED9, HIGH);
mydelay(50);
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
mydelay(50);
digitalWrite(LED2, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED3, HIGH);
digitalWrite(LED10, HIGH);
mydelay(50);
digitalWrite(LED3, LOW);
digitalWrite(LED4, HIGH);
mydelay(50);
digitalWrite(LED4, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED5, HIGH);
digitalWrite(LED11, HIGH);
mydelay(50);
digitalWrite(LED5, LOW);
digitalWrite(LED6, HIGH);
mydelay(50);
digitalWrite(LED6, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED7, HIGH);
digitalWrite(LED12, HIGH);
mydelay(50);
digitalWrite(LED7, LOW);
digitalWrite(LED8, HIGH);
mydelay(50);
digitalWrite(LED8, LOW);
digitalWrite(LED12, LOW);
mydelay(50);
}
void TA_Left() { // +1 LED RIGHT TO LEFT
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
mydelay(100);
digitalWrite(LED9, LOW);
mydelay(75);
digitalWrite(LED7, HIGH);
digitalWrite(LED9, HIGH);
mydelay(175);
digitalWrite(LED6, HIGH);
digitalWrite(LED10, HIGH);
mydelay(100);
digitalWrite(LED10, LOW);
mydelay(75);
digitalWrite(LED5, HIGH);
digitalWrite(LED10, HIGH);
mydelay(175);
digitalWrite(LED4, HIGH);
digitalWrite(LED11, HIGH);
mydelay(100);
digitalWrite(LED11, LOW);
mydelay(75);
digitalWrite(LED3, HIGH);
digitalWrite(LED11, HIGH);
mydelay(175);
digitalWrite(LED2, HIGH);
digitalWrite(LED12, HIGH);
mydelay(100);
digitalWrite(LED12, LOW);
mydelay(75);
digitalWrite(LED1, HIGH);
digitalWrite(LED12, HIGH);
mydelay(175);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
mydelay(175);
// X5 PULSE- ALL LEDS
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(175);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(100);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(200);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(50);
}
void TA_Right() { // +1 LED LEFT TO RIGHT
digitalWrite(LED1, HIGH);
digitalWrite(LED12, HIGH);
mydelay(100);
digitalWrite(LED12, LOW);
mydelay(75);
digitalWrite(LED2, HIGH);
digitalWrite(LED12, HIGH);
mydelay(175);
digitalWrite(LED3, HIGH);
digitalWrite(LED11, HIGH);
mydelay(100);
digitalWrite(LED11, LOW);
mydelay(75);
digitalWrite(LED4, HIGH);
digitalWrite(LED11, HIGH);
mydelay(175);
digitalWrite(LED5, HIGH);
digitalWrite(LED10, HIGH);
mydelay(100);
digitalWrite(LED10, LOW);
mydelay(75);
digitalWrite(LED6, HIGH);
digitalWrite(LED10, HIGH);
mydelay(175);
digitalWrite(LED7, HIGH);
digitalWrite(LED9, HIGH);
mydelay(100);
digitalWrite(LED9, LOW);
mydelay(75);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
mydelay(175);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
delay(175);
// X5 PULSE- ALL LEDS
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(175);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(70);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(70);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(100);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(LED12, HIGH);
mydelay(200);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
digitalWrite(LED11, LOW);
digitalWrite(LED12, LOW);
mydelay(50);
}
void loop() {
mydelay(myTime); // Check button
buttonstate = digitalRead(buttonPin); // Put all this comand on delay routine
if (buttonstate == HIGH) {
delay(20);
buttonstate = digitalRead(buttonPin);
if (buttonstate == LOW)
initial = oldstate + 1;
}
if (buttonstate == HIGH) {
delay(20);
buttonstate = digitalRead(buttonPin2);
if (buttonstate == LOW)
initial = oldstate - 1;
}
if (buttonstate == HIGH) {
delay(20);
buttonstate = digitalRead(buttonPin3);
if (buttonstate == LOW)
initial = oldstate = 8;
}
if (buttonstate == HIGH) {
delay(20);
buttonstate = digitalRead(buttonPin4);
if (buttonstate == LOW)
initial = oldstate = 9;
}
switch (initial) {
case 1: //2
myTime = 0; // Restore delay time
Power_On();
oldstate = initial;
loop();
break;
case 2: //3
myTime = 0; // Restore delay time
WigWag();
oldstate = initial;
loop();
break;
case 3: //4
myTime = 0; // Restore delay time
Blue_White();
oldstate = initial;
loop();
break;
case 4: //5
myTime = 0; // Restore delay time
Double_Pulse();
oldstate = initial;
loop();
break;
case 5: //6
myTime = 0; // Restore delay time
Ping_Pong();
oldstate = initial;
loop();
break;
case 6: //7
myTime = 0; // Restore delay time
Pulse_and_Sweep();
oldstate = initial;
loop();
break;
case 7: //8
myTime = 0; // Restore delay time
Jumpy();
oldstate = initial;
loop();
break;
case 8: //9
myTime = 0; // Restore delay time
TA_Left();
oldstate = initial;
loop();
break;
case 9:
myTime = 0; // Restore delay time
TA_Right();
oldstate = initial;
loop();
break;
default:
myTime = 0; // Restore delay time
digitalWrite(LED13, LOW);
oldstate = 0;
break;
}
}
//-------------------------------------------------------
void mydelay(int time) // Rotine for flash with minimal block
{
for (int i = 0; i < time; i++) // Run delay times
{
delay(1); // Delay 1 milisecond
if (digitalRead(buttonPin) == LOW) // Verify button pressed
{
delay(20); // Debouncing time
if (digitalRead(buttonPin) == CHANGE) // Confirme if button is pressed
{
Serial.println(initial); // Print sequence value
initial = oldstate + 1; // incremente sequence valu
myTime = 0; // Zero mytime to stop next flashing
// Hold to no increase sequence continus
{
delay(1);
if (digitalRead(buttonPin2) == LOW) {
delay(20);
if (digitalRead(buttonPin2) == CHANGE)
{
Serial.println(initial);
initial = oldstate - 1;
myTime = 0;
{
delay(1);
if (digitalRead(buttonPin3) == LOW) {
delay(20);
if (digitalRead(buttonPin3) == CHANGE)
{
Serial.println(initial);
initial = oldstate = 8;
myTime = 0;
{
delay(1);
if (digitalRead(buttonPin4) == LOW) {
delay(20);
if (digitalRead(buttonPin4) == CHANGE)
{
Serial.println(initial);
initial = oldstate = 9;
myTime = 0;
return; // Return to loop
}
}
}
}
}
}
}
}
}
}
}
}
}