// Массив пинов: теперь строго с 2 по 13
const uint8_t ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
const uint8_t ledCount = sizeof(ledPins) / sizeof(ledPins[0]);
const uint8_t potPin = A0;
// функция чтения потенциометра и привязки к нему времени
// назовем ее DelayTime
int DelayTime() {
int potValue = analogRead(potPin);
return map(potValue, 0, 1023, 2, 320);
}
void setup() {
for (uint8_t i = 0; i < ledCount; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
// Прямой ход: от первого до предпоследнего светодиода в массиве
for (uint8_t i = 0; i < ledCount - 1; i++) {
digitalWrite(ledPins[i], HIGH);
delay(DelayTime());
digitalWrite(ledPins[i], LOW);
}
// Обратный ход: от последнего до второго светодиода в массиве
for (uint8_t i = ledCount - 1; i > 0; i--) {
digitalWrite(ledPins[i], HIGH);
delay(DelayTime());
digitalWrite(ledPins[i], LOW);
}
}