ИИ сегодня добрый))
// Светодиоды на пинах D2..D9 (8 штук)
const uint8_t ledPins[8] = {2, 3, 4, 5, 6, 7, 8, 9};
const uint8_t LED_COUNT = 8;
// Потенциометр
const uint8_t POT_PIN = A7;
// Предыдущий активный светодиод (чтобы не переключать зря)
int lastLed = -1;
void setup() {
for (uint8_t i = 0; i < LED_COUNT; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW);
}
Serial.begin(9600); // для отладки, можно убрать
}
void loop() {
// Читаем потенциометр (0..1023)
int potValue = analogRead(POT_PIN);
// Определяем номер светодиода: 0..7
// map() делает так, чтобы крайние положения попадали в 0 и 7
int ledIndex = map(potValue, 0, 1023, 0, LED_COUNT - 1);
ledIndex = constrain(ledIndex, 0, LED_COUNT - 1);
// Если положение изменилось — переключаем светодиоды
if (ledIndex != lastLed) {
// Гасим все
for (uint8_t i = 0; i < LED_COUNT; i++) {
digitalWrite(ledPins[i], LOW);
}
// Зажигаем нужный
digitalWrite(ledPins[ledIndex], HIGH);
lastLed = ledIndex;
Serial.print("ADC: ");
Serial.print(potValue);
Serial.print(" LED #");
Serial.println(ledIndex + 1);
}
delay(20); // небольшая пауза от дребезга
}