Форма входа
Главная » Файлы » схемы на микроконтроллерах

Улучшенный термостат на ATtiny2313 и DS18B20
22.10.2011, 23:51

Улучшенный термостат на ATtiny2313 и DS18B20


    По многочисленным просьбам дорабатываю конструкцию термостата. Теперь умеет:

  • Измерение температуры от -55°С до +125°С (шаг 0,1°С)

  • Установка температуры от -55°С до +124°С (шаг 0,1°С !!!).

  • Гистерезис от 0,1°С до 25°С

Схема (кликабельно): 12.11.2009 привёл названия сегментов в соответствии с даташитом на индикатор.

На схеме показан второй вариант включения термодатчика, если он не захотел работать по однопроводной шине (что встречается очень редко). Обратите внимание, что подтягивающий резистор на 11 выводе должен быть именно 4,7кОм. Уменьшение или увеличение может привести к нестабильной работе датчика в случае включения по однопроводной схеме.

Индикатор можно применять как с общим анодом, так и с общим катодом - просто разные прошивки.

"*" обозначены компоненты необходимые для защиты от статического электричества, но их можно не устанавливать.

Управление:

Кнопками "+" и "-" устанавливают температуру включения нагрузки (на экране в первом сегменте отобразится символ подчёркивания "_").
При одновременном нажатии обеих кнопок устройство переходит в режим изменения гистерезиса (на экране в первом сегменте отобразится символ  "d"). Длительное удержание одной из кнопок приводит к ускоренному перебору значений. При отсутствии нажатий на кнопки в течении 5 секунд прибор переходит в режим отображения измеренной температуры, при этом происходит запоминание изменённых параметров в энергонезависимую память.

Индикация:

В первом сегменте отображается точка, если Т < Т уст., т.е. нагрузка включена. Точка отображается во всех режимах, даже при изменении установленной температуры или гистерезиса (если сохраняется условие Т < Т уст.). В этом же сегменте будет отображаться знак минуса "-" при отрицательной температуре.

Логика изменения состояния управляющих выводов:

Довольно часто возникают вопросы насчёт этого, поэтому немного нарисую.

Пример 1 (нагрев):

  • Установим температуру = 25,5°С, гистерезис (dT) = 1,2°С.

  • Текущая температура 20 градусов. (PD2 = 1, PD3 = 0, горит "точка").

  • Такое состояние будет сохранятся пока температура не достигнет Т уст. + dТ = 26,7°С.

  • Когда температура достигнет 26,7°С состояние выводов поменяется (PD2 = 0, PD3 = 1, не горит "точка")

  • Такое состояние будет сохранятся пока температура не опустится до Т уст. = 25,5°С.

  • Когда температура опустится до 25,5°С состояние выводов поменяется (PD2 = 1, PD3 = 0, горит "точка")

  • И так далее....

Пример 2 (охлаждение):

  • Установим температуру = -5,2°С, гистерезис (dT) = 1,5°С.

  • Текущая температура 20 градусов. (PD2 = 0, PD3 = 1, не горит "точка").

  • Такое состояние будет сохранятся пока температура не упадёт до Т уст. = -5,2°С.

  • Когда температура упадёт до -5,2°С состояние выводов поменяется (PD2 = 1, PD3 = 0, горит "точка")

  • Такое состояние будет сохранятся пока температура не поднимется до Т уст. + dТ = 6,7°С.

  • Когда температура поднимется до 6,7°С состояние выводов поменяется (PD2 = 0, PD3 = 1, не горит "точка")

  • И так далее....

Таким образом термостат можно применять для использования как в нагревательных целях (тепловентилятор, обогревательный котёл, инкубатор и т.д.), так и для охлаждения (холодильник, морозильник, и т.д.).

Печатная плата:

Печатную плату (Downloads: 3 401) я немного изменил, по сравнению с термометром и прошлой версией термостата, но она пригодна для использования и в них тоже. Тут убрал кварц и добавил контактные площадки для подключения кнопок и управления нагрузкой.

Обратите внимание на перемычки под резисторами в районе стабилитронов - они для того, чтобы можно было не устанавливать резисторы, которые отвечают за защиту от статического электричества (на схеме помечены звёздочкой).

Прошивки: (09.02.2009) выложены новые версии прошивок. Рекомендую обновиться т.к. найдено несколько некритичных ошибок и кой-чего оптимизировано. Обратите внимание на FUSES.

#  Имя  Примечание Кликов
· Для нагревателя ("точка" горит, когда T < Tуст.) ·
1. termostat_led_oa_heat.rar индикатор с ОА (+) 3 744
2. termostat_led_oc_heat.rar индикатор с ОК (-) 2 783
· Для холодильника ("точка" горит, когда T > Tуст.) ·
3. termostat_led_oa_cold.rar индикатор с ОА (+) 2 195
4. termostat_led_oc_cold.rar индикатор с ОК (-) 2 087
· Исходник ·
5. firmware_src.rar Универсальная прошивка 3 498

Исходник один на все варианты - компилируется в нужную версию путём комментирования (раскомментирования) нужных дэфайнов:

#define Cathode //для индикатора с ОК
//#define Anode //для индикатора с ОА

#define heat    //точка отображается если T < Tуст.
//#define cold  //точка отображается если T > Tуст.

Биты конфигурации (FUSES), для тех кто шьёт из PonyProg:

Обратите внимание!!! Раньше предлагалось выставить BODLEVEL0 и BODLEVEL1, что включало Brown-out Detection (BOD) - контроль за напряжением питания. Это полезно при нестабильном питании и предохраняет содержимое энергонезависимой памяти (EEPROM) от порчи во время падения напряжения питания. Но как оказалось есть некоторые подводные камни. При включенном BOD и температуре кристала близкой к 0°С работа устройства оказывалась очень нестабильной - постоянно происходил сброс. Причём уровень BOD не влиял на стабильность работы (пробовал 1.8В, 2.7В, 4.3В). Питание при этом оставалось стабильное (питание от батарейки) - проверялось осциллографом. Поэтому рекомендую убрать "галочки" в конфигурации с всех BODLEVEL.

Если есть вопросы или предложения - пишите на ФОРУМ!

Категория: схемы на микроконтроллерах | Добавил: kuklotank
Просмотров: 12101 | Загрузок: 0 | Комментарии: 7 | Рейтинг: 0.0/0
Всего комментариев: 6
6 andrej012  
Всё в порядке, была трещинка в дорожке дата от датчика,схема заработала, только датчик почему греется и показывает выше нормы на 4 градуса
?

5 andrej012  
Вчера собрали одну такую схему, но к сожалению датчик не видит, отображает ноль с точками, хотя регулировка установки значений температуры работает, напруга везде есть, датчик рабочий. У кого так было, есть идеи какие?

4 Bohdan  
Собрал 2 таких схемы и на каждой получил неприятный баг.
1-я схема с реле,к реле нагрузка 60Вт.
2-я без ничего, тупо температуру мерить.
Сначала все работает как надо - температура меряется, релешка щелкает, но по прошествии примерно двух суток индикация начинает прыгать между нулем и текущей температурой. Сначала грешил на питание и на скачок во время включения нагрузки, но проблема проявляет себя на обеих схемах и с разными источниками питания.
Поэтому если кто вздумает поставить это на инкубатор, как сделал я, поганяйте предварительно схемку вхолостую.

3 Валерий  
вылез еще один курьез даной схемы,при обрыве неисправности датчика температуры на индикаторе высвечиваются 000 и схема работает дальше,распозная ето как 0 температуру.в моем случае почти закипел котел,просьба автора доработать прошивку

2 Валерий  
пробовал и с прошивкой с общим катодом,тоже самое

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

Имя *:
Email *:
Код *:
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0