Терморегулятор на микроконтроллере PIC16F84 и датчике DS18B20 » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки
Опрос

Сколько лет вы занимаетесь программированием PIC микроконтроллеров?


от 0-1 года
1-3 года
3-5 лет
5-10 лет
более 10


Последние материалы
  • Тестовая плата для отладки программ на микроконтроллере PIC18F4550
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Электронная "Незабудка" для забывчивых
  • Популярные материалы
    Случайная книга
    Программирование устройств на PIC микроконтроллерах » Схемотехника » Устройства для дома » Терморегулятор на микроконтроллере PIC16F84 и датчике DS18B20
    Терморегулятор на микроконтроллере PIC16F84 и датчике DS18B20
    Автор публикации: alex Просмотров: 18046 Добавлен: 17-07-2012, 18:38 Комментарии: 0

         Не смотря на огромное количество цифровых термометров и терморегуляторов, представленных на различных форумах, тема всегда остается актуальной, ввиду большого разброса пожеланий к такому изделию. Попытки сделать его универсальным увеличивают сложность схемы и естественно габариты всего устройства. В данной статье представлена попытка собрать более-менее универсальное, законченное устройство для применения в быту. Хотя первоначально это задумывалось, как отладочное и экспериментальное средство для изучения программирования, так как этот процесс должен подразумевать конкретную цель с конечным результатом, иначе будет не интересно, и все желания что-то изучить быстро остывают, не имея практического подтверждения и проверки. Выбор компонентов и микроконтроллера обусловлен их наличием и желанием хоть как-то применить, чтобы не валялось зря, вот и результат работы.
         Область применения терморегулятора широка. Возможно его использовать для поддержания температуры в овощехранилище в зимнее время, как реле управления холодильником, и прочие варианты. Изготовление в отдельном корпусе 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
    Прошивка МК

    termoregulatornapic.rar [135,01 Kb] (cкачиваний: 1580)

    Комментарии