so far all i have is blink all leds on and off a few times then go green then yellow then red. This is my "default" code that i have been playing with but nothing woth saving beyond this. This is pretty much straight out of adafruits tutorials. I threw in some serial print stuff to see what the button was doing but it wont read unpressed untill the whole sequence is over. After the sequence it turns off and i have to press the button twice to get it back on to run the sequence.
int switchPin = 2; // switch is connected to pin 2
int redPin = 12;
int yellowPin = 11;
int greenPin = 10;
int val; // variable for reading the pin status
int val2; // variable for reading the delayed/debounced status
int buttonState; // variable to hold the button state
int lightMode = 0; // Is the light on or off?
void setup() {
pinMode(switchPin, INPUT); // Set the switch pin as input
pinMode(redPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(greenPin, OUTPUT);
Serial.begin(9600); // Set up serial communication at 9600bps
buttonState = digitalRead(switchPin); // read the initial state
}
void loop(){
val = digitalRead(switchPin); // read input value and store it in val
delay(10); // 10 milliseconds is a good amount of time
val2 = digitalRead(switchPin); // read the input again to check for bounces
if (val == val2) { // make sure we got 2 consistant readings!
if (val != buttonState) { // the button state has changed!
if (val == LOW) { // check if the button is pressed
if (lightMode == 0) { // is the light off?
lightMode = 1; // turn light on!
digitalWrite(greenPin, LOW); // sets the Green LED on
digitalWrite(yellowPin, LOW); // sets the Yellow LED off
digitalWrite(redPin, LOW); // sets the Red LED off
delay(250);
digitalWrite(greenPin, HIGH); // sets the Green LED on
digitalWrite(yellowPin, HIGH); // sets the Yellow LED off
digitalWrite(redPin, HIGH); // sets the Red LED off
delay(250);
digitalWrite(greenPin, LOW); // sets the Green LED on
digitalWrite(yellowPin, LOW); // sets the Yellow LED off
digitalWrite(redPin, LOW); // sets the Red LED off
delay(250);
digitalWrite(greenPin, HIGH); // sets the Green LED on
digitalWrite(yellowPin, HIGH); // sets the Yellow LED off
digitalWrite(redPin, HIGH); // sets the Red LED off
delay(250);
digitalWrite(greenPin, LOW); // sets the Green LED on
digitalWrite(yellowPin, LOW); // sets the Yellow LED off
digitalWrite(redPin, LOW); // sets the Red LED off
delay(250);
digitalWrite(greenPin, HIGH); // sets the Green LED on
digitalWrite(yellowPin, HIGH); // sets the Yellow LED off
digitalWrite(redPin, HIGH); // sets the Red LED off
delay(250);
digitalWrite(greenPin, HIGH); // sets the Green LED on
digitalWrite(yellowPin, LOW); // sets the Yellow LED off
digitalWrite(redPin, LOW); // sets the Red LED off
delay(10000); // waits for a second
digitalWrite(greenPin, LOW); // sets the Green LED on
digitalWrite(yellowPin, HIGH); // sets the Yellow LED off
digitalWrite(redPin, LOW); // sets the Red LED off
delay(10000); // waits for a second
digitalWrite(greenPin, LOW); // sets the Red LED off
digitalWrite(yellowPin, LOW); // sets the Yellow LED off
digitalWrite(redPin, HIGH); // sets the Green LED off
delay(10000); // waits for half a second
digitalWrite(greenPin, LOW); // sets the Green LED on
digitalWrite(yellowPin, LOW); // sets the Yellow LED off
digitalWrite(redPin, LOW); // sets the Red LED off
delay(250);
digitalWrite(greenPin, HIGH); // sets the Green LED on
digitalWrite(yellowPin, HIGH); // sets the Yellow LED off
digitalWrite(redPin, HIGH); // sets the Red LED off
delay(250);
digitalWrite(greenPin, LOW); // sets the Green LED on
digitalWrite(yellowPin, LOW); // sets the Yellow LED off
digitalWrite(redPin, LOW); // sets the Red LED off
delay(250);
digitalWrite(greenPin, HIGH); // sets the Green LED on
digitalWrite(yellowPin, HIGH); // sets the Yellow LED off
digitalWrite(redPin, HIGH); // sets the Red LED off
delay(250);
digitalWrite(greenPin, LOW); // sets the Green LED on
digitalWrite(yellowPin, LOW); // sets the Yellow LED off
digitalWrite(redPin, LOW); // sets the Red LED off
delay(250);
digitalWrite(greenPin, HIGH); // sets the Green LED on
digitalWrite(yellowPin, HIGH); // sets the Yellow LED off
digitalWrite(redPin, HIGH); // sets the Red LED off
delay(250);
digitalWrite(greenPin, LOW); // sets the Green LED on
digitalWrite(yellowPin, LOW); // sets the Yellow LED off
digitalWrite(redPin, LOW); // sets the Red LED off
} else {
lightMode = 0; // turn light off!
}
}
}
buttonState = val; // save the new state in our variable
}
}
I get the blocking part and thats why my button wont read until the sequence is done. I figured that out with the serial monitor. I guess my next step would be to mes around with the examples you provided until i get the desired behavior with my 3 leds but im not sure where to throw my button code in there.