Каталог статей


Выбранная схема!!!


5060
Термостат на Attiny2313 и DS18B20 ещё одна версия
В этой статье расскажу о сборке цифрового термостата, который бы измерял температуру и поддерживал ее на определенном, заранее установленном уровне. Как то мне на работе подкинули задачу собрать термостат для контроля и удержания в заданных пределах температуры горячей воды, которая подается в бытовые помещения. Тогда будем решать!
Сразу было решено собирать цифровой прибор. Теперь возник вопрос какой тип термодатчика применить? Так как температура будет контролироваться в баке, в котором находится ТЭН и особой точности тут не нужно, да и температуры не большие, то сразу отказался от термопар и термосопротивлений, во-первых достаточно дороги они и требуют сложной входной части прибора (для термопар – компенсация термо — Э.Д.С холодных концов, для термосопротивлений – компенсация сопротивления соединительной линии). Тут вспомнил про цифровые датчики температуры фирмы Dallas (ныне MAXIM). Одно время я долго работал с датчиком DS1821. Микросхема DS1821 может работать в режиме термометра или в режиме термостата. В первом из этих режимов DS1821 обеспечивает измерение температуры в диапазоне -55..+125°C с дискретностью 1°C. Самым привлекательным является то, что такой термометр уже откалиброван на заводе, гарантированная точность составляет +1°C в диапазоне 0..+85°C и +2°C во всем диапазоне рабочих температур. На ней я делал простые термостаты с верхним и нижним пределом срабатывания. Но, в данной ситуации мне нужен легко перестраиваемый прибор на другое значение интервалов температуры. А этот датчик нужно перепрограммировать на другой диапазон. Как – ни будь напишу статью про этот датчик, он довольно интересный! Этот датчик так же можно заставить работать как термометр, но выбор мой пал на более новый из этого семейства DS18B20. 


DS18B20 – цифровой термометр с программируемым разрешением, от 9 до 12–bit, которое может сохраняться в EEPROM памяти прибора.DS18B20 обменивается данными по 1-Wire шине и при этом может быть как единственным устройством на линии, так и работать в группе. Все процессы на шине управляются центральным микропроцессором.
Диапазон измерений от –55°C до +125°C и точностью 0.5°C в диапазоне от –10°C до +85°C. В дополнение, DS18B20 может питаться напряжением линии данных (“parasite power”), при отсутствии внешнего источника напряжения.
Каждый DS18B20 имеет уникальный 64-битный последовательный код, который позволяет, общаться с множеством датчиков DS18B20установленных на одной шине. Такой принцип позволяет использовать один микропроцессор, чтобы контролировать множество датчиков DS18B20, распределенных по большому участку. Диапазон работы датчика и точность меня
очень даже устраивала и на будующее можно еще куда датчик поставить придется, тут все просто. Для обмена данными термометр DS18B20 использует 1-Wire протокол (однопроводный протокол). Это низкоскоростной двунаправленный полудуплексный последовательный протокол обмена данными использующий всего один сигнальный провод. Естественно требуется еще и возвратный (земляной) провод. Имеется несколько типов сигналов, определенных 1-Wire протоколом — импульс сброса, импульс присутствия, запись 0, запись 1, чтение 0 и чтение 1. Все эти сигналы, за исключением импульса присутствия, формируются на шине главным устройством — MASTERом. В нашем случае это микроконтроллер. Принцип формирования сигналов во всех случаях одинаковый. В начальном состоянии 1-Wire шина с помощью резистора подтянута к плюсу питания. Главное устройство «проваливает» на определенное время 1-Wire шину в ноль, затем «отпускает» ее и, если нужно, «слушает» ответ подчиненного (SLAVE) устройства. В нашем случае подчиненное устройство — термометр DS18B20. 
Блок — схема DS18B20 (DS18S20, DS1820)

Схема подключения с внешним питанием датчиков

Можно подключать несколько датчиков параллельно.
Схема подключения датчика DS18B20 в режиме паразитного питания

Вывод Vdd соединяется с GND, а 1-Wire шина дополнительно подключается к источнику питания через полевой транзистор. 
Когда датчик DS18B20 выполняет преобразование температуры или копирует данные из ОЗУ в EEPROM память, он потребляет ток до 1,5 мА. Этот ток может вызывать недопустимое снижение напряжения на 1-Wire шине. Чтобы этого не происходило, 1-Wire шину на время выполнения этих операций подключают к источнику питания. Для этого и нужен полевой транзистор. Можно обойтись и без транзистора, но например когда соединительный кабель длинный, могут происходить сбои и работа будет не устойчива.
Датчик выбрали, теперь можно подумать и о схеме устройства сбора данных с датчика, индикации и управления нагрузкой.
Схем термостатов в интернете много, поэтому изобретать велосипед не стал, а взял схему вот отсюда



Схема довольно простая, ничего лишнего, удобная индикация и управление.
Схему немного доработал. Вместо реле, которое коммутирует нагрузку, поставил опторазвязку на сборке MOC3041 и симистор Т122-25, который будет включать ТЭН.
Кнопками "+" и "-" выставляется нижний порог температуры. В режиме изменения перед температурой отображается знак «t».

При одновременном нажатии обеих кнопок термостат входит в режим установки dt (дельта температуры). По умолчанию он равен 1, т.е. если мы кнопками "+" и "-" выставили температуру 30 градусов, то температура будет поддерживаться в пределах от 30 до 31 градуса. Если dt установить 2, то температура будет поддерживаться в пределах от 30 до 32 градусов. 

Если нет нажатий кнопок в течении 5 секунд индикация возвращается к отображению измеренной температуры.
В режиме измерения температуры индикатор отображает текущую измеренную температуру, и в первом сегменте символ «L» обозначает включенную нагрузку. Например:
— установленная температура 30 градусов, дельта 1 градус, измеренная температура 27,0 градуса. На индикаторе будет 

— установленная температура 30 градусов, дельта 1 градус, измеренная температура 32,0 градуса. На индикаторе будет 

Так же данный термостат можно использовать для холодильника, только выход на исполнительное устройство нужно брать с вывода 6 микроконтроллера.
Так как термостат позволяет выставлять температуру до +125 градусов, а мне этого не нужно, да и кто может кнопочки поклацать захочет ради интиреса и наклацает температуру воды в 90 градусов, то было решено ограничить диапазон от 0 до 60 градусов. Для этого на том же сайте есть проект в CodeVisionAVR, открываем его, в файле kbd.c находим следующий код 
if (T_LoadOn > 450)
{
T_LoadOn --; 
RefreshDisplay(); 
}

Это нижний предел выставляемой температуры. В файле termostat_led.c есть пояснения по форме представления температуры
//температура для удобства представлена так:
// — до 1000 = отрицательная
// — 1000 = 0
// — больше 1000 = положительная
// — 0,1°С = 1
//---------------------------------
//-55°C = 450
//-25°C = 750
//-10.1°C = 899
//0°C = 1000
//10.1°C = 1101
//25°C = 1250
//85°C = 1850
//125°C = 2250 

Т.е 450 это -55 градусов (1000-550=450), а мне нужен 0 градусов. Тогда 0 градусов будет 1000.
Изменяю код 
if (T_LoadOn > 1000)
{
T_LoadOn --; 
RefreshDisplay(); 
}

Теперь разберемся с верхним пределом
if (T_LoadOn < (2250 — DeltaT))
{
T_LoadOn ++; 
RefreshDisplay(); 

Тут число 2250 означает верхний предел температуры в 125 градусов ( 1000+1250=2250), а мне нужно 60 градусов, тогда 1000+600=1600
Меняем код и получаем 
if (T_LoadOn < (1600 — DeltaT))
{
T_LoadOn ++; 
RefreshDisplay(); 

Далее нажимаем в CodeVisionAVR кнопочку make the projekt и забираем готовый файл для прошивки. Вот так все просто. Термостат собран на печатной плате. Индикаторов для динамической индикации на тот момент не нашлось, были в наличии только сдвоенные для статики. Пришлось под них разводить под них отдельную платку, на той же плате расположены токоограничивающие резисторы (SMD)


Вот собственно весь термостат в сборе. Все было размещено на основании из изоляционного материала. Блок питания использовался готовый импульсный от вай фай точки доступа. Все это будет монтироваться в электрическом щите. Симистор стоит отдельно на небольшом радиаторе.



Вот и вся конструкция. В работе показала себя надежно, сбоев замечено не было.

АРХИВ:Скачать



Источник: http://electronics-lab.ru/blog/mcu/60.html
Категория: Термометры | Добавил: brys99 (10.11.2012)
Просмотров: 10015 | Теги: Термостат, версия, НА, Attiny2313, одна, DS18B20, ещё | Рейтинг: 4.7/3


Всего комментариев: 0

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

ьте свои комментарии !!!!

Имя *:
Email:
Код *:

Copyright Zloy Soft (Company) © 2008 - 2024