На базе проекта Дмитрия Мосина (startcd.narod.ru).
Доработка проекта напильником Александр Смарыго (sany_impuls @ pisem net).
Кнопка PLUS - плюс/on. В режиме SETUP листать меню.
Кнопка MINUS - минус/__(off). В режиме SETUP листать меню.
Кнопка SET - вход в выбранный режим. Далее переход к следующему параметру (мигающему полю).
Кнопка F - выход из режима. Навигация в оснвном меню.
Все режимы, кроме нулевого и режима таймера, имеют завершение по времени. Если не было нажатий более 30 секунд, устанавливается режим ноль.
Для записи значений в EEPROM нужно все значения в подрежиме подтвердить нажатием SET.
Пример: LIGHT ->SET-> L.ooooo ->SET-> НО4Ь L.2 ->SET-> 23 ->SET-> 06 ->SET-> LIGHT .
Основной режим отображения (Режим 0) |
|
"PLUS" - быстрый переход в режим установки отображения -->
"MINUS" - быстрый переход в режим установки будильников
"SET" - отображение запрограммированных строк режима
"F" - вход в основное меню |
Основное меню |
|
Режим установки будильников -->
(думаю надо убрать, так как получается дубляж) |
|
Режим работы с таймером --> |
|
Вход в меню настроек |
Меню настроек |
|
Настройка часов --> |
|
Настройка термостатов --> |
|
Управление портами нагрузки -->
(думаю надо перенести в "Основное меню", вместо будильников) |
|
Программирование строк кнопки "SET" --> |
|
Настройка дополнительных опций будильника --> |
|
Установки яркости --> |
|
Настройка частот ШИМ для биппера (пьезо) --> |
|
Настройка обработчика температуры --> |
|
Настройка обработчика давления --> |
|
Инициализация ВСЕГО в установки по умолчанию. Обязательно нужно сделать при первом запуске, либо при сбоях EEPROM (пишут что бывает такое с EEPROM, ни разу не видел) |
Быстрый переход - Режим установки отображения (вверх) |
|
1я строка:
- 2й разряд - № режима (8 режимов по 4 для каждой строки)
- 3й разряд - № строки (1я строка - сегмент А, 2я - сегмент D)
- 4й разряд - № формата отображения, всего 8
- 7-9й разряд - длительность режима в секундах, значение "0" - режим отключен
2я строка - отображение выбранного формата |
Основное меню - Режим установки будильников (вверх) |
|
1я строка:
- 1й разряд - № будильника
- 2-3й разряд - статус (вкл./выкл.)
- 5-9й разряд - время включения
2я строка - установка дней недели срабатывания |
|
Будильники управления нагрузкой делятся на 4 группы по 4 штуки, № группы в 4м разряде 1й строки (1я гр. - сегмент А, 2я - сегменты А+В и т.д.)
2я строка - отображение выбранного режима |
|
Для будильников управления нагрузкой дополнительно устанавливается длительность (макс. 23-59-59). Главное чтобы длительность будильников oдной группы не накладывалась друг на друга!!! Защиты от "дурака" нет!!! |
Основное меню - Режим работы с таймером (вверх) |
|
2я строка:
- 1й разряд - статус таймера (вкл./выкл)
- далее длительность (макс. 99-59-59)
При старте таймера нога PIN_timer устанавливается в лог.1, при ручной остановке в лог.0, при окончании установленного времени в лог.0 плюс подается звуковой сигнал (в зависимости от настроек) |
Меню настроек - Режим настройки часов (вверх) |
|
Очередность перехода:Сек->Мин->Час->День->Год->Месяц->Число |
|
1я строка - сигнал каждый час правда только на пьезо (ШИМ)
2я строка - Коррекция хода часов. Данная величина прибавляется или вычитается каждый час. Шаг 0.008 секунды. (50 значений), максимальное значение 0.391. Пример расчета: при коррекции равной нулю измеряется уход часов, например за 5 дней часы убежали на 3 секунды, тогда коррекция ровна 3/(5*24)=0.025. |
Меню настроек - Режим настройки термостатов (вверх) |
|
1я строка 8й разряд - № термостата
2я строка - две температуры.
Алгоритм работы:1я температура задает порог включения, 2я порог отключения. Разность температур = гистерезис (думаю ввести статус (вкл./выкл) для каждого т-стата. сейчас просто ставлю пороги выше реального для откл. т-стата) |
Меню настроек - Режим управления портами нагрузки (вверх) |
|
Ручное управление портами нагрузки для экстренного вмешательства |
Меню настроек - Программирование строк кнопки "SET" (вверх) |
|
1я строка:
- 4й разряд - № строки
- 8й разряд - № режима
2я строка - отображение выбранного режима |
Меню настроек - Настройка дополнительных опций будильника (вверх) |
|
1я строка - выбор режима работы будильника:
- bIP - биппер (пьезо)
- Pin - нога CALLS_OSN
- ОБА - использовать оба варианта
2я строка - отсрочка сигнала. При откл. отсрочке будильник выключается любой клавишей. При вкл. отсрочке сигнала будильник откл. кнопкой "SET", при нажатии других кнопок сигнал отключается, но сработает примерно через 5 минут. |
|
При активной отсрочке сигнала, в основном режиме мигает точка последнего разряда 1й строки. Для отключения отсрочки, при отсутствующем сигнале, нужно перейти в режим "SET" и нажать PLUS или MINUS, мигающая точка исчезнет. |
Меню настроек - Установки яркости (вверх) |
|
1я строка - дневная яркость
2я строка - ночная яркость (не рекомендую использовать самое маленькое значение, сделано для мигания селектора) |
|
Ночное время "с" "до" |
Меню настроек - Настройка частот ШИМ для биппера (пьезо) (вверх) |
|
после входа в режим кнопками плюс/минус выбирается: budil. или button соответственно частота ШИМ для будильника и кнопок. Частота генерируется в режиме быстрой ШИМ (CTC mode). Верхний порог задается регистром OCR1A1. H004-старший байт L000-младший байт. Что бы отключить сигнал от нажатия кнопок - установить H000 L000. Если в режиме УSt Буd. выбрана опция PIN, для будильника ШИМ сигнал выводится не будет. |
|
Меню настроек - Настройка обработчика температуры (вверх) |
|
1я строка: Выбор отображения температуры.
- 1 - 07.5
- 2 - 7.5(гашение нуля.)
2я строка показывает, как определилось подключение датчиков:
- on - датчик подключен 3 проводами
- PA.- паразитное питание, датчик подключен 2 проводами
- --- датчик отсутствует
При выходе из этого режима датчики настраиваются на 12 бит. |
|
Интервал измерения тенденции температуры (работает в режимах отображения одного датчика):
- "-" - нет изменений
- "сегмент В" - повышение
- "сегмент С" - понижение
гистерезис 0,2 градуса |
Меню настроек - Настройка обработчика давления (вверх) |
|
1я строка:
- 2-4й разряд - коэффициент коррекции (врать не буду, по моему "относительного нуля" т.е. "над уровнем моря")
- 6-8й разряд - тонкая коррекция показаний под опорное напряжение АЦП
2я строка - текущее давление с учетом коррекций |
|
Интервал измерения тенденции давления:
- "-" - нет изменений
- "сегмент В" - повышение
- "сегмент С" - понижение
В основном режиме отображения замер происходит раз в 10 сек, в режиме настройки обработчика каждую секунду |
!Плюшки!(вверх) |
|
При срабатывании будильника (не нагрузки), в зависимости от текущего времени, часы желают вам доброго времени суток =)
1я строка:
- 3й разряд - № будильника
- далее текущее время
2я строка - приветствие бегущей строкой |
Для экономии, в режиме питания от батарей запрещается отсрочка сигнала, останавливается работа таймера, отключаются порты нагрузок и термостатов, прекращаются все замеры.
При прошивке мк установите fuse-биты CKSEL3..0 в 0100 (внутренний RC генератор 8 Meg ). Cбросить основные переменные в программе
Если после сборки данного устройства вы испытываете чувство удовлетворения от содеяного, то можете отблагодарить:
Дмитрия (автора) - за труды: яндекс кошелёк 41001377752875, вебмани R421483449411
ну и мне, Александру, накапать немного - за мой посильный вклад: вебмани R248399418405