int ledPin = 4; // starting LED pin
int ledDelay = 100; // delay between LED state changes
bool reverseLed = false; // flag for changing LED direction
void setup() {
for (int i = 4; i < 14; i++){
pinMode(i, OUTPUT);
}
pinMode(2, INPUT_PULLUP);
}
void loop() {
digitalWrite(ledPin, !digitalRead(ledPin));
delay(ledDelay);
if (!digitalRead(2)) {
reverseLed = !reverseLed; // toggle LED direction
//delay to prevent double click
delay(200);
}
if ((reverseLed && ledPin == 4) || (!reverseLed && ledPin == 13)){
ledPin = reverseLed ? 14 : 3; // change direction
}
else {
ledPin += reverseLed ? -1 : 1; // continue in current direction
}
}