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

Алиса может расписать текстом подключения. Рисовать она не умеет.

если ответишь на вопрос: одновременно два горящих светодиода это глюк wokwi?

не с той Алисой ты общаешься )))

Извиняюсь, не смотрел этого, думал, что это вы Драйвера код выложили.(пост #37)
Только сейчас заметил. Иначе свой бы точно так бы не написал:

int zone = analogRead(potPin) / 128;  

Получается , у меня, плагиат(#54) :sweat_smile:

не переживай, у всех плагиат )))

Понял простую вещь : для таких любителей как я - всё уже написано. Если не нашёл, значит плохо искал. Новое пишут лишь спецы высокого уровня, профессионалы.
Поэтому я всегда пишу сначала свою версию, пусть кривую, а потом уже ищу, что уже написано, сравниваю, исправляю.
Иначе совсем не интересно :slightly_smiling_face:

Ноев ковчег построил любитель. Профессионалы построили Титаник (с) :wink:

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

“Де?”(с)

не скромничай!


void setLeds(int startPin, int endPin, int zone) {
if (startPin > endPin) return;                          // условие выхода
digitalWrite(startPin, startPin - 2 == zone ? HIGH : LOW);
setLeds(startPin + 1, endPin, zone);                    // вызов себя же
}

Ты открыл для себя рекурсию? :man_facepalming:

Это к Бабосу с его ИИшницей! Мне каждый раз сначала приходится название вспоминать(тьфу ..ть - тернарный оператор), а потом гуглить что чему равняется :grinning_face:
О! Там ещё и рекурсия!? Енто ж вроде вредно!? Может в ЧЧ пора или полезного много?

нет, но примеров на С не видел, только на ASM

так это ИИ намутил, гламурненько, Бабоса смело можно брать Стажёром

Пффф, при чем тут язык? Рекурсия - это алгоритм, а алгоритму язык не важен

отож, основное условие - одновременно должен быть включен только один светодиод не выполняется, если немного допилить ардуину, то видимо этот код подойдёт:

const int potPin = A0;

void setup() {
  DDRD  = 0xFF;   // все пины порта D — на выход
  PORTD = 0x00;   // все светодиоды выключены
}

void loop() {
  int zone = analogRead(potPin) / 128;   // 0..7
  PORTD = (1 << zone);                   // включить один светодиод по маске
  delay(50);
}

В данном случае рекурсия даром не нужна

у тебя есть возможность показать, где без неё не обойдёшься, я для микроконтроллера такую задачу придумать не смог

Классический пример - построение списка файлов в папке с учетом вложенных папок. На МК действительно сложно задачу придумать ))

если бы бабушка была дедушкой

а это как же