Иной раз возникает необходимость управлять несколькими нагрузками по определенному графику. Например, это может быть управление освещением (имитация присутствия), полив растений по графику, автоматизация технологических процессов и т. п.
Для реализации этой цели предлагается несложная схема на распространенном микроконтроллере, реализующая следующие функции:
часы
управление до 5-ю независмыми каналами нагрузки
до 9 моментов включения и отключения для каждого канала
дискретность установки времени для события –1 минута
бонус: термометр.
Принципиальная схема таймера
Принципиальная схема устройства приведена на рисунке.Как видите, это не полная схема, а только «основная» ее часть – блок питания и выходные усилители для коммутации нагрузок, надеюсь, вы сумеете добавить самостоятельно.
Основа схемы – микроконтроллер atmega8U1, который выполняет все функции, кроме подсчета времени. Время считает микросхема часов реального времени U2 типа DS1307. Кварцевый резонатор для микроконтроллера не требуется,а вот для часов – необходим, частота его должна быть «часовой», т. е.32,768 кГц. U2 питается от отдельной литиевой трехвольтной батаерйки, что позволяет сохранять точность хода часов при отключении питания основной схемы.
Микросхема U2 соединяется с микроконтроллером по интерфейсу I2C, на линиях которого должны быть «подтягивающие» резисторы R2 и R3 по 4,7…5,1К. РезисторR4того же номинала поддерживает уровень сигнала на выходе «генератора» U2 – этот генератор выдает меандр с частотой1 Гц, который используется микроконтроллером для обновления показаний на дисплее.
Жидкокристаллический дисплей может быть любым HD44780-совместимым, главное, чтобы у него было 2 строки по 16 символов. Важно соблюсти правильность подключения дисплея, так как номера выводов (распиновка) для одних и тех же сигналов у разных типов индикаторов могут отличаться. Правильная распиновка обычно приведена в документациина дисплей.
Резистор RV1 служит для регулировки контрастности изображения на дисплее.
В качестве бонусной функции в устройстве имеется термометр на основе датчика DS18B20 – микросхема U4(не удивляйтесьее схемномуизображению – схема создавалась в протеусе). Резистор R1так же имеет сопротивление 4,7…5,1К. Если термометр не требуется – резистор и датчик можно исключить из схемы,на остальном функционале это никак не отразится.
4 кнопки используются для управления функциями устройства, реализуя систему меню.
Основной вид дисплея
В обычном режиме на дисплее отображается в верхней строке температура и текущее время (см. рисунок выше), а в нижней строке всегда выводится подсказка о том, какую функцию выполняют в данный момент кнопки. Как видно по схеме, кнопки обозначены символами стрелок, звездочки и решетки. Эти же символы используются в подсказках.На рисункевы видите, что в основном режиме только кнопка «звездочка» выполняет функцию входа в меню, остальные не используются.
Под часами в обычном режиме показывается состояние каналов управления: минусом обозначается выключенный канал, а если канал включен – то на месте соответствующего минуса выводится его номер, как, например, показано на следующем рисунке:
Вид при включенном канале 1
Если датчик температуры не используется, то вместо значения температуры будут выведены знаки вопроса. Индикация температуры может быть отключена (об этом далее), и тогда внешний вид дисплея в основном режиме будет таким:
Вид дисплея с выключенным термометром
Нажатие кнопки «звездочка» в основном режиме приведет к включению «меню». Первым пунктом меню будет настройка времени:
Вид дисплея в режимеМЕНЮ – Время
Как видите, в верхней строке выводится наименование пункта меню, а в нижней – подсказка о том, что кнопка «звездочка» приведет к выбору этого пункта, «решетка» обеспечивает выход из меню,а кнопки-стрелки осуществляют передвижение по пунктам меню. Похожее назначение кнопок принято и в других режимах.
По мере продвижения по меню вы увидите5 пунктов настройки каналов (на рисунках показаны пункты для каналов 1 и 2):
Вид дисплея в режимеМЕНЮ – Канал № 1
Вид дисплея в режимеМЕНЮ – Канал 2
Затем следует пункт включения и выключения термометра:
Вид дисплея в режимеМЕНЮ – Термометр включен
Вид дисплея в режимеМЕНЮ – Термометр выключен
Завершает меню пункт сброса настроек всех каналов:
Вид дисплея в режимеМЕНЮ – Сброс
Этот пункт выполняется после нажатия кнопки «звездочка» не сразу,а после подтверждения:
Вид дисплея при запросе подтверждения
Вернемся к пункту настройки канала. Нажав кнопку «звездочка» мы увидимна дисплее следующее:
Вид дисплея в режиме настройки канала
С1 обозначает Chanel 1, то есть канал № 1. Затем следует номер события (как вы помните,их может быть 9), а послестрелочки – два времени (часы и минуты): первое время обозначает момент включения канала, второе –выключения. Перемещать курсор (мигающий квадратик) можно кнопками-стрелками, а изменять значение цифры – кнопкой «звездочка».
При вводе моментов включения и выключения следует помнить о том, что момент включения всегда должен предшествовать моменту выключения, и разница между ними должна быть минимум в 1 минуту.Если это условие не соблюдено – введенные значения игнорируются.
Таким образом вы можете задать до 9 интервалов включенного состояния каждого канала в течение суток. В момент нажатия кнопки «решетка» произойдет запоминание введенных значений и с этого момента таймер начнет отрабатывать состояние каналов, как задано.
Если не нажимать кнопки некоторое время (около 5 секунд), произойдет выход из менюбез сохранения сделанных изменений.
Несколько слов о наболевшем, то есть о фьюзах (fuses). Программа разработана таким образом, что обеспечивает нормальное функционирование со значением фьюзов «по умолчанию», т. е.со значениями, которые микроконтроллер имеет сразу после изготовления на заводе.Если ваш МК уже побывал в передрягах,вы можете установить его фьюзы в исходное состояние, воспользовавшись документацией.