Блок жизнеобеспечения аквариума.

Блок жизнеобеспечения аквариума представляет собой функционально законченный блок, который управляет включением компрессора, фильтра, освещения, нагревателя. Блок измеряет освещенность и выключает освещение, если освещенность превысит заданный порог (устанавливается потенциометром) в течении 9 минут. Период измерения 17 минут. Блок измеряет температуру воды и включает нагреватель, если температура воды меньше 24 градусов. Суточный период работы блока разбит на дневной и ночной режимы. В дневном режиме работают попеременно компрессор и фильтр в течении часа каждый. Между переключениями компрессор/фильтр интервал паузы составляет 5минут. В ночном режиме работает только компрессор. Перерыв в работе компрессора в ночном режиме составляет 5минут после каждого часа. Освещение в ночном режиме выключено. Дневной режим начинается в 8часов 30минут и заканчивается в 21час 30 минут.

Принципиальная схема блока


Принципиальная блока жизнеобеспечения аквариума. состоит из:

AT89с2051 Центральный процессор
DS1621 Датчик температуры воды с интерфейсом I2C
DS1307 Часы реального времени с интерфейсом I2C
MOC3023 Симисторные оптроны
DS1812 Микросхема сброса процессора


Для измерения температуры воды применена микросхема - термометр DS1621. Микросхема подключена по стандартной схеме, взятой из DATASHIT на микросхему. Адрес микросхемы на шине I2C 92h (выводы А1(6) = А2(5) = 0, А0(7) = 1). В процессе работы было замечено, что через определенное время 72 - 105 часов (зависит от экземпляра DS1621) микросхема отключается и посылает нулевую температуру, независимо от температуры корпуса. Избежать этого удалось применением сброса питания микросхемы. Период сброса питания микросхемы DS1621 равен периоду горячего рестарта процессора и составляет примерно 2 часа 20минут. Время отсутствия питания на микросхеме DS1621 составляет 1с. Блокировка питания осуществляется при помощи резистора 100Ом в цепи питания микросхемы DS1621 и вывода процессора P1.2. Для надежного сброса процессора при включении питания применена микросхема - монитор питания DS1812. Микросхема может быть заменена конденсатором. Резистор 4.3КОм на выходе микросхемы необходим для исключения взаимного влияния в случае ручного сброса процессора.

Для подсчета реального времени применена микросхема - часы реального времени DS1307. Чтение и запись микросхемы осуществляется по интерфейсу I2C. Резисторы 4.7кОм и 1 кОм обеспечивают напряжение на выводе 3 не выше 3.9В, поскольку при большем напряжении батареи (по отношению к питающим +5В) микросхема переходит в спящий режим при котором блокирутся интерфейс I2C. Кремниевый диод препятствует разряду ионистора при отсутствии основного питания. Вместо ионистора может быть применена литиевая батарея на 3В или конденсатор. Установка часов осуществляется удержанием кнопки на выводе P3.7 процессора во время сброса (включения питания). Устанавливаемое время фиксировано и составляет 21час 1мин 00секунд. В варианте автора часы устанавливались один раз в год. За этот период уход часов составил 15минут.

Измерение освещенности осуществляется фоторезистором ФР1-3 номиналом 150КОм. Изменение порога освещенности осуществляется потенциометром 10Ком. Изменением пременного резистора добиваются выключения освещения аквариума при достаточной наружней освещенности. Если за период примерно 17минут напряжение на выводе процессора P1.1 будет меньше, чем на P1.2 в течении суммарного времени 9минут, освещение будет выключено.

Процессор управляет двумя светодиодами. Синий работает с периодом 1с и показывает наличие секундных импульсов от микросхемы часов. Работа желтого светодиода зависит от режима. В ночном режиме светодиод постоянно включен. В дневном режиме светодиод мигает с интервалом 350мс. При высокой освещенности (в дневном режиме, когда напряжение на выводе процессора P1.1 будет меньше, чем на P1.2) светодиод выключен.

Частота кварца процессора может быть любой. Все временные задержки определяются от секундных интервалов микросхемы - часов. Частота кварца определяет лишь период мигания желтого светодиода и скорость обмена по шине I2C.

Силовые ключи собраны на оптронных семисторах MOC3023 и отечественных симисторах TS106. Микросхема MOC3023 включена по типовой схеме.

Программное обеспечение

Программа блока жизнеобеспечения аквариума

При ассемблировании необходимо, чтобы include - файлы находились в одном директории с основным файлом или указать другой путь вконце файла Aquarium.asm. При включении питания процессор инициализирует рабочие ячейки ОЗУ. Далее инициализируется микросхема-часы DS1307 (без изменения текущего времени), микросхема - термометр DS1621 и выполняется основной цикл программы. После завершения основного цикла компрессор - перерыв 5мин - фильтр - перерыв 5мин происходит рестарт программы и выключение питания микросхемы - термометра DS1621 на время 1с.

Описание констант программы автомобильного комплекта

Номер строки программы Значение Описание
22 7 Константа, определяющая время прерывания аппаратного таймера 0 (50мс). Младший байт
23 4Ch Константа, определяющая время прерывания аппаратного таймера 0 (50мс). Старший байт
25 7 Константа, определяющая период мигания желтого светодиода (350мс)
54 0 Инициализация ячейки памяти измерения светлого периода фильтра
55 0 Инициализация ячейки памяти измерения темного периода фильтра
56, 57 0FFh, 4 Инициализация счетчика 17 минут
60 1 Время блокировки питания микросхемы - термометра DS1621 на время (1с)
65 21h Установка времени (часы, BCD формат)
68 1 Установка времени (минуты, BCD формат)
69 0 Установка времени (секунды, BCD формат)
93 60 Продолжительность работы компрессора (в минутах)
99 5 Продолжительность паузы после работы компрессора (в минутах)
104 60 Продолжительность работы фильтpа (в минутах)
109 5 Продолжительность паузы после работы фильтpа (в минутах)
114 4 Перезагрузка старшего байта программного счетчика 17минут
124 0 Инициализация ячейки памяти измерения темного периода фильтра
125 0 Инициализация ячейки памяти измерения светлого периода фильтра
126 0FFh Перезагрузка младшего байта программного счетчика 17минут
136 8 Компаратор начала дневного режима (часы)
141 30h Компаратор начала дневного режима (минуты, BCD формат)
145 21h Компаратор конца дневного режима (часы, BCD формат)
150 30h Компаратор конца дневного режима (минуты, BCD формат)
159 23 Нижний порог температуры

Файлы проекта:
Принципиальная схема блока жизнеобеспечения аквариума
Программа блока жизнеобеспечения аквариума
Исполняемый файл пограммы
Принципиальная схема блока жизнеобеспечения аквариума в формате ORCAD 9.2
Ассемблер, линкер и файлы конфигурации для линкера фирмы 2500 A.D. Software, Inc.

Автор проекта: Шабров Дмитрий: dshabrov@mtu-net.ru

Назад