Я затеял ремонтные работы дома, и мне понадобилась система автоматического управления освещением, которое должно выключаться днём и, соответственно, включаться ночью. Я фанат AVR-контроллеров и решил я поискать на просторах Интернета готовые наработки, но, к сожалению, не нашёл ничего подходящего.
Мне нужна была простая система, которая замеряла бы уровень освещённости, переключала освещение в режиме «день/ночь» и имела бы таймер задержки переключения реле.
Так родился этот проект — фото-реле на мелком восьминогом 8-битном МК ATTiny13. Зачем «городить огород» на МК, когда всё можно собрать на транзисторах и куче рассыпухи? Давайте считать мой проект учебным, направленным на освноение контроллерного сегмента электроники.
Содержание статьи / Table Of Contents
↑ Схема фото-реле
Схема имеет собственный бестрансформаторный блок питания, построенный на C1, C2, R1, R2, стабилитроне D1 и диодном мосте BR1.
При работе схемы не касайтесь каких либо её частей, т.к. блок питания не имеет гальванической развязки с электросетью!
Все настройки проводите либо при полном отключении питания схемы, либо чётко соблюдая технику безопасности.
Все настройки проводите либо при полном отключении питания схемы, либо чётко соблюдая технику безопасности.
На стабилитроне получается напряжение 9,1 В. Это на 2 В выше, чем минимальное допустимое входное напряжение для нормальной работы стабилизатора 78L05 и достаточное для работы реле (хоть и номинальное напряжение катушки у него 12 В, об этом позже).
Диод D3 служит для защиты стабилизатора 78L05. Ёмкости C3, C4, C5 являются его стандартной обвеской. Транзистор Q1 это ключ для реле RL1, резистор R4 ограничивает базовый ток. Ёмкости C6, C7, C8 сглаживают шумы на линиях контроллера.
Подстрочные резисторы «LUX» и «TIME» служат для настройки порога срабатывания реле в зависимости от освещённости и регулировки задержки данного срабатывания от 1 секунды до 29 минут.
С питанием пришлось повозиться. Дело в том, что максимально допустимый ток через стабилитрон D1 (если он на 1 Вт) составляет 31 мА. Значит потребляемый ток реле вместе со стабилизатором напряжения U2 и контроллером U1 не должен превышать этого значения. Следует учесть возможные колебания Сети от 235 В до 190 В. При ёмкости C1 0,47 мкФ ток через стабилитрон составляет ок. 22 мА при уровне входного напряжения 220 В, теоритически есть запас.
Проведя опыты я выяснил, что применённое реле надёжно срабатывает при напряжении 6,9 В и токе 18 мА, а отпускание происходит аж при 2 В. На практике я наблюдал, как при сетевом напряжении 190 В реле продолжало нормально работать.
↑ Наладка фото-реле
Наладка устройства заключается лишь в подборе делителя напряжения R5 и «SENS». Резистор R5 необходимо подобрать в зависимости от типа и сопротивления применённого фоторезистора «SENS» (у меня 500 кОм). Суть подбора в том, что бы получить напряжение на ножке 7 контроллера, близкое к 2.5 В при уровне освещения, при котором необходимо включить реле.Кроме того нужно отрегулировать подстроечные резисторы «LUX» и «TIME» после установки прибора на место. Я лично установил датчик в паре метров от светильников и уменьшил время задержки до 1 секунды. С наступлением вечера я отрегулировал чувствительность до такого уровня, что бы свет от светильника не мешал датчику, а после установил задержку на 15 минут. Работает!
↑ Программа
Программа для контроллера была написана на языке Си. Код занимает 100% его ОЗУ и 99% флеш-памяти. Помимо функции управления реле, в МК вложен программный UART, который отправляет раз в секунду данные о статусе работы. Сделал я его чисто как дополнение, для учебных целей.Пример сообщения по UART:
LUX 601/518 OFF
Time 15m
Time 15m
Первая строка означает что свет, который видит фоторезистор, составляет 601 единицу АЦП из 1023, а порог, который выставлен резистором «LUX» составляет 518 единиц АЦП из 1023. Следовательно, сейчас день и слово «OFF» говорит о том, что программа ждёт ночи.
Когда пороги совпадут, мы получим надпись «ON», таймер задержки срабатывания реле будет запущен и после отсчёта заданного времени реле включится.
Не трудно догадаться, что «Time 15m» говорит об остатке минут до срабатывания реле.
Таймер задержки будет отключён во время запуска фото-реле. Для чего это нужно? Допустим, сейчас ночь. «Мыргнул свет», прибор сбросился, увидел, что на дворе ночь и давай ждать пока пройдёт выставленная задержка (0-29 минут), и только потом включит свет. Таким образом, получится перерыв в освещении среди ночи. Логичней если при появлении питания, фото-реле включит свет сразу.
UART работает на скорости 9600 символов в секунду, имеет 8 битов и 1 стоповый бит, без контроля чётности.
Подключение любого терминала или компьютера или любого устройства к UART выходу МК должно производится только через оптрон или трансформатор и т.п. для обеспечения гальванической развязки между схемой фото-реле и терминалом.
Данный выход предназначен только для отладки устройства.
Данный выход предназначен только для отладки устройства.
В случае, если вам не нужна функция UART, я сделал второй вариант программы, с пометкой «LED», где ножка 6 у микроконтроллера выполняет функцию индикации состояния таймера задержки. Т.е., когда микроконтроллер начинает считать выставленную задержку, прежде чем включить/выключить свет, на протяжении всей задержки, на ножке 6 появляется логическая «1». А после завершения задержки, сменяется на логический «0».
Думаю, если подключить на 6-ю ножку светодиод через резистор, то это добавит удобство в плане мониторинга состояния прибора.
Исходный код постарался закомментировать, где можно.
↑ Установка фьюзов
0x7A LOW; 0xFB HIGH;
Фьюзы настроены на частоту 9,6 МГц и включение порога напряжения питания от 2.7 В.
Бит CKDIV8 снимается в 1, дабы убрать делитель на 8.
Бит BODLVL1 ставится в 0 — активный, для активации ограничения питания до 2,7 В.
Остальные биты заводские.
↑ Корпус
↑ Файлы
🎁datagor-hex.7z 1.59 Kb ⇣ 58 - Прошивки LED + UART для заливки (hex)🎁proteus.zip 20.82 Kb ⇣ 49 - Схему отлаживал в Proteus v8.4 SP0
🎁pcb.zip 22.72 Kb ⇣ 58 - Печатную плату рисовал в SprintLayout v6.0
Программу писал в CodeVision AVR 3.12 (исходники):
🎁source_code_led.zip 44.36 Kb ⇣ 55 - с функцией LED на ножке 6 МК
🎁source_code_uart.zip 61.46 Kb ⇣ 54 - с функцией UART на ножке 6 МК
↑ Заключение
Данная система работает у меня уже неделю и претерпела мелкие доработки кода, так что устройство проверено практикой!На этом всё. Спасибо за внимание!
Камрад, рассмотри датагорские рекомендации
🌼 Полезные и проверенные железяки, можно брать
Опробовано в лаборатории редакции или читателями.