Главная страница.

Часы-термометр для дома

Общее описание

Часы-термометр для дома просто незаменимая вещь. Кроме времени они показывают температуру на улице. А ведь прежде чем выходить на улицу, всегда есть смысл узнать какая там температура, чтобы правильно одеться. Самым главным в часах, для удобства в эксплуатации, является размер, яркость и цвет индикаторов. Высота знака индикатора (3 см.) такова, чтобы человеку с нормальным зрением не напрягаясь видеть показания часов с расстояния 4 метров. Яркость индикаторов достаточна, чтобы их хорошо было видно днем. Ночью их видно еще лучше, но при этом свет не очень яркий и не раздражает. Цвет индикаторов спокойный - зеленый. Часы попеременно показывают время и температуру на большом и ярком индикаторе, поэтому к ним не нужно подходить, чтобы узнать показания. В общем вещь просто незаменимая!
Погрешность измерения температуры определяется погрешностью датчика температуры и составляет не больше плюс-минус 0.5 градусов в диапазоне от -10 до 85 градусов Цельсия. В остальном диапазоне погрешность не хуже плюс-минус 2 градусов. При этом обязательным условием является установка датчика температуры таким образом, чтобы он всегда находился в тени и на расстоянии не менее 15 см от стены. Я установил датчик под плитой балкона.

Рабочий режим

На индикаторе периодически отображаются значения времени и температуры. Период отображения каждого значения равен 4 секундам. Время отображается в 24 часовом формате - ЧЧ.ММ, при этом старший не значащий ноль часов не отображается. Точка мигает в соответствии с ходом секунд.
Измерение температуры производится один раз в минуту. Считанное с датчика значение температуры сохраняется в памяти контроллера организованной для хранения 5 последних измерений. Для отображения на индикаторе последнее записанное в память значение температуры округляется до целых градусов Цельсия. При отображении температуры в крайнем правом разряде индикатора высвечивается символ градуса. Если за последние 5 минут температура внешнего датчика изменяется больше чем на 0.2 градуса, то символ градуса периодически сменяется символом повышения (стрелка вверх) или понижения (стрелка вниз) температуры.
Если в рабочем режиме нажать на кнопку "Меньше", то на индикаторе немедленно отображается время. Если нажать на кнопку "Больше", то температура. При этом одновременно с отображением температуры последнего измерения запускается новый процесс измерения температуры. Примерно через секунду считанное с датчика значение температуры отображается на индикаторе. Причем температура отображается с десятыми долями. В таком формате температура отображается до следующего измерения - примерно 1 минуту.
Если датчик температуры отсутствует или читается с ошибкой, то на индикаторе постоянно отображается текущее значение времени.

Режим установки времени

Для того, чтобы войти в режим установки времени, необходимо нажать и удерживать в нажатом состоянии кнопку "Ввод". Через 3 секунды часы перейдут в режим установки минут. При этом показания минут на индикаторе будут мигать. Кнопками "Меньше" и "Больше" можно установить новое значение времени. Кратковременное нажатие на кнопку "Меньше" или "Больше" изменяет значение времени на единицу, а удержание кнопки в нажатом состоянии непрерывно изменяет значение времени, соответственно в меньшую или большую сторону. При достижении необходимого значения времени кратковременным нажатием кнопки "Ввод" можно переключиться в режим установки часов. При этом показания часов будут мигать. Чтобы сохранить установленное значение времени, необходимо нажать и удерживать в нажатом состоянии кнопку "Ввод", пока не произойдет выход из режима установки времени. При установке нового значения времени секунды всегда обнуляются. Если в режиме установки времени в течении 10 секунд ни одна кнопка не будет нажата, то часы автоматически перейдут в рабочий режим. Установки нового значения времени при этом не произойдет.

Схемотехника

Часы-термометр выполнены на микроконтроллере ATiny2313-20PI. В устройстве использованы часы реального времени DS1307N, с резервным питанием от батареи CR2032 (3В). Датчиком температуры служит цифровой датчик температуры DS18B20.
В часах я использовал индикаторы с общим катодом BS-CA12RD. Индикаторы работают в динамическом режиме, реализованном программно. Каждый разряд индикатора включается 100 раз в секунду и 3/4 общего времени работы индикатора находится в выключенном состоянии. В качестве верхних ключей для управления индикаторами используются транзисторы 2N3906, в качестве нижних 2N7000. Ключи выбраны исходя из условия, что каждый сегмент потребляет ток не более 20 mA. Максимальный постоянный ток ключей 200mA с запасом соответствует максимальному току на разряд индикатора 160 mA. Стабилизатор 7805 устанавливается на небольшой радиатор. Блок питания используется готовый от игровой приставки. На блоке питания маркировка "for MEGA DRIVE 2" Input: 220V Output: D.C. 10V 1.3A.
Для тех кто захочет повторить конструкцию на индикаторах с общим анодом могу предложить, как вариант, схему для индикаторов BS-AA12RD. В качестве верхних ключей для управления индикаторами используются транзисторы 2N3906, в качестве нижних ULN2803A.

Программа

Программа написана на AVR ассемблере. Комментарии в тексте присутствуют. Особенность программы в том, что она без изменения может работать и в схеме с индикаторами с общим анодом и в схеме с индикаторами с общим катодом. Весь фокус в том, что при инициализации опрашивается уровень сигнала BT от кнопок и в зависимости от того низкий он или высокий выбирается алгоритм работы с кнопками и индикаторами.
При программировании микроконтроллера необходимо запрограммировать следующие биты:
CKSEL3, CKSEL1, CKSEL0, SUT0, BODLEVEL1, BODLEVEL0

Файлы проекта

Схема часов с индикаторами с общим катодом (PDF).

Схема часов с индикаторами с общим анодом (PDF).

Программа для часов (Версия 1.3 от 08.01.09), прошивка и проект для Proteus 7.4 SP3.

Вариант разводки печатной платы (Sprint-Layout 5.0 rus).
Файл прислал Рыбалка Игорь.

Адрес автора

Персональная страница

E-mail: ryaskin65@mail.ru



Сайт управляется системой uCoz