int ledpin = 7;
int ledpin2 = 6;
int ledpin3 = 5;
int buttonpin = 9;
int buttonOld = 0;
int buttonNew = 0;
int state = 0; // 0=OFF, 1=ON, 2=OFF, 3=ON, etc.
int dt = 200; // debounce delay
void setup() {
pinMode(ledpin, OUTPUT);
pinMode(ledpin2, OUTPUT);
pinMode(ledpin3, OUTPUT);
pinMode(buttonpin, INPUT_PULLUP); // safer, uses pull-up resistor
}
void loop() {
buttonNew = digitalRead(buttonpin);
// detect rising edge (button pressed)
if (buttonOld == HIGH && buttonNew == LOW) {
state++; // go to next state
if (state > 3) state = 0; // reset after 3
delay(dt); // debounce
}
buttonOld = buttonNew;
// control LED based on state
if (state == 0) {
digitalWrite(ledpin, LOW); // OFF
digitalWrite(ledpin2, LOW);
digitalWrite(ledpin3, LOW);
}
else if (state == 1) {
digitalWrite(ledpin, HIGH); // ON
digitalWrite(ledpin2, LOW);
digitalWrite(ledpin3, LOW);
}
else if (state == 2) {
digitalWrite(ledpin, LOW); // OFF
digitalWrite(ledpin2, HIGH);
}
else if (state == 3) {
digitalWrite(ledpin, LOW);
digitalWrite(ledpin2, LOW);
digitalWrite(ledpin3, HIGH); // ON
}
}