Устройство представляет собой розетку с настройкой времени включённого и отключённого состояния нагрузки и количества повторов данного цикла. Создавалась она для засветки фоторезиста ультрафиолетовой лампой, а также для дозасветки изделий, напечатанных на фотополимерном принтере. Внутреннее твердотельное реле рассчитано на ток до 2 А, что позволяет широко использовать эту розетку в быту, например, для автоматического включения фитолампы для растений.
Начинка устройства состоит из двух плат: платы управления и платы бестрансформаторного источника питания (БИП).

Управляющая плата построена на микроконтроллере Atmega48PA, который через драйвер HT1621B управляет LCD-дисплеем (дисплей от счётчика Меркурий 230). Запитана плата напряжением 5В от платы БИП. Четыре кнопки служат для настройки времени работы розетки и для пуска алгоритма. Конденсаторы на кнопках установлены для аппаратного подавления дребезга.
Настройка алгоритма работы заключается в вводе времени (от 1 секунды до 99 часов) для двух интервалов, настройки положения реле (вкл-выкл) для каждого из интервалов и количества повторов этих интервалов (до 99).
Нагрузка коммутируется твердотельным реле G3MB-202P (~230В, 2А). Отсчёт времени контроллер производит с помощью часового кварца ZQ1, к которому обычно необходимо устанавливать в обвязку конденсаторы C2,C3, но для данного кварца конденсаторы пришлось удалить, так как с ними частота кварца значительно падала и время отсчитывалось неверно. Разъём XP1 используется для прошивки МК и в дальнейшем выпаивается с платы. На плате так же предусмотрены пятаки для подключения датчика температуры DS18B20 по 1-WIRE интерфейсу, для контроля температуры твердотельного реле (в текущей версии платы он не установлен). Контролировать температуру твердотельного реле важно, так как коммутируемый ток сильно снижается с ростом температуры.
Резисторы 0 Ом на схеме — это перемычки, упрощающие разводку платы.
Прошивка для микроконтроллера написана в CodeVisionAVR и находится в архиве по ссылке конце статьи.


Плата БИП построена по классической схеме и рассчитана на выходное напряжение 5В и максимальный ток 30мА. Предохранитель установлен непосредственно на плате, так как другого внешнего крепления предохранителя под рукой не оказалось. В проекте Altium Designer (ссылка в конце статьи) есть так же плата без встроенного предохранителя.
ВНИМАНИЕ! БИП не обеспечивает гальванической развязки от сети. Все цепи платы управления находятся под опасным для человека напряжением. Все работы с устройством (включая прошивку) выполнять строго при отключённом питании или через изолированный источник.

Напряжение сети подаётся на разъём XP5, а к реле на управляющей плате и к розетке уходит с разъёма XP4. На плате установлен варистор для ограничения возможного перенапряжения в сети. Резистор R20 служит для разрядки конденсатора C14 после снятия с платы напряжения. Резистор R21 служит для ограничения пускового тока платы при подаче напряжения. Схема до резистора R22 работает по сути, как источник тока и рассчитывается по следующей формуле:
f — частота сети (50Гц),
C — ёмкость конденсатора (C14),
Uвх — напряжение сети (230В),
Uвых — выходное напряжение (5В).
Далее этот ток проходит через резисторы R22,R23 (их оптимальное сопротивление около 100 Ом) и делится между стабилитроном TL431 и нагрузкой. При отсутствии подключённой нагрузки весь ток потечёт через TL431 и поэтому данная схема ограничена 100мА, для увеличения выходного тока потребуется более мощный стабилизатор. Конденсатор C14 следует устанавливать типа X2 на 275В, для безопасности в случае выхода этого конденсатора из строя.
Выходное напряжение задаётся резисторами R24,R25, которые рассчитываются на напряжение управляющего контакта TL431 в 2,5В. В данном случае для выходных 5В резисторы имеют одинаковый номинал. R25 выбран 2,7кОм для обеспечения протекания тока около 1мА через управляющий контакт TL431.


Корпус для устройства напечатан на 3D-принтере и получился не очень оптимальным – внутри осталось много свободного места.


В будущем в данную схему потребуется добавить датчик температуры реле и светодиод индикации включённого состояния реле, так как сейчас положение реле отображается чертой на дисплее, что не очень наглядно.
В итоге устройство показывает себя как отличный инструмент, когда необходимо циклически коммутировать напряжение сети с заданными временными интервалами.
Для тех, кто захочет повторить данное устройство, выложил архив со всеми необходимыми исходниками. В архиве есть проект в Altium Designer, проект в CodeVisionAVR и STL-модели корпуса.
Комментарии (10)
xSVPx
10.07.2025 12:16В этот излишне большой корпус легко влезло бы совершенно стандартное ssr. А если упихать еще и радиатор с вентилятором (и нормальное управление им), то получится не игрушка, а где-то даже может и полезная штука. (Ssr бывают и на 100А, хотя, с розеткой предел, наверное 16)
Сердце таких приборов - удобный интерфейс...
IvanLevinskiy
10.07.2025 12:16Шикарный проект да еще и в open-sourse. Желаю хабровчанину развиваться и чаще радовать нас своими решениями и задумками. Держись AlexGyver, твой стул начал шататься!
VT100
10.07.2025 12:16Отсчёт времени контроллер производит с помощью часового кварца ZQ1, к которому обычно необходимо устанавливать в обвязку конденсаторы C2,C3, но для данного кварца конденсаторы пришлось удалить, так как с ними частота кварца значительно падала и время отсчитывалось неверно.
Насколько помню, в ATmega48 и его старших братьях - встроенные конденсаторы для "часового" кварца.
При отсутствии подключённой нагрузки весь ток потечёт через TL431 и поэтому данная схема ограничена 100мА
По факту - меньше. Т.к. TL431 в корпусе SOIC8 вряд ли будет рад мощности 0,5 Вт.
R25 выбран 2,7кОм для обеспечения протекания тока около 1мА через управляющий контакт TL431.
Через вход Ref течёт намного меньший ток. Ток 1 мА через делитель R24-R25 - позволяет не учитывать ток входа Ref при расчёте делителя.
Просмотрите также application note на используемое SSR. Параллельнаяя "контактам" RC-цепочка (snubber) - может быть не лишней.
В целом - схема выглядит неплохо. Хотя "конденсаторные" источники питания сейчас почти не носят. В ЮВА выпускается много ИМС сетевых импульсных стабилизаторов "сверхмалой" мощности - как изолированных, так и неизолированных.
Поскольку CVAVR, то отсутствуют "родимые пятна" Arduino style", мало уместные в "проде".
В общем - продолжайте.
vesowoma
10.07.2025 12:16В будущем в данную схему потребуется добавить датчик температуры реле и светодиод индикации включённого состояния реле, так как сейчас положение реле отображается чертой на дисплее, что не очень наглядно.
ИМХО датчик температуры лишний, места внутри много, можно даже вентилятор установить.
По индикации - в цепь от 26 ноги проца к 3 ноге реле можно попробовать установить светодиод с малым падением напряжения (красный например), лишь бы по току подошел, ну и резистор меньшим номиналом.
Болтиками на лицевой панели восхищаюсь до сих пор ) Для более полного моего восхищения - покрасьте корпус молотковой эмалью и надписи выполните приклепанными шильдиками! ;)
Fox_Alex
10.07.2025 12:16C14 на 275В маловато. Я бы туда на 350 поставил, чисто на всякий случай. А то и на 630. Мало ли что по сети прилететь может. Пленки они конечно живучие, но лучше перестраховаться. Ну и TVS-диод после выпрямителя не помешает, чтоб уж наверняка дальше него ничего не пролезло и в случае пробоя гарантированно вышибло предохранитель.
xirahai
Хороший проект для практикума начинающих, за исключением питания от сети без гальванической развязки. А для реального применения лучше промышленное устройство, например DH48S-S, которое можно заменить если сломается.
VT100
В стиральных машинках и холодильниках - вполне обходятся неизолированным питанием. Не вижу причин не использовать его в "автоматической" розетке.
xirahai
В самодельных устройствах лучше бы применять нормальные БП с развязкой от сети. Тут ведь хобби и единичные экземпляры, а не миллионные партии продукции - поэтому нет смысла экономить копейки, особенно в ущерб надежности и безопасности.
MaFrance351
Можно даже готовый миниатюрный модуль импульсного БП бахнуть. Мощности хватит с лихвой.
Но проект в любом случае очень классный.
sim2q
у них другие приоритеты, а нам с этим жить)