const int numLeds = 10;
const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // Adjust pin numbers if needed
int tailLength = 3; // Number of LEDs in the trailing tail
int fadeRate = 50; // Fade speed (lower = faster)
int speedDelay = 100; // Delay between LED shifts
void setup() {
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
for (int i = 0; i < numLeds; i++) {
// Light up the current LED and fade the tail
analogWrite(ledPins[i], 255);
for (int j = 1; j <= tailLength; j++) {
int tailLed = (i + numLeds - j) % numLeds;
int brightness = 255 - (j * 255 / (tailLength + 1));
analogWrite(ledPins[tailLed], brightness);
}
delay(speedDelay);
// Fade out the entire strip
for (int j = 255; j >= 0; j--) {
for (int k = 0; k < numLeds; k++) {
analogWrite(ledPins[k], j);
}
delay(fadeRate);
}
}
}