» » Термостат для отопления дачи инфракрасными обогревателями Иколайн. Дежурный режим, часы. DS1307, DS1631, Atmega8, энкодер

 
 
 
7

Термостат для отопления дачи инфракрасными обогревателями Иколайн. Дежурный режим, часы. DS1307, DS1631, Atmega8, энкодер

Разместил Discover 23 сентября 2014. Просмотров: 14 175

Как говорит мой коллега, что бы Гаврилов ни делал — все равно термометр получается…

Новая статья об еще одном термостате, который я делал для себя, что в последствии и определило его функциональность и конструктив.
Управляет мой термостат ИК-обогревателями типа «Иколайн ИКО-06», но может быть применён и с другими обогревателями.

Чего отапливаем?

Опуская критерии выбора, для обогрева кухни на даче я купил два инфракрасных обогревателя. Производитель рекомендует ставить 1 кВт на 10 м2. Кухня 18 м2, я поставил два по 0,6 кВт. Впечатления самые положительные.

ИК-обогреватель «Иколайн ИКО-06»

Мои родители проживают на даче от снега до снега. Весной и осенью на кухне, скажем — не жарко, тело тепла просит.
Нагреватели я приобрел умышленно без регулятора температуры. Во-первых, с регулятором это дороже, во-вторых, вряд ли я смог бы найти нужный мне функционал, а в-третьих — это же возможность что-то сделать самому, что любому радиолюбителю любо!

Функционал

• Поддержка заданной температуры в заданном диапазоне 10-35 гр. С 
• Включение, отключение по времени.
• Часы реального времени.
• Минимальная (дежурная) температура.

Компоненты, критерии выбора

• Управляющий микроконтроллер — Atmega8. Валялся на полке.
• Индикатор — TIC55. Валялся на полке.
• Часы реального времени — DS1307. Готовое решение часов реального времени со своим резервным питанием.
• Термодатчик — DS1631, термометр/термостат. Я как правило ориентируюсь на цифровые термо-датчики, ну, а поскольку для DS1307 нужна шина i2c, то и термо-датчик был выбран с такой же шиной.
• Управление — инкрементальный энкодер с кнопкой. Прикольно! С практической точки зрения, мы получаем три кнопки в одном установочном месте.
• Коммутация — электромагнитное реле Omron G6RN-1. Есть небольшой запас, катушка реле 5 В., контакты 8 А.

Схема и плата

Исключён фрагмент. Полный вариант статьи доступен только полноправным членам сообщества и подписчикам.
Пожалуйста, ознакомьтесь с условиями доступа.



Внешний 3D-вид созданный программой DipTrace.
Уж больно мне нравятся 3D картинки печатных плат!!!



Готовая печатная плата, сделанная ЛУТом



Размещение термодатчика внизу платы,
установочное место отделено воздушным зазором для термоизоляции

Качество платы на троечку. В то время я ещё баловался бумагой из глянцевых журналов. И мне редко удавалось добиться вменяемого результата. В настоящее время я пользуюсь специальной термотрансферной бумагой: результат всегда предсказуемый, никаких проблем с отмачиванием, тонер полностью остается на плате.

Работа

Индикация и режимы. Прибор имеет семь режимов работы:
1. Отображение текущей температуры
2. Отображение времени
3. Попеременное отображение температуры и времени
4. Установка температуры регулирования
5. Установка времени включения регулирования
6. Установка времени отключения регулирования
7. Установка времени

Прибор всегда включается в третьем режиме — попеременное отображение температуры и времени. Поворотом ручки энкодера влево и вправо изменяется режим работы/индикации.
Первые три режима — просто индикация, следующие четыре индикация и настройка параметров.

Вкратце о настройке. Настроек всего четыре: установка температуры регулирования, времени включения/отключения и настройка часов. Для настройки какого-либо параметра нужно нажать на кнопку энкодера, выставить нужное значение вращением ручки энкодера, нажать кнопку для запоминания параметра.

Проверка работы с отрицательными температурами

Взял я баллон охладителя CRAMOLINE FREEZER и попшикал до легкого инея.

CRAMOLINE FREEZER представляет собой идеальный инструмент для низкотемпературного тестирования электронных систем и термочувствительных компонентов. Обеспечивает быстрое охлаждение. Если хорошенько побрызгать, то до -50°С! Ну, нам столько не надо.


Программно-аппаратная часть

Программа написана на языке СИ в среде Atmel AVR Studio. Сразу оговорюсь, что код не блещет изяществом. Написан практически «в лоб», так как я, не собирался публиковать эту работу.
Регулирование температуры осуществляется двумя способами:
1. Включается принудительно в произвольный момент времени.
2. В заданном интервале времени.

С первым способом все понятно, в 1, 2 или 3 режиме нажимаем кнопку энкодера — термостат включен, в качестве индикатора зажигается подсветка дисплея. Нажали еще раз — термостат выключен. На самом деле не совсем выключен, а в качестве температуры регулирования устанавливается так называемая, по моей терминологии — дежурная температура равная +10 гр. С. Сделано это для того что бы предотвратить замерзание воды на кухне, если температура будет стремится нулю.

Второй способ. Устанавливается время включения и время отключения термостата. Например: 7-10. Термостат включится в семь утра и будет поддерживать установленную температуру до 10 утра. Естественно после можно будет включить термостат вручную. Регулирование по времени я использую для того что бы утром, к тому моменту как я выхожу умываться, завтракать — кухня уже прогрелась. Ну и отключается прибор сам, в установленное время.

Теперь немного заострю внимание на несколько не тривиальной аппаратно-программной реализации.
Три параметра, которые нужно хранить при отключении питания, я храню не в EEPROM микроконтроллера, а в часиках DS1307. В DS1307 есть SRAM, 64 байта. В области 00h-07h лежат данные RTC, то бишь дата, время. А с адреса 08h по 3Fh (56 байт), могут располагаться пользовательские данные. Вот там я и храню свои параметры. Не надо искать какой-либо смысл в этом, просто мне хотелось попробовать/побаловаться.
Выход SQW/OUT DS1307 настроен на генерацию меандра с частотой 1Гц. Выход подключен входу внешнего прерывания микроконтроллера. В обработчике прерывания устанавливается флаг, который разрешает чтение времени с DS1307.

Теперь про термометр. В качестве термодатчика я использую DS1631, он же термостат! У этой микросхемы есть настраиваемый выход — «Tout». То есть, сам датчик, посредством этого выхода осуществляет управление исполнительным устройством, микроконтроллер используется только для настройки порогов, которые хранятся в EEPROM DS1631. Для того что бы выключить регулирование, я перезаписываю пороги срабатывания.
Опять же, можно было это реализовать и на микроконтроллере, но хотелось побаловаться. Хотя, для подстраховки, на схеме я предусмотрел джемпер для переключения источника управления реле.

Конструктив

Корпус собран из того что валялось под руками, а под руками у меня в тот день валялись заглушки от салазок винчестеров от сервера Supermicro.


Половинки корпуса соединил также частями заглушек, для передней и задней стенки использовал оргсекло.

Получился вот такой корпус


Внешний вид готового устройства


Питается термостат от внешнего источника питания +5 В.


Обзор файлов проекта программы

Termostat.c — главный файл, содержит основную программу.
includes.h, global.h, init.h, init.c, avrlibtypes.h, avrlibdefs.h — файлы созданные программой AVR Wizard, использовал в то время. Сильно в этих файлах не копался. Добавил в файл init строчки для инициализации периферии.
i2c-soft.h, i2c-soft.c — программный драйвер шины i2c, автор указан в файлах.
tic55.h, tic55.c — библиотека для работы с индикатором tic55.
ds1307.h, ds1307.c — библиотека для работы с DS1307, позаимствована у CVAVR.
ds1631.h, ds1631.c — библиотека для работы с DS1631, позаимствована у CVAVR и подправлена.

Фьюзы



Небольшой видеоролик



Резюме

К аппаратной части у меня нет претензий, а вот в программной есть что изменить, улучшить. В частности, необходимо переделать опрос энкодера. У меня реализован алгоритм для ленивых — не правильный алгоритм. Один из выходов энкодера подключен к входу внешнего прерывания микроконтроллера. Вход настроен на срабатывание по фронту. В обработчике прерывания, я смотрю, какой уровень в этот момент времени на другом выходе энкодера, таким образом, я различаю вращение влево и вправо.

Собственно, прибор работает два года без нареканий и, если мне будет скучно, то я перепишу опрос энкодера, хотя это вряд ли — скучно мне не бывает!

Ссылки и файлы

Проект платы/схемы в DipTrace Diptrace.7z | Файл 15,21 Kb загружен 54 раз.
Прошивка: Termostat-hex.7z | Файл 4,37 Kb загружен 42 раз.
Даташит на DS1307 DS1307.pdf | Файл 262,14 Kb загружен 34 раз.
Даташит на DS1631 DS1631-DS1731.pdf | Файл 260,96 Kb загружен 34 раз.

• Заказать пачку термотрансферной бумаги, 10 листов А4. Бесплатная доставка.
• Заказать пачку термотрансферной бумаги, 50 листов А4. Бесплатная доставка.
• Заказать пачку термотрансферной бумаги, 100 листов А4. Бесплатная доставка.
Иван Гаврилов (Discover)
Вологодская обл. Череповецкий р-н, п.Тоншалово
Профиль Discover
Дата рождения: 13.09.1977.
Работаю в компании "Нординкрафт" , электрик по совместительству в своем ТСЖ.
С паяльником с 12 лет.
Интересы: паяльник, работа, фото, лес.
C 2007г занимаюсь микроконтроллерами AVR.

Напаяно уже много чего, всего и не припомню.
 

Понравилось? Палец вверх!

  • всего лайков: 72

Поделись с друзьями!

Связанные материалы:


Схема на Датагоре. Новая статья Автомат управления бойлером Ariston. Экономим электроэнергию и ресурс котла... Задумался я над вопросом, отключать или не отключать бойлер периодически? Одно из множества...
Схема на Датагоре. Новая статья Тёплые ламповые часы на газоразрядных индикаторах ИН-14, ATMEGA8, DS1307 и MC34063. Nixie-clock из Тулы... Последнее время весьма популярны часы в духе ретро, на газоразрядных индикаторах. В забугорье такие...
Схема на Датагоре. Новая статья PIC16F876: таймер вытяжного вентилятора в ванной и электронный термометр... Я недавно делал капитальный ремонт ванной комнаты и возник вопрос, как управлять вентилятором...
Схема на Датагоре. Новая статья Термометр + термостат на микроконтроллере PIC16F876 и датчиках DS18B20... История этого термометра началась в далёком 2011 году. Мне понадобилось в подвале частного дома, в...
Схема на Датагоре. Новая статья Водонагреватель для дачи. Блок автоматики... Покупать водонагреватель или нет - каждый решает для себя сам. По просьбе друга мне пришлось...
Схема на Датагоре. Новая статья Часы с GPS-синхронизацией времени и винтажными индикаторами ИН-12. Наш вариант Nixie Tube Clock... Не думал, что спустя много лет я вернусь к часам на газоразрядных индикаторах. В конце 70-х я...
Схема на Датагоре. Новая статья АНОНС! Платы QUAD в наличии... Уважаемые датагорчане и гости нашего кибер-города! Сегодня на собачьих упряжках через снега и льды...
Схема на Датагоре. Новая статья SHT10 + Atmega8: Микроконтроллерный модуль управления вентилятором санузла, v2... Доброго дня, сограждане! Представляю вторую версию блока управления вентилятором для ванной,...
Схема на Датагоре. Новая статья Люблю снега в кончале мая...... Федор Иванович Тютчев не был в Сибири, иначе его незабвенный стих мог бы звучать совершенно иначе!...
Схема на Датагоре. Новая статья Даташиты на микроконтроллеры AVR ATMega, ATTiny и AT90... Любому разработчику нужно знать специфику компонента, особенно если этот компонент -...
Схема на Датагоре. Новая статья ATmega8/L... Представляю вам даташит на микроконтроллер ATmega8/L фирмы Atmel. Если кто рискнёт перевести... ...
Схема на Датагоре. Новая статья Современный тюнер своими руками: УКВ стерео + микроконтроллер. Б.Ю.Семенов... Борис Юрьевич Семенов Современный тюнер своими руками: УКВ стерео + микроконтроллер В последние...
<
  • Гражданин
25 сентября 2014 01:04

Андрей / Andrey1078

  • С нами с 27.10.2009
  • Ушёл в реал Пользователь offline
  • 5 комментариев
  • 0 публикаций
 
  • 0
Хорошая работа все просто идеально !
Можно даже запустить кит.

<
  • Главный редактор
25 сентября 2014 13:39

Игорь Петрович Котов / Datagor

  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 631 комментарий
  • 261 публикация
 
  • 0
Цитата: Andrey1078
Можно даже запустить кит.
Андрей, если вы готовы инвестировать деньги в переработку этого проекта в серийный кит и в выпуск кита, напишите мне лично.
Если не готовы, то не делайте таких заявок.
wink

<
  • Гражданин
9 октября 2014 18:28

Алексей / zud

  • С нами с 25.03.2009
  • Ушёл в реал Пользователь offline
  • 72 комментария
  • 0 публикаций
 
  • 0
Желательно под DS1820 - у меня их много bye

<
  • Главный редактор
23 января 2015 19:16

Игорь Петрович Котов / Datagor

  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 631 комментарий
  • 261 публикация
 
  • 0
Пришло письмо в редакцию.
Цитата: Андрей
Здравствуйте, Иван!
Решил повторить ваше творение - термостат для дачи. Пол года назад собрал схему, и отложил пока не нашел экран tic55.
Оказалось, что их уже не выпускают. Облазил кучу интернет-магазинов. В результате нашел все же. Хороший человек просто подарил мне несколько б/у плат с такими дисплеями от счетчиков электроэнергии. И вот я все собрал и прошил. Но сей девайс не захотел сразу работать. На экране абракадабра.
При вращении энкодера иногда появляются слева надписи set, stop, start. Но настройку выполнить не получается. Сталкивались вы с такой проблемой? В чем может быть дело? Может надо фьюзы запрограммировать? Если да, то какие? Помогите пожалуйста. Уж очень много труда и времени ушло на создание устройства, жаль если ничего не выйдет!

Автор готовит картинки с фьюзами. Всё будет в порядке, Андрей.

UPD: Картинка в статье, пробуйте.

<
  • Кандидат
28 января 2015 15:59

Андрей / Andrew71

  • С нами с 28.01.2015
  • Ушёл в реал Пользователь offline
  • 2 комментария
  • 0 публикаций
 
  • 0
Здравствуйте, Иван!
Можно ли термостат DS1631 с конденсатором С6 разместить на отдельной плате и подключить через шлейф 15 см.? И можно ли индикатор тоже вынести отдельно через шлейф?

<
  • Гражданин
28 января 2015 17:11

Иван Гаврилов / Discover

  • С нами с 17.08.2009
  • Ушёл в реал Пользователь offline
  • 38 комментариев
  • 15 публикаций
 
  • +1
Andrew71
Теоретически I2C не предназначен на большие расстояния, так как является внутриблочным интерфейсом. Но я встречал в сети, кто-то описывал что работает на 10м. Лично я встречался с промышленной реализацией до 1м. думаю будет работать.
Индикатор тоже должен работать. Если не заработает, можно в исходниках уменьшить скорость передачи.

<
  • Кандидат
28 января 2015 22:22

Андрей / Andrew71

  • С нами с 28.01.2015
  • Ушёл в реал Пользователь offline
  • 2 комментария
  • 0 публикаций
 
  • 0
Иван, девайс прекрасно работает, но только, когда на ножке LOAD индикатора лежит мой палец. Только стоит убрать палец - индикация перестает обновляться. Я сначала думал, что это непропай на плате, но это не так. Вероятно я играю роль какого-то RC-контура. Только вот мне эта роль не нравиться. Какие идеи будут на этот счет?

Еще я нашел "недопечатку" в печатной плате. Нехватает одного проводника от кнопки энкодера.

Информация
Вы не можете участвовать в комментировании. Вероятные причины:
— Администратор остановил комментирование этой статьи.
— Вы не авторизовались на сайте. Войдите с паролем.
— Вы не зарегистрированы у нас. Зарегистрируйтесь.
— Вы зарегистрированы, но имеете низкий уровень доступа. Получите полный доступ.