РадиоКот :: Терморегулятор на микроконтроллере PIC16F84 и датчике DS18B20.
Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Теги статьи: ТермостатДобавить тег

Терморегулятор на микроконтроллере PIC16F84 и датчике DS18B20.

Автор: Павлов Александр
Опубликовано 18.08.2010

2010

Не смотря на огромное количество цифровых термометров и терморегуляторов, представленных на различных форумах, тема всегда остается актуальной, ввиду большого разброса пожеланий к такому изделию. Попытки сделать его универсальным увеличивают сложность схемы и естественно габариты всего устройства. В данной статье представлена попытка собрать более-менее универсальное, законченное устройство для применения в быту. Хотя первоначально это задумывалось, как отладочное и экспериментальное средство для изучения программирования, так как этот процесс должен подразумевать конкретную цель с конечным результатом, иначе будет не интересно, и все желания что-то изучить быстро остывают, не имея практического подтверждения и проверки. Выбор компонентов и микроконтроллера обусловлен их наличием и желанием хоть как-то применить, чтобы не валялось зря, вот и результат работы.
Область применения терморегулятора широка. Возможно его использовать для поддержания температуры в овощехранилище в зимнее время, как реле управления холодильником, и прочие варианты. Изготовление в отдельном корпусе G766 позволяет использовать его, как самостоятельное устройство, или в составе какой-либо системы управления. Терморегулятор состоит из двух плат, спаянных под прямым углом между собой, небольшого пластинчатого радиатора для симистора, внешнего датчика температуры, на 3-х метровом шнуре. Датчик использован один, в схеме с 3-х проводным включением и 12-и разрядным разрешением. Выход терморегулятора рассчитан на подключение нагрузки переменного тока 220В до 10A. (ток зависит от применяемого симистора и радиатора).

Схема

Схема разработана на основе аналогичных конструкций из журнала Радио № 10 за 2003г. и Радио № 1 за 2006г. В этом варианте изменены алгоритм работы, индикация, анализ сравнения чисел, выбор установок. Обновление температуры (опрос датчика) один раз в 1,05 сек. Расположение индикатора, кнопок и выключателя питания на передней панели, а всех разъемов подключения на задней панели, позволило использовать прибор более функционально и возможность скрыть все провода, при монтаже в составе другого изделия. Индикатор 4-х разрядный семисегментный с ОА (цвет свечения по желанию пользователя). Отображение температуры с фиксированной запятой младшего разряда, а старшие разряды с гашением не значащих нулей. Применение индикатора с суперяркими светодиодами в сегментах, или красного цвета позволит использовать плату (первоначальный вариант) без доработки. В моем распоряжении оказался обычный индикатор с зелеными светодиодами, что потребовало установку дополнительных ключей в цепи анодов (доработка указана на схеме), для увеличения яркости свечения сегментов, это еще и снизило влияние на яркость свечения сегментов, при разном количестве горящих в разряде. Чтобы исключить вопросы про точность датчика и необходимость вывода десятичной доли градуса, на краях измеряемого диапазона, можно сказать, что датчик работает в 12 разрядном режиме, считываются все разряды и преобразуются в цифровой вид, индикатор позволяет это сделать во всем диапазоне измеряемых температур. А вот оценка точности, потребность в десятичных долях градуса, на краях диапазона, на усмотрение пользователя, тем более эти возможности осуществимы изменением программы, под конкретные задачи. Сколько людей, столько и мнений, и пожеланий. На мой взгляд, все функционально и есть возможность подстроиться под широкую область применения. Была задумка ввести калибровку под применяемый датчик и записывать ее в память (где то встречалось в интернете) но пока такая точность не была востребована. А если и будет замечена неточность измерений и в поддержании заданной температуры, то все можно решить подстройкой гистерезиса и сдвигом установленного значения в требуемую сторону.
На передней панели кнопка "SET" переключает выбор режима установок: гистерезиса температуры, инверсии выхода (для холодильника), скважности (П- регулирование), температуры уставки. Кнопки "Минус" и "Плюс" меняют значения уставок, включают или выключают соответственно режимы инверсии и П-регулирования. После изменения установок и режимов, все записывается в энергонезависимую память EEPROM МК. Светодиод отображает подачу напряжения питания на выходную розетку.
При включении прибора на мигающем индикаторе по 2 секунды последовательно отображаются:
1 установленная температура ( далее по тексту Ту )в формате "XXX.X"
2 установленный гистерезис ( далее по тексту дТ ) в формате "d X.X"
3 если установлена инверсия, то отображается в формате "? O.n"
4 если установлено П-регулирование, то отображается в формате "П O.n"
Далее происходит инициализация датчика и его проверка, если он неисправен или не получен импульс присутствия по различным причинам, то на индикаторе отображается ошибка в формате "Егг." в течении 2 сек, а затем вновь происходит проверка до восстановления связи с датчиком. Если все исправно, то далее происходит измерение температуры ( Ти ) и ее сравнение с установленной с учетом гистерезиса, причем гистерезис, как в положительную, так и в отрицательную сторону. Например, установленная температура +2гр. с гистерезисом в 0,4гр. будет поддерживаться в интервале от +1,8 гр. до +2,2 гр. Реакция на включение, или выключение нагревателя, при отключенных инверсии и П-регулировки происходит только после 5 замеров, подтверждающих необходимость коммутации выхода (для исключения ложных замеров). Исключение составляет режим П-регулирования, при котором по достижении температуры нижнего порога уставки (Ту-дТ/2) начинается ограничение мощности нагревателя, при помощи импульсного выключения/включения на определенное время, в течении каждого замера (т.е. каждую секунду). А по достижении верхнего предела уставки (Ту+дТ/2) нагреватель выключается полностью. При нулевом гистерезисе П-регулирование не работает, а нагреватель выключается при Ти>Ту и наоборот (так же через 5 замеров). Пропорции в соотношении вкл./выкл. нагрева устанавливаются исходя из дТ и Ти. Так например, при дТ в 1гр. количество ступеней регулировки 10. Длительность импульса включения определится из: (1Сек/дТ)*(Ту+дТ/2-Ти) с учетом десятичной части веса числа. Таким образом при равенстве Ти и Ту соотношение импульса и паузы 1:1 т.е. соблюдается пропорциональность регулирования мощности нагревателя на участке изменения температуры в диапазоне дТ.
Режим инверсии используется для управления холодильником и исключает включение П-регулировки. Более того, выключение компрессора холодильника осуще-ствляется при пятикратном подтверждении условия Ти < Ту-дТ/2, а его включение после подтверждения условия Ти > Ту+дТ/2 и выдержки времени более 2 минут, после предыдущего выключения или пропадания напряжения питания в сети. Это необходимо, чтобы не сжечь компрессор при тяжелом пуске, после его выключения на короткое время.
В режиме изменения установок индикатор мигает с частотой 3Гц. Установка порога температуры осуществляется кнопками "Плюс" и "Минус". Кратковременное нажатие кнопок изменяет Ту на 0,1°, а длительное удержание в нажатом положении изменяет Ту по 1° за 0,3 сек. (т.е. изменить уставку на 30° можно примерно за 10 сек).
По нажатию кнопки "Set" последовательно переходим в режимы установок:
1 Гистерезиса (от 0 до 8 град. кнопками "плюс" и "минус" с точностью 0,1°)
2 Включения инверсии ( кн. "плюс" включает, а кн. "минус" выключает)
3 П-регулирование ( кн. "плюс" включает, а кн. "минус" выключает)
4 Вновь установка температуры (далее по кольцу к п.1)
Так производят установки, нажимая кнопки с периодом менее 5 Сек. А если кнопки не нажимать более 5сек, то происходит запись режимов в память и переход к штатному установленному режиму работы. Есть особенность в установке инверсии и П-регулировки, они друг друга исключают, поэтому, если последним установить П-рег. то инверсии не будет, и наоборот, если установить инверсию, то П-рег. отключено, хоть до этого и было включено. Рекомендуется после изменений и записи в память, выключить терморегулятор на 3 сек, а потом включить, чтобы удостовериться в том, что установили (на всякий случай). Конструктивно прибор можно собрать в любом подходящем корпусе, использовать внешний блок питания на +5В, компоненты могут быть заменены любыми, подходящими по параметрам. Печатная плата выполняется любыми доступными средствами, по собственному усмотрению (ЛУТ, монтажка и др.) поэтому, думаю нет смысла навязывать собственный вариант. Программирование микроконтроллера производится внутрисхемно через разъем IDC10, но возможна установка МК в панельку и программировать во внешнем программаторе. Я использовал простейший комплект: программу WinPic800 и программатор собственного изготовления, немного отредактированный вариант из журнала Радио №10 за 2007г. Стр 31. Никаких проблем с установками бит конфигурации не было, они присутствуют в файле прошивки. Единственное условие, это необходимость отключать датчик во время программирования, мешает процессу своими ответами на импульсы по РВ7. Пытался прошивать программой Pony-prog, но что-то не получалось это делать стабильно. Программа дописывалась кусочками, по мере возможности, возникающих пожеланий и окончательной отладки. Вот вроде бы и все.

Файлы:
Печатные платы в формате PDF.
Файл проекта для Proteus.
Прошивка МК.

Вопросы, как всегда в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

20 0 1
11 0 1

Эти статьи вам тоже могут пригодиться: