Hi everyone,
I am working on a project that takes 7 leds, and with 2 push buttons to click up and down through the leds.
So it would start with led 2 and then click up one at a time to led 6. Then I also want have a button that will shift the lights down from 6 to 1.
Here is the code I have so far. It won't compile. But the last working version shifts the lights properly one way. Can I ask you guys for some help.
How would I get the second button to work to shuffle the lights down?
And can anyone tell why this won't compile. It was compiling, and now it won't.
Thanks,
Tim
int switchPin = 9; // switch is connected to pin 9
int led1Pin = 8;
int led2Pin = 7;
int led3Pin = 6;
int led4Pin = 5;
int led5Pin = 4;
int led6Pin = 3;
int led7Pin = 2;
int val; // variable for reading the pin status
int val2; // variable for reading the delayed status
int buttonState; // variable to hold the button state
int lightMode = 0; // What mode is the light in?
void setup() {
pinMode(switchPin, INPUT); // Set the switch pin as input
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
pinMode(led4Pin, OUTPUT);
pinMode(led5Pin, OUTPUT);
pinMode(led6Pin, OUTPUT);
pinMode(led7Pin, 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) { // Reverse gear
lightMode = 1; // 1st gear
} else {
if (lightMode == 1) { // if its 1st gear
lightMode = 2; // make it 2nd gear
} else {
if (lightMode == 2) { // if 2nd gear
lightMode = 3; // make it 3rd gear
} else {
if (lightMode == 3) { // if its 3rd gear,
lightMode = 4; // turn to 4th gear!
} else {
if (lightMode == 4) { // if 4th gear
lightMode = 5; // make it 5th gear
} else {
if (lightMode == 5) { // if its 5th gear,
lightMode = 6; // turn to 6th gear!
}
}
}
}
}
}
buttonState = val; // save the new state in our variable
}
// Now do whatever the lightMode indicates
if (lightMode == 0) { // Reverse gear
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, LOW);
digitalWrite(led7Pin, LOW);
}
if (lightMode == 1) { // 1 gear
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, LOW);
digitalWrite(led7Pin, LOW);
}
if (lightMode == 2) { // 2 gear
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, HIGH);
digitalWrite(led4Pin, LOW);
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, LOW);
digitalWrite(led7Pin, LOW);
}
if (lightMode == 3) { // "3 gear"
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, HIGH);
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, LOW);
digitalWrite(led7Pin, LOW);
}
if (lightMode == 4) { // "4 gear"
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
digitalWrite(led5Pin, HIGH);
digitalWrite(led6Pin, LOW);
digitalWrite(led7Pin, LOW);
}
if (lightMode == 5) { // "5 gear"
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, HIGH);
digitalWrite(led7Pin, LOW);
}
if (lightMode == 6) { // "6 gear"
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, LOW);
digitalWrite(led7Pin, HIGH);
}