73

Ответ на пост «20 способов помигать светодиодом на Arduino»

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

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


Немного теории о ШИМ-регулировании.

1. Если часто мигать светодиодом, то глаз человека не сможет заметить мерцания, картинка станет непрерывной, как кино с плёнки. У гомо сапиенс этот предел равен 24 картинки в секунду. Опытным путем я установил, что при существующей инерции кристалла светодиода и скорости Ардуины, если мигать светодиодом с паузой 23 мс, то уже мерцания не видно.

2. Изменять яркость светодиода можно зажигая его не НЕНАДОЛГО. Например, если быстро-быстро включать и выключать светодиод с равными паузами, то в него «вольётся» половина мощности (по сравнению с постоянно включенным), а за счет быстрой-быстрой смены состояний глаз не заметит мерцания, но увидит уменьшение яркости.

3. Изменяя длину паузы в выключенном состоянии и длину паузы во включенном можно менять и вкачиваемую мощность, например, 1 «тик» светодиод включен и 99 «тиков» выключено итого вкачается 1% мощности. Кстати, соотношение паузы «ОТКЛ» к паузе «ВКЛ» характеризуется скважностью импульсов.

4. Регулировать мощность (не только светодиодов) можно аналоговым способом (например, меняя уровень напряжения на выходе) или цифровым – быстро-быстро подавая в нагрузку либо полный ток, либо полное отсутствие тока. Второй метод намного экономичнее – так как на закрытом транзисторе не теряется мощность, а на открытом теряется минимально.

5. Наконец, простые методы изменения скважности (то есть, цифровой регулировки мощности) бывают со строгой частотой (это ШИМ) и с плавающей (это ЧМ). Широтно-импульсная модуляция отличается от частотной только тем, что в первой изменяется одновременно и длина паузы «ВКЛ» и длина паузы «ОТКЛ» причем так, чтобы их сумма составляла некую константу - тогда частоты периода будет всегда одинакова (нам это важно, чтобы глазу не было видно мерцания, а в электронике это удешевляет настройку фильтров); во второй же – меняется пауза только одного состояния.

Теперь, описание скетча.

Первая строка «#define ledPin 13» - лишняя, номер пина можно указывать прямо в коде, но он там встречается 6 раз, что при переназначении неудобно (см. видеоролик).

В блоке «setup» мы просто задаём режим работы пина – как выход.

Наконец, в блоке «loop» сначала запускаем цикл, где от меняем паузу включения от 0 до 22 мс, одновременно рассчитываем паузу включения от 23 до 1 мс – суммарно каждый период составляет всегда 23 мс. На последнем шаге этого цикла светодиод мы зажигаем на 22 мс, а гасим на 1 мс – то есть максимальная ШИМ-яркость.


Для удобства группирования участков кода в этом «уроке» я позволил себе разместить по два оператора в строке.

После завершения первого цикла светодиод погаснет на 1 мс и уже не включится, так как цикл закончился, поэтому зажигаем его принудительно и оставляем в таком состоянии на 200 мс (подобрано опытным путём – это приятная пауза на пике максимальной яркости).

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

Показать полностью 3
401

20 способов помигать светодиодом на Arduino

Шуточный первоапрельский урок про различные способы мигания светодиодом на Arduino: от стандартных примеров до костылей с перезагрузкой и ассемблером!

Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества