int count_time = 500; // Start with 500ms delay
bool lastButtonState = false;
// LED pins in order
const int ledPins[] = {27, 2, 4, 16, 17};
const int numLeds = 5;
// Variables for timing
unsigned long previousMillis = 0;
int ledCount = 0; // How many LEDs are currently on
void setup() {
Serial.begin(115200);
Serial.println("Running Light Started!");
pinMode(33, INPUT_PULLUP);
// Initialize all LED pins
for(int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW);
}
}
void loop() {
// Check button for speed change
boolean currentButtonState = !digitalRead(33);
if (currentButtonState == true && lastButtonState == false) {
count_time -= 50;
if (count_time <= 0) count_time = 500;
Serial.print("Speed: ");
Serial.println(count_time);
}
lastButtonState = currentButtonState;
// Simple accumulating LED effect
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= count_time) {
previousMillis = currentMillis;
// Turn on next LED
if (ledCount < numLeds) {
digitalWrite(ledPins[ledCount], HIGH);
ledCount++;
}
// If all LEDs are on, reset
else {
// Turn off all LEDs
for(int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], LOW);
}
ledCount = 0;
}
}
}