Here is the code i am using
[Edit - moderator - fixed code block]
Code: Select all
/*
* Bike light, final version
*/
int switchPin = 2; // switch is connected to pin 2
int led1Pin = 13;
int led2Pin = 12;
int led3Pin = 11;
int led4Pin = 10;
int led5Pin = 9;
int led6Pin = 8;
int led7Pin = 7;
int led8Pin = 6;
int led9Pin = 5;
int led10Pin = 4;
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);
pinMode(led8Pin, OUTPUT);
pinMode(led9Pin, OUTPUT);
pinMode(led10Pin, 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) { // if its off
lightMode = 1; // turn lights on!
} else {
if (lightMode == 1) { // if its all-on
lightMode = 2; // make it blink!
} else {
if (lightMode == 2) { // if its blinking
lightMode = 3; // make it wave!
} else {
if (lightMode == 3) { // if its waving
lightMode = 4; // make it dubble wave!
} else {
if (lightMode == 4) { // if its dubble waving
lightMode = 0; // make it turn off!
}
}
}
}
}
buttonState = val; // save the new state in our variable
}
// Now do whatever the lightMode indicates
if (lightMode == 0) { // all-off
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, LOW);
digitalWrite(led7Pin, LOW);
digitalWrite(led8Pin, LOW);
digitalWrite(led9Pin, LOW);
digitalWrite(led10Pin, LOW);
}
if (lightMode == 1) { // all-on
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, HIGH);
digitalWrite(led4Pin, HIGH);
digitalWrite(led5Pin, HIGH);
digitalWrite(led6Pin, HIGH);
digitalWrite(led7Pin, HIGH);
digitalWrite(led8Pin, HIGH);
digitalWrite(led9Pin, HIGH);
digitalWrite(led10Pin, HIGH);
}
if (lightMode == 2) { // blinking
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, HIGH);
digitalWrite(led4Pin, HIGH);
digitalWrite(led5Pin, HIGH);
digitalWrite(led6Pin, HIGH);
digitalWrite(led7Pin, HIGH);
digitalWrite(led8Pin, HIGH);
digitalWrite(led9Pin, HIGH);
digitalWrite(led10Pin, HIGH);
delay(500);
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, LOW);
digitalWrite(led7Pin, LOW);
digitalWrite(led8Pin, LOW);
digitalWrite(led9Pin, LOW);
digitalWrite(led10Pin, LOW);
delay(500);
}
if (lightMode == 3) { // "wave"
digitalWrite(led10Pin, LOW);
digitalWrite(led1Pin, HIGH);
delay(50);
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, HIGH);
delay(50);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, HIGH);
delay(50);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, HIGH);
delay(50);
digitalWrite(led4Pin, LOW);
digitalWrite(led5Pin, HIGH);
delay(50);
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, HIGH);
delay(50);
digitalWrite(led6Pin, LOW);
digitalWrite(led7Pin, HIGH);
delay(50);
digitalWrite(led7Pin, LOW);
digitalWrite(led8Pin, HIGH);
delay(50);
digitalWrite(led8Pin, LOW);
digitalWrite(led9Pin, HIGH);
delay(50);
digitalWrite(led9Pin, LOW);
digitalWrite(led10Pin, HIGH);
delay(50);
}
if (lightMode == 4) { // "dubble wave"
digitalWrite(led1Pin, LOW);
digitalWrite(led1Pin, HIGH);
delay(50);
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, HIGH);
delay(50);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, HIGH);
delay(50);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, HIGH);
delay(50);
digitalWrite(led4Pin, LOW);
digitalWrite(led5Pin, HIGH);
delay(50);
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, HIGH);
delay(50);
digitalWrite(led6Pin, LOW);
digitalWrite(led7Pin, HIGH);
delay(50);
digitalWrite(led7Pin, LOW);
digitalWrite(led8Pin, HIGH);
delay(50);
digitalWrite(led8Pin, LOW);
digitalWrite(led9Pin, HIGH);
delay(50);
digitalWrite(led9Pin, LOW);
digitalWrite(led10Pin, HIGH);
delay(50);
digitalWrite(led10Pin, LOW);
digitalWrite(led9Pin, HIGH);
delay(50);
digitalWrite(led9Pin, LOW);
digitalWrite(led8Pin, HIGH);
delay(50);
digitalWrite(led8Pin, LOW);
digitalWrite(led7Pin, HIGH);
delay(50);
digitalWrite(led7Pin, LOW);
digitalWrite(led6Pin, HIGH);
delay(50);
digitalWrite(led6Pin, LOW);
digitalWrite(led5Pin, HIGH);
delay(50);
digitalWrite(led5Pin, LOW);
digitalWrite(led4Pin, HIGH);
delay(50);
digitalWrite(led4Pin, LOW);
digitalWrite(led3Pin, HIGH);
delay(50);
digitalWrite(led3Pin, LOW);
digitalWrite(led2Pin, HIGH);
delay(50);
digitalWrite(led2Pin, LOW);
digitalWrite(led1Pin, HIGH);
delay(50);
}
}}}