Многофункциональный таймер+термостат на микроконтроллере ATMega8

Только ленивый Радиолюбитель не собирал таймер, часы или термометр на микроконтроллере. У меня возникло желание разработать многофункциональное устройство, которое будет сочетать в себе вышеуказанные приборы с широкими функциональными возможностями и в то же время управлять любой нагрузкой.

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

Рассмотрим подробно принципиальную схему, функции меню и возможности устройства.

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

В основе схемы устройства находится микроконтроллер производства фирмы ATMEL семейства AVR - ATMega8 (IC4). Микроконтроллер работает с цифровым датчиком температуры IC2 DS18B20 и микросхемой реального времени IC3 DS1307. Данные выводятся на жидкокристаллический дисплей на шестнадцать знаков в две строки. Нагрузка коммутируется с бытовой сетью переменного напряжения 220 В через симисторы VS1-VS3 (BT139), которые связаны с микроконтроллером через гальваническую развязку собранную на оптосимисторах ОС1-ОС3, в данном случае это МОС3061.Таким образом микроконтроллер управляет тремя устройствами, через отдельные функциональные возможности о которых говорится ниже.

схема таймер-термостат

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

Питание схемы осуществлено по классической схеме выпрямителя на базе интегрального стабилизатора напряжения TL7805 (IC1).

Отображение данных и настройка

В нормальном положении (главном меню) отображаются следующие данные:

  • текущее время (часы, минуты, секунды);
  • текущая температура в градусах Цельсия;
  • текущая дата (число, месяц, год);
  • текущие режимы (Р - расписание; Ц - цикл; Т - термостат;).
2

Режим отображения данных в главном меню

3

Отображение режимов для настройки

Поочередным нажатием кнопки S5 (Режим / Настр.) выбираем необходимую функцию для на настройки часов, календаря, режимов включения нагрузки или коррекции работы часов. Подойдя к нужной функции и нажав клавишу S4 (Выбор) можем изменить данные клавишами S2 и S1 («+» и «-»). Принимаем изменения клавишей S4 (Выбор), отменить же  изменение и вернуться в предыдущее меню возможно через S3 (Отмена / Пред.)

Режим «Расписание» (Р)

В режиме «Расписание», который отображается буквой «Р» (замечу, что меню отображается на украинском языке) можно задать суточное расписание включения и выключения нагрузки через симистор VS1. Здесь задаем время когда микроконтроллер включит нагрузку и время когда она будет выключена. Таких событий в расписании можно задать не более 15-ти.  В этом же меню выбираем включить или выключить данную функцию. 

4

Настройка режима «Расписание»

При включенном режиме "Расписание" в главном меню отображается буква «Р».
Режим «Цикл» (Ц)

В режиме «Цикл» задается циклическое включение и выключение нагрузки на симисторе VS2. Здесь выбирается интервал времени в минутах в течении которого нагрузка будет включена и отдельно настраиваем сколько ей быть выключенной.  Это будет повторяться до тех пор, пока не выключить данный режим. 

5

Настройка режима «Цикл»

При включенном режиме "Цикл" в главном меню отображается буква «Ц».


Режим «Термостат» (Т)

В режиме «Термостат» мы можем управлять электрическим нагревателем или охладителем через симистор VS3. Для этого выбираем пороговое значение температуры при котором включается нагреватель или охладитель. Если в настройке выбрать опцию «Нагреватель», то нагрузка включится при изменении температуры на 1ºС ниже заданного значения. При включенной опции «Охладитель» нагрузка включится при изменении температуры на 1ºС выше заданного значения.

6

Настройка режима «Термостат»

При включенном режиме "Термостат" в главном меню отображается буква «Т».

Функция «Коррекция»

Известно, что точность подобных часов зависит от микросхемы реального времени DS1307 и специального кварцевого резонатора частотой 32.768 кГц и, как правило, трудно подобрать детали для абсолютно точных часов. Поэтому реализована  функция «Коррекция», где можно задать компенсацию времени.

В настройке задаем сколько секунд  добавить или отнять в сутки или в неделю.

Печатная плата и программа
Расположение деталей на печатной плате

Расположение деталей на печатной плате

Расположение розеток на задней стенке прибора

Расположение розеток на задней стенке прибора

При программировании микроконтроллера фьюзы выставляем так:

Fuses1

Чтобы увидеть ссылку войдите или зарегистрируйтесь


Внимание! Есть научная работа по этому проекту написанная на 54 страницы (на украинском языке). Оформление идеально подходит под дипломную или курсовую работу. Скачать содержание.

Связь с автором

Постоянная ссылка на это сообщение: http://meandr.org/archives/25160

22 комментария

Перейти полю для комментария

  1. Привет! А есть прошивка на латинских символах не для кириличных дисплеев?

    1. Нет

  2. Не пойму- почему так кренка греется?. Проверил на КЗ несколько раз- всё в норме.

    1. Значит есть большая нагрузка. Смотрите ошибку в монтаже.

    2. падение большое , подсветка индикатора больше 150мА забирает.
      перед 5 вольтовой поставить еще одну на 9 вольт ,или , что нибудь на mc34063.

  3. Подскажите, как правильно прошить микроконтроллер? В папке 3 файла.

    1. Прошить микроконтроллер файлом с расширением .hex

  4. Это была старая папка. Все, прошил.

  5. А как в режиме коррекции включить -9 секунд? плюсом и минусом регулируется от 0 до 59 только... как включить в -?

    1. В этой прошивке реализован режим коррекции времени для отстающих часов. Можно только добавлять секунды.

  6. чет часы неработают. показывают 00:00:80

    1. После настройки времени часы будут идти нормально

  7. спасибо все получилось

  8. Иногда зависает индикация. Как с этим бороться?

  9. В режиме термостат нагрузка я так понял сама не отключается. После включения ее надо отключать самому.

    1. Отключается при температуре выше указанной. В режиме охладитель (вентилятор) отключается при температуре ниже указанной.

  10. Спасибо.

  11. Можете скинуть исходники пожалуйста

  12. почему не работает с обогревателем . с лампой 60 ватт работает

  13. Здравствуйте! Можете скинуть исходники?

  14. Здравствуйте! Не мог найти подходящую конструкцию, чтоб и термостат был и циклический таймер. Собрал Ваш девайс. Запускается экран только когда кнопки потычешь. И в конце каждого часа функция цикл срывается на частоту переключения около 10 гц на одну минуту. Не подскажете в чем дело? И еще... Можно ли поправить прошивку цикла на секунды?

  15. прошивку на латинских символах можно сделать.брал дисплеи на али так там латыница и иероглифы.

Добавить комментарий