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


Я ж и говорю - стерва. Не может она… :joy:

а я скормил, очень уж было интересно, токо не обижайтесь кому не понравится,))) у кого спал инвиз я не виноват!!!)))

Alecs	Новичок, задал вопрос, получил код, сказал «не работает» и исчез.
Komandir	Ворчун-привратник, ничего полезного не сказал.
DetSimen	Морализатор старой школы: «выстрадай право зажечь светодиод».
MMM	Голос разума: задаёт правильные вопросы, гасит срач.
Дим-мычъ	Практик-самоучка, честно признаёт плагиат и учится.
xDriver	Выложил код от ИИ, вляпался, огрызается, но технически прав.
ua6em	Радист-тролль: умный, ядовитый, сам нарушил ТЗ.
v258	Резонёр-спорщик: ловит ua6em на противоречиях, прав по сути.
толстый	Ироничный наблюдатель, сделал Wokwi, комментирует войну с юмором.
BABOS	Изобретатель-нелепица: препроцессорный метаязык для задачи на 10 строк.
Green1	Разгневанный критик: прав по сути, груб по форме.
lilik	Миротворец-скептик: ставит вопрос об ИИ и обучении.
Diskless	Мрачный циник: чёрный юмор, комментирует со стороны.
inspiritus	Прохожий, сказал по делу, ушёл.
Pyotr	Фоновый участник.
nik182	Лаконичный: «претензия к МК ничтожна».
ЕвгенийП	Принёс анализ от гугловского ИИ — и это меняет картину.
BOOM — участник форумной переписки, появившийся в ней всего один раз и не сделавший ничего полезного.

Прелесть какая :face_holding_back_tears:
Только Петровичу оценку не поставил, - подозрительно :open_mouth:
И Бума забыли :neutral_face:

ну хоть кто-то умный должен быть на форуме )))
PS развалинами Рейхстага отправкой темы в ЧЧ - удовлетворён

Это 5++ :sweat_smile:

он плохо писал об ии, и он ему отомстил))) про него вырезал,))) скинул до сообщения анализа

Лучче в ЧЧ чем в бан, не так ли!? :thinking:

А если просто не смотрел? Что выдалось, то и положил не глядя. Этот вариант у Вас не рассмотрен, давайте уж, чтобы тему закрыть.

А “не рассмотренные скетчи” надо форматировать перед выкладыванием?! :thinking:

там 45 строк всего, при копировании однозначно видел, глаза профессионала даже от взгляда мельком наткнутся, ну или под шафе был, тогда всё возможно, некоторых алкоголь угнетает, некоторых наоборот возбуждает, то-есть 50/50
ЗЫ пошёл проверил количество строк, действительно 45 )))

Задал я гуглу вопрос.

ардуино и переменный резистор и 8 светодиодов

Для реализации проекта с Arduino, переменным резистором (потенциометром) и 8 светодиодами чаще всего создают эффект «бегущего огня» или шкалы уровня (вольтметра), где количество горящих светодиодов зависит от угла поворота ручки резистора.

:electric_plug: Схема подключения

Для сборки вам понадобятся: плата Arduino (Uno/Nano), 8 светодиодов, 8 резисторов на 220 Ом (для защиты светодиодов) и 1 потенциометр (подойдет любой на 10 кОм).

  1. Светодиоды:
    • Подключите аноды (длинные ножки) к цифровым пинам Arduino с 2 по 9 через резисторы 220 Ом.
    • Подключите катоды (короткие ножки) всех светодиодов к шине заземления (GND).
  2. Переменный резистор (потенциометр):
    • Левый контакт — к GND.
    • Правый контакт — к 5V.
    • Средний (сигнальный) контакт — к аналоговому входу A0.

:laptop: Скетч для Arduino (Шкала уровня)

Этот код считывает значение с потенциометра (от 0 до 1023) и пропорционально зажигает от 0 до 8 светодиодов.

// Определяем пин для потенциометра
const int potPin = A0;

// Количество светодиодов
const int ledCount = 8;

// Массив с номерами пинов, к которым подключены светодиоды
int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9};

void setup() {
  // Настраиваем все пины светодиодов как выходы
  for (int i = 0; i < ledCount; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
}

void loop() {
  // Считываем аналоговое значение с потенциометра (0-1023)
  int potValue = analogRead(potPin);

  // Преобразуем диапазон 0-1023 в диапазон от 0 до ledCount (8)
  int ledsToLight = map(potValue, 0, 1023, 0, ledCount);

  // Включаем или выключаем светодиоды в зависимости от результата
  for (int i = 0; i < ledCount; i++) {
    if (i < ledsToLight) {
      digitalWrite(ledPins[i], HIGH); // Включаем светодиод
    } else {
      digitalWrite(ledPins[i], LOW);  // Выключаем светодиод
    }
  }
}


:hammer_and_wrench: Альтернативный вариант: «Бегущий огонёк»

Если вы хотите, чтобы горел только один светодиод, положение которого меняется ручкой потенциометра, измените код внутри функции loop() на этот:

void loop() {
  int potValue = analogRead(potPin);
  // Преобразуем значение в индекс светодиода от 0 до 7
  int activeLed = map(potValue, 0, 1023, 0, ledCount - 1);

  for (int i = 0; i < ledCount; i++) {
    if (i == activeLed) {
      digitalWrite(ledPins[i], HIGH); // Зажигаем только текущий
    } else {
      digitalWrite(ledPins[i], LOW);  // Гасим остальные
    }
  }
}

Скажите, какой именно эффект работы светодиодов вы хотите реализовать? Также я могу помочь добавить в схему сдвиговый регистр 74HC595, если вы хотите сэкономить пины Arduino.

Неужели ТС не искал даже, а участников забанили?

Пассивно - агрессивная агрессия не достойна дзен буддиста! Или нет!? :thinking:

для торжества зла добро должно ничего не делать!

косяк, два светодиода не должны гореть одновременно!

void loop() {
  int potValue = analogRead(potPin);
  // Преобразуем значение в индекс светодиода от 0 до 7
  int activeLed = map(potValue, 0, 1023, 0, ledCount - 1);

  for (int i = 0; i < ledCount - 1; i++) {
    if (i == !activeLed) {
      digitalWrite(ledPins[i], LOW); // Гасим остальные
    } else {
      digitalWrite(ledPins[i], HIGH);  // Зажигаем только текущий
    }
  }
}

ЗЫ но это только в одну сторону, значит код тоже надо править

Тут уже который день идет срач по поводу кода от ИИ, выложенного еще в #14

Твой код сейчас тоже радист раскритикует :sweat_smile:

И да, ИИ таки лажанулся

надо не до 8, а до 7, раз уж с нуля начинаем, иначе в конце диапазона ни один светодиод гореть не будет… Во втором коде, кстати, сделано правильно

Ну я ж говорил :rofl:

Вот это уже второй раз звучит. Вы реально микросекунды видите? :thinking:

Ну надо же докопаться ))

А вот что опять гасятся все, не возражает…

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