Предлогаю к рассмотрению схемы простых часов.
При подаче питания на схему происходит автоопрделение датчика температуры ds18b2. Наастройка типа индикатора выполняется редактированием EPROMa "Данные", перед программированием ПИКа.
Настройка функции часов в ЕЕПРОМ:
- адрес 2118 в hex формате, первый полубайт выбор одна или две мигающие точки часов "1*" или "2*"; второй полубайт тип индикатора "*0"=ОА(тр), "*1"=ОК(тр), "*2"=ОАТр2, "*3"=ОКТр2;
- адрес 2119 в hex формате, вид термодатчиков "00" - два проводных на одной шине, "01"- один проводной и один беспроводной.
Если две мигающие точки часов то 3 и 4 индикатор перевернуть схемотехнически для диагональных точек, при этом маркировка ножек 3 и 4 индикатора поменяется (см. 4asy690lcd.lay). Датчики температуры DS18B20 в данной схеме могут работать как по трёх проводной схеме так и по двухпроводной (режим паразитного питания). При срабатывании будильника на 1/4сек на выводах 10,11, 12 и 13 одновременно выставляется высокий уровень в течении минуты, при этом мигает дисплей (будильник не реализован в полной мере). Для схемы с общим анодом достаточно элемента 2И, для схемы ОК 4И.
Функции отображения девайсом: \выбор времени\, секунд\, температуры датчик №1\, датчика №2 (внешний RF)\, будильник\,текущая освещённость (0...5) и заданная яркость\.
Выбор отображения информации выполняется однократным нажатием клавиши.
Вход в настройки и переход между настройками выполняется при длительном удержании клавиши.
Редактирование настроек - однократное нажатие.
Переход по настройкам идёт по циклу: часы / минуты / секунды / датчик №1 / датчик №2 / будильник / коррекция яркости / коррекция хода часов(cr) / выбор попеременно-отображаемой информации(Lcd) / "выход". Автовыход через 63 сек.
Настройка датчиков температуры выполняется с каждым по отдельности. Входим в настройки первого датчика, подключаем его ногу управления к схеме и жмём кратковременно клавишу, должны появиться его показания.
Переходим в настройки второго (длительно удержав клавишу), подключаем его ногу управления к схеме и жмём кратковременно клавишу, должны появиться его показания. Для радиодатчика показания считываются с радиопередатчика при первой передачи им данных и не требуется программирование второго датчика DS. В настройках только можно обнулить адерес RF передатчика.
Выходим из настроек и оба датчика подключаем к схеме. При этом в PIC-контроллер записывается уникальный серийный номер каждого из датчиков по которому и будет дальнейший их опрос.
Имеется функция попеременного отображения информации (Lcd). "Lcd0" - отображается выбранная вами функция. "Lcd1" - попеременно время и термодатчик №1. "Lcd2" - попеременно время и термодатчик №2. "Lcd3" - попеременно термодатчик №1 и термодатчик №2. "Lcd4" - по кругу время, термодатчик №1, термодатчик №2.
Коррекция хода часов(cr) плюс минус одна единица соответствует плюс минус 1 сек за ~3 суток. При попеременном отображении информации реализовано плавное затухание индикатора.
Радиопередатчик 12f629 считывает показания DS и посылает данные по RF один раз в 2 минуты или по изменению состояния кнопки S1, остальное время спит обесточив RF i DS (9мкА). Время пробуждения радиопередатчика можно изменить в Eprome 12f629 в ячейке 2108, по умолчанию записано 34h (т.е. дес. число 52, коэффициент для расчёта 2,3 [52*2,3=~120сек]). Адрес радиопередатчика храниться в Eprome 12f629 в ячейке 2110, по умолчанию записан адрес 55h. В ячейках Eprom с 2100 по 2107 - серийник DS18b20. Радиоприёмник, часы 16F690, автоматически распознают адрес первого принятого радиопередатчика и сохраняют его в Eprome в ячейке 2110. Принятый адрес можно очистить в режиме настройки датчика №2 . Запись значений по умолчанию в указанные выше ячейки Eproma выполняется при программировании PICa.
Сообщения по радио и термодатчикам:
"OFrF" - в течении 12мин. отсутствует сигнал (ошибка) радиопередатчика,
"OF'C" - не подключён термодатчик DS,
"Er'C" - ошибка в чтении термодатчика.
Схема:
Питание схемы от 5В. Измерение напряжения питания непосредственно пик контроллера 16F690, при питании менее 3,6В переход в режим энергосбережения, при более 5,5В - сообщение U Er.
Возможность работы схемы от батареек 3В с переходом в режим энергосбережения (менее 1млА).
Схема реализована с минимумом деталей. RF-передатчик и DS18b20 запитываются от пик 12F629. Питание схемы передатчика я реализовал от батареек CR2016 и CR1616 в одном корпусе под 2032, склеив по контуру плюсом CR1616 к минусу CR2016. И поместил всё это дело в корпус из под киндер-сюрприза с отверстием под антенну.
Прошивка и схема часы PIC16F690 с 2 DS18B20 по RF - скачать
в одном архиве new! 25.02.15.
Частые проблемы: датчик DS врёт на +2С (на плате 16F690) - т.к. подогревается от соседних деталей, вынести подальше.
Передатчик.
RF transmitter and receiver брал на ebay.
bzzzsmuv@rambler.ru