Светодиоды на потенциометре

Как написать скетч - при поворачивание потенциометра чтобы один светодиод горел из 8 ми по очереди , как определение положение потенциометра.

Что то рановато студенты появились с хотелками …

Пять лет погрысть гранит науки по спицальности, потом сесть и написать.

Какая Ардуино? Как подключен потенциометр? Как подключены светодиоды?
Лучше всего, начните со схемы.

  1. Надо составить схему, в которой:
    Напряжение питания 5в(как вариант) , через потенциометр подаётся на
    аналоговый вход ардуино .
    Определены порт(-)ты для управления св.диодами которые подключены
    соотв. пинам.

2.Написать соответствующий схеме скетч, в котором, в цикле loop(),
опрашивается аналоговый вход(т.е. сигнал с потенциометра), и, исходя из
полученного значения, подаются команды погасить/включить соотв.
светодиоды

P.S. Пока писал, не заметил предыдущий ответ

Да ладно, любой ИИ за минуту все напишет

пять лет, чтобы светодиодом помаргать? да уж

а иначе появляются всякие дзен буддисты, которые априори “специалисты” во всех вопросах.

Ардуино нано , потенциометр подключён на А7, светодиоды от D2-D9

Как написать например между 800 и 1023, осальное я умею .

Например:

uint16_t x = analogRead(A7);
digitalWrite(2, (x >= 800 && x <= 1023));

Спасибо сейчас попробую.

ИИ сегодня добрый))

// Светодиоды на пинах 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); // небольшая пауза от дребезга
}

Сложновато для новичка ИМХО

uint16_t x = analogRead(A7);

if (x >= 896 && x <= 1023)
{
  //Что-то делаем
}
else if (x >= 768 && x < 896)
{
  //Что-то делаем
}
else if (x >= 640 && x < 768)
{
  //Что-то делаем
}
// и.т.д.

Как вариант

Вот только человек сам думать начал :slightly_smiling_face:

ну ты и наивный, я просто еще одну флудотему попытался закрыть.

Надеюсь на лучшее

Нет, это сложнее. Хотя бы потому, что светодиоды необходимо не только зажигать, но и гасить. В моем случае это делается автоматически, в твоем с гашением нужно заморачиваться отдельно ))

Ну, я в душе ещё новичок, помню, как оно всё не понятно было)

Если чел задаёт вопросы, подобные ТС, вряд ли он поймёт ваш вариант, (как и массивы, map(), и.т.д) хотя да, согласен, так гораздо проще.

И в итоге не поймёт, что зажжённый светодиод надо гасить :slightly_smiling_face: Всё норм! А учитывая ваш скетч для меня, то и можно приобщиться к Сегодня 256-ой день в году, с праздником!