Регулировка яркости светодиода в зависимости от освещения
- Войдите на сайт для отправки комментариев
Чт, 14/07/2022 - 23:09
Всех приветствую!
Подскажите пожалуйста, тренируюсь с написанием кода для шим регулировки яркости светодиода в зависимости от яркости, в цикле for сделал плавное увеличение яркости, но тогда светодиод моргает от 0 до 50 и так бесконечно
if (lux<=100) { //если показания меньше или равно 100 for (int i=0; i <= 50; i++){ analogWrite(led, i); delay(5); } }
если убрать for то светодиод не моргает но нет плавности зажигания
if (lux<=100) { //если показания меньше или равно 100 analogWrite(led, 50); }
Подскажите, где моя ошибка
светодиод моргает от 0 до 50
Это что значит? Азбукой морзе числа выдает? Или просто импульсами с паузой?
Вам нужно поднять флаг. У вас цикл повторяется по люксам
светодиод моргает от 0 до 50
Это что значит? Азбукой морзе числа выдает? Или просто импульсами с паузой?
Все верно, импульсами.
в цикле for сделал плавное увеличение яркости, но тогда светодиод моргает от 0 до 50 и так бесконечно
если светодиод не горит, его надо плавно разжечь. А если он УЖЕ ГОРИТ - зачем его снова зажигать? - улавливаете логику? - прежде чем начинать свой цикл от 0 до 50 - проверьте, может яркость светодиода и так уже 50...
Заодно рекомендую провести такой опыт. Проверьте, при каких значениях в analogWrite как светится светодиод. Увидите, что при малых значениях у Вас светодиод просто не горит. Соответственно начинать "плавное зажигание" с 0 нет никакого смысла.
Увидите, что при малых значениях у Вас светодиод просто не горит.
бред
Увидите, что при малых значениях у Вас светодиод просто не горит.
бред
Я был не в духе :(
Уважаемый, а что Вы хотите увидеть за 250 миллисекунд? Фильм "Война и мир"?
Увеличьте паузы, может чего и прояснится.