Фонарик с возможностью регулировки яркости ступенчато на ATTiny13.
В ВК в группе Радиолюбитель и Arduino
Александр М. обратился с просьбой:
Здравствуйте, подскажите пожалуйста, начал только разбираться с ардуино, ну мигаю светодиодом, там герлянда, и то все коды беру с интернета, пока ещё учусь, но вот понадобилось срочно сделать управление нагрузкой на тактовой кнопке, с режимами похожими на обычный налобный фонарь, нажал вкл нагрузка Нажал - 70% от мощности Нажал - 50 % Двойное нажатие отключает полностью, но весь интернет перерыл, вроде простая задача но в интернете нету, ищу под ардуино нано, либо под тини 13, тиньку могу запрограммировать спокойной нужен лиш код, или какой-то похожий
Тогда добавим в Интернет решение такой задачки .
В качестве тренировки в программировании микроконтроллера ATTiny13 написал программу и смакетировал это устройство. Пока до конструкции дело не дошло. Как сделаю конструкцию, то обязательно дополню эту статью, а пока так, как есть.
Схема фонарика простая. Питается устройство от Li-Ion аккумулятора. Модуль заряда аккумулятора DA1 можно использовать любой для Li-Ion, в моём устройстве использован самодельный модуль на основе микросхемы LTC4054
, а можно использовать покупной на микросхеме TP4056. Микроконтроллер используется ATTiny13A в корпусе DIP-8, который установлен на плату для программирования. Потом переставлю в панельку в сам фонарик. Кнопка SB1 позволяет настраивать яркость светодиода HL1 за счёт изменения ШИМ (PWM).
У ATTiny13A для ШИМ(PWM) имеются два вывода: PB0, PB1. Использовал для управления светодиодом вывод PB0, так как другой вывод уже задействован на плате программирования.
Светодиод HL2 – как индикаторный включения питания, с очень маленьким током потребления. Мощным светодиодом HL1 управляет N-канальный MOSFET IRFZ44. У него низкое напряжение открываания затвора, что в нашей низковольтной схеме достаточно важно.
Подписчики просили модернизировать схему под P-канальный транзистор. Ниже привожу такую схему. Мощным светодиодом HL1 управляет P-канальный MOSFET AO3401 (A19T). У него низкое напряжение открывания затвора, а постоянный ток через кристалл до 2А, что вполне достаточно для светодиода 1 Вт (300 мА). Подписчиками проверена работа на P-канальном MOSFET транзисторе IRLML6401.
Реализация в фонарике Конструкции 2
. Светодиод HL2 подключен к выводу PB2. При выборе яркости 0% HL1 светодиод HL2 включается и указывает, что схема с микроконтроллером находится в рабочем состоянии. Одновременно этот светодиод можно использовать как маячок. При включении HL1 светодиод HL2 гаснет, что экономит электроэнергию аккумулятора. Максимальный ток через светодиоды HL1 и HL2 около 260 мА. Такой ток выбран чтобы экономить электроэнергию аккумулятора и уменьшить нагрев светодиодов, так как при номинальном токе 300 мА светодиоду мощностью 1 Вт требуется площадь радиатора 25...30 см2. Для светодиода HL2 можно установить резистор R9 2E2 (2,2 Ом).
Скетч написан в среде Arduino IDE, соответственно в ней должно быть установлено ядро для ATTiny13. Программатор USBasp.
Вначале запишите загрузчик с параметрами, которые указаны ниже. Собственно это не как таковой загрузчик, а фьюзы, для правильной работы МК. Такую процедуру нужно сделать всего один раз. Далее уже загружайте сам скетч с помощью программатора USBasp или какого другого, что у Вас есть.
Установки в Arduino IDE: Меню -> Инструменты: Плата: "ATTiny13" BOD: "BOD 2.7V" EEPROM: "EEPROM retained/not retained" Clock: "1.2 MHz internal osc." Расчёт времени: "Micros desabled" Программатор: "USBasp slow (MicroCore)" Вначале один раз нужно записать загрузчик Меню -> Инструменты -> Записать загрузчик: Установятся фьюзы для МК Далее заливаю программу: Меню -> Скетч -> Загрузить через программатор
Программировал ATTiny13A с помощью USBasp программатора.
ATTiny13A у меня в корпусе DIP-8, поэтому программирую через небольшую платку с панелькой. Платка похожа на Digispark и стоит около 28...36 P, к её контактам как раз подходит колодка с 6-ю пинами программатора.
Для управления яркостью фонарика используется одна кнопка SB1. При длительном нажатии более 2 секунд фонарик гаснет полностью. Краткими нажатиями возможно установить яркость пошагово: 80%, 50%, 10% и далее по кругу на 100%, 80%, 50%, 10%... Вначале, при подаче питания, LED включается на 100%.
Версия v1.1. Скетч был модернизирован и проверен под транзистор P-канальный MOSFET AO3401 (A19T). Применил условное компилирование, чтобы в одном скетче совместить два варианта и в то же время уменьшить окончательный размер кода.Так как скетч хорошо прокомментирован, то смысла приводить текст скетча на странице не вижу. Скетч и необходимые файлы можно скачать ниже в Приложении
.
Конструкция похожа на конструкцию фонарика Двадцатый LED-светильник (фонарик)
. Эта конструкция зарекомендовала себя надёжностью и удобством за годы использования (с 2017 года).
Вначале всегда разработка нового устройства проверяется и отлаживается на макете. Ниже на фото показан макет фонарика. В качестве LED в макете используется красный светодиод, потом поставил 1 Вт белый светодиод – работа нормальная, только его нужно ставить на радиатор, так как ток потребления около 250 мА.
Сама конструкция традиционная. Корпус состоит из двух частей, которые соединяются на защёлках. Вначале сделал конструкцию несколько отличающуюся от прототипа. Как бы такая конструкция легче изготавливалась. Размеры корпуса 130 * 60 * 26 мм, без учёта выступающих элементов: линз светодиодов и выключателей. С линзами длина фонарика 143 мм.
Что внутри? Как видно на фото ниже, вся начинка уложена компактно. Над аккумулятором располагается небольшая плата с микроконтроллером регулировки яркости. Яркость регулируется только у одного 1 Вт светодиода. Другой светодиод не регулируемый. Аккумулятор литий-полимерный ёмкостью на 1000 мАч.
В этом фонарике установил уже 3 ультрафиолетовых светодиода. Практика жизни показывает, что ультрафиолет можно использовать и для определения подлинности купюр и для проверки качества сливочного масла. Так известно, что настоящее сливочное масло в свете ультрафиолета выглядит жёлтым, а поддельные масла светятся разными оттенками синего. Светодиоды включаются микрокнопкой, расположенной сверху.
Фонарик имеет два мощных 1 Вт светодиода. Один со световой температурой 6500К (регулируется яркость), а второй со световой температурой 3200К, что позволяет комбинировать общей световой температурой фонарика, при необходимости.
В фонарике для зарядки аккумулятора установлен модуль на TP4056 c защитой аккумулятора от сильного разряда. Разъём для зарядки microUSB.
В нижней крышке фонарика вставлено небольшое индикаторное окно из оргстекла. Через него происходит индикация процесса заряда аккумулятора. Красный цвет – идёт зарядка.
Синий цвет – зарядка завершена.
Однако, в общем конструкция 1 оказалась объёмной по сравнению с прототипом и немного попользовавшись новым фонариком решил конструкцию переделать, хотя и с некоторыми отличиями от конструкции прототипа. Ниже несколько фото уже конструкции 2. В общем эти две конструкции отличаются лишь тем, что у второй высота корпуса 18 мм против 26 мм первой, но чтобы переделать, пришлось потратить силы и время... делать сразу легче, чем потом переделывать.
Что внутри второй конструкции. Видно, что плата с микроконтроллером уже уложена по другому, так как по высоте не проходила на прежнем месте. Крепление радиатора светодиодов несколько иное, пришлось изрядно там всё доработать. Ультрафиолетовые светодиоды на прежнем месте. Пришлось переделывать защёлки корпуса.
Материалы для повторения: