Загрузка данных


// Массив пинов: теперь строго с 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);
  }
}