That was just for test. I don't need 1000ms delay, maximum 100ms delay for LED strips is more than fine for me. I add case 3 in following code line but case 3 doesn't work. Only 1 and 2 in operation. Here's code:
const byte buttonPin = 2;
byte mode = 0;
const byte maxMode = 1;
byte currentState = HIGH;
byte prevState = HIGH;
void setup()
{
Serial.begin(115200);
pinMode(buttonPin, INPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}
void loop()
{
currentState = digitalRead(buttonPin);
if (currentState == LOW && prevState == HIGH) //button became pressed
{
mode++;
if (mode > maxMode)
{
mode = 0;
}
Serial.println(mode);
}
prevState = currentState;
switch (mode)
{
case 0:
Serial.println("running code for mode 0");
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
delay(50);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
delay(50);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
delay(50);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
delay(50);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
delay(50);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
delay(50);
digitalWrite(6, HIGH);
digitalWrite(8, HIGH);
delay(50);
digitalWrite(6, LOW);
digitalWrite(8, LOW);
delay(50);
digitalWrite(6, HIGH);
digitalWrite(8, HIGH);
delay(50);
digitalWrite(6, LOW);
digitalWrite(8, LOW);
delay(50);
digitalWrite(6, HIGH);
digitalWrite(8, HIGH);
delay(50);
digitalWrite(6, LOW);
digitalWrite(8, LOW);
delay(50);
break;
case 1:
Serial.println("running code for mode 1");
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
delay(100);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
delay(100);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
delay(100);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
delay(100);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
delay(100);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
delay(100);
digitalWrite(6, HIGH);
digitalWrite(8, HIGH);
delay(100);
digitalWrite(6, LOW);
digitalWrite(8, LOW);
delay(100);
digitalWrite(6, HIGH);
digitalWrite(8, HIGH);
delay(100);
digitalWrite(6, LOW);
digitalWrite(8, LOW);
delay(100);
digitalWrite(6, HIGH);
digitalWrite(8, HIGH);
delay(100);
digitalWrite(6, LOW);
digitalWrite(8, LOW);
delay(100);
break;
case 2:
Serial.println("running code for mode 3");
digitalWrite(5, HIGH);
delay(50);
digitalWrite(5, LOW);
delay(50);
digitalWrite(6, HIGH);
delay(50);
digitalWrite(6, LOW);
delay(50);
digitalWrite(7, HIGH);
delay(50);
digitalWrite(7, LOW);
delay(50);
digitalWrite(8, HIGH);
delay(50);
digitalWrite(8, LOW);
break;
}
}