Hi,
Im trying to create multiple lighting LED effects using a single push button.
Simply :-
1 press turn all LEDs
2nd Press Chaser
3rd Press alternate Blinking
4th Press off
I believe im having issues with Blink without delay as my push button is unresponsive however i cant understand or find an example off this working with multiple leds in the way im trying to do it.
Does anybody have an example one push button led state change without delay i could use? The ultimate goal is to replace the LEDs with RGB and add potentiometers to change the colours.
Any help would be appreciated
Thanks
Lewis
int switchPin = 2;
int LedPin1 = 3;
int LedPin2 = 4;
int LedPin3 = 5;
int LedPin4 = 6;
int LedPin5 = 7;
int LedPin6 = 8;
int LedPin7 = 9;
int LedPin8 = 10;
int LedPin9 = 11;
int LedPin10 = 12;
int val;
int val2;
int buttonState;
int Mode = 0;
int dt = 250;
int dt2 = 750;
byte counter = 0;
void setup() {
pinMode(switchPin, INPUT);
pinMode(LedPin1, OUTPUT);
pinMode(LedPin2, OUTPUT);
pinMode(LedPin3, OUTPUT);
pinMode(LedPin4, OUTPUT);
pinMode(LedPin5, OUTPUT);
pinMode(LedPin6, OUTPUT);
pinMode(LedPin7, OUTPUT);
pinMode(LedPin8, OUTPUT);
pinMode(LedPin9, OUTPUT);
pinMode(LedPin10, OUTPUT);
buttonState = digitalRead(switchPin);
Serial.begin(9600);
}
void loop() {
val = digitalRead(switchPin);
delay(100);
val2 = digitalRead(switchPin);
if (val == val2) {
if (val != buttonState) {
if (val == LOW) {
if (Mode == 0) {
Mode = 1;
} else {
if (Mode == 1) {
Mode = 2;
} else {
if (Mode == 2) {
Mode = 3;
} else {
if (Mode == 3) {
Mode = 0;
}
}
}
}
}
}
buttonState = val;
Serial.println(Mode);
}
if (Mode == 0) { // all-off
digitalWrite(LedPin1, LOW);
digitalWrite(LedPin2, LOW);
digitalWrite(LedPin3, LOW);
digitalWrite(LedPin4, LOW);
digitalWrite(LedPin5, LOW);
digitalWrite(LedPin6, LOW);
digitalWrite(LedPin7, LOW);
digitalWrite(LedPin8, LOW);
digitalWrite(LedPin9, LOW);
digitalWrite(LedPin10, LOW);
}
if (Mode == 1) {
digitalWrite(LedPin1, HIGH);
digitalWrite(LedPin2, HIGH);
digitalWrite(LedPin3, HIGH);
digitalWrite(LedPin4, HIGH);
digitalWrite(LedPin5, HIGH);
digitalWrite(LedPin6, HIGH);
digitalWrite(LedPin7, HIGH);
digitalWrite(LedPin8, HIGH);
digitalWrite(LedPin9, HIGH);
digitalWrite(LedPin10, HIGH);
}
if (Mode == 2) {
digitalWrite(LedPin1, HIGH);
digitalWrite(LedPin2, HIGH);
digitalWrite(LedPin3, HIGH);
digitalWrite(LedPin4, LOW);
digitalWrite(LedPin5, LOW);
digitalWrite(LedPin6, LOW);
digitalWrite(LedPin7, LOW);
digitalWrite(LedPin8, LOW);
digitalWrite(LedPin9, LOW);
digitalWrite(LedPin10, LOW);
delay(dt);
digitalWrite(LedPin1, LOW);
digitalWrite(LedPin2, HIGH);
digitalWrite(LedPin3, HIGH);
digitalWrite(LedPin4, HIGH);
digitalWrite(LedPin5, LOW);
digitalWrite(LedPin6, LOW);
digitalWrite(LedPin7, LOW);
digitalWrite(LedPin8, LOW);
digitalWrite(LedPin9, LOW);
digitalWrite(LedPin10, LOW);
delay(dt);
digitalWrite(LedPin1, LOW);
digitalWrite(LedPin2, LOW);
digitalWrite(LedPin3, HIGH);
digitalWrite(LedPin4, HIGH);
digitalWrite(LedPin5, HIGH);
digitalWrite(LedPin6, LOW);
digitalWrite(LedPin7, LOW);
digitalWrite(LedPin8, LOW);
digitalWrite(LedPin9, LOW);
digitalWrite(LedPin10, LOW);
delay(dt);
digitalWrite(LedPin1, LOW);
digitalWrite(LedPin2, LOW);
digitalWrite(LedPin3, LOW);
digitalWrite(LedPin4, HIGH);
digitalWrite(LedPin5, HIGH);
digitalWrite(LedPin6, HIGH);
digitalWrite(LedPin7, LOW);
digitalWrite(LedPin8, LOW);
digitalWrite(LedPin9, LOW);
digitalWrite(LedPin10, LOW);
delay(dt);
digitalWrite(LedPin1, LOW);
digitalWrite(LedPin2, LOW);
digitalWrite(LedPin3, LOW);
digitalWrite(LedPin4, LOW);
digitalWrite(LedPin5, HIGH);
digitalWrite(LedPin6, HIGH);
digitalWrite(LedPin7, HIGH);
digitalWrite(LedPin8, LOW);
digitalWrite(LedPin9, LOW);
digitalWrite(LedPin10, LOW);
delay(dt);
digitalWrite(LedPin1, LOW);
digitalWrite(LedPin2, LOW);
digitalWrite(LedPin3, LOW);
digitalWrite(LedPin4, LOW);
digitalWrite(LedPin5, LOW);
digitalWrite(LedPin6, HIGH);
digitalWrite(LedPin7, HIGH);
digitalWrite(LedPin8, HIGH);
digitalWrite(LedPin9, LOW);
digitalWrite(LedPin10, LOW);
delay(dt);
digitalWrite(LedPin1, LOW);
digitalWrite(LedPin2, LOW);
digitalWrite(LedPin3, LOW);
digitalWrite(LedPin4, LOW);
digitalWrite(LedPin5, LOW);
digitalWrite(LedPin6, LOW);
digitalWrite(LedPin7, HIGH);
digitalWrite(LedPin8, HIGH);
digitalWrite(LedPin9, HIGH);
digitalWrite(LedPin10, LOW);
delay(dt);
digitalWrite(LedPin1, LOW);
digitalWrite(LedPin2, LOW);
digitalWrite(LedPin3, LOW);
digitalWrite(LedPin4, LOW);
digitalWrite(LedPin5, LOW);
digitalWrite(LedPin6, LOW);
digitalWrite(LedPin7, LOW);
digitalWrite(LedPin8, HIGH);
digitalWrite(LedPin9, HIGH);
digitalWrite(LedPin10, HIGH);
delay(dt);
digitalWrite(LedPin1, HIGH);
digitalWrite(LedPin2, LOW);
digitalWrite(LedPin3, LOW);
digitalWrite(LedPin4, LOW);
digitalWrite(LedPin5, LOW);
digitalWrite(LedPin6, LOW);
digitalWrite(LedPin7, LOW);
digitalWrite(LedPin8, LOW);
digitalWrite(LedPin9, HIGH);
digitalWrite(LedPin10, HIGH);
delay(dt);
digitalWrite(LedPin1, HIGH);
digitalWrite(LedPin2, HIGH);
digitalWrite(LedPin3, LOW);
digitalWrite(LedPin4, LOW);
digitalWrite(LedPin5, LOW);
digitalWrite(LedPin6, LOW);
digitalWrite(LedPin7, LOW);
digitalWrite(LedPin8, LOW);
digitalWrite(LedPin9, LOW);
digitalWrite(LedPin10, HIGH);
delay(dt);
}
if (Mode == 3) {
digitalWrite(LedPin1, HIGH);
digitalWrite(LedPin2, LOW);
digitalWrite(LedPin3, HIGH);
digitalWrite(LedPin4, LOW);
digitalWrite(LedPin5, HIGH);
digitalWrite(LedPin6, LOW);
digitalWrite(LedPin7, HIGH);
digitalWrite(LedPin8, LOW);
digitalWrite(LedPin9, HIGH);
digitalWrite(LedPin10, LOW);
delay(dt2);
digitalWrite(LedPin1, LOW);
digitalWrite(LedPin2, HIGH);
digitalWrite(LedPin3, LOW);
digitalWrite(LedPin4, HIGH);
digitalWrite(LedPin5, LOW);
digitalWrite(LedPin6, HIGH);
digitalWrite(LedPin7, LOW);
digitalWrite(LedPin8, HIGH);
digitalWrite(LedPin9, LOW);
digitalWrite(LedPin10, HIGH);
delay(dt2);
}
}