→ Контроллер больших температур на термопаре K-типа. PIC16F676 - Термометры - Конструкции для дома и дачи

Контроллер больших температур на термопаре K-типа. PIC16F676 - Термометры - Конструкции для дома и дачи

Термопары широко применяются там где необходимо точно померить высокие температуры, т емпературы вплоть до 2500°C. То есть там, где цифровые датчики бы сразу сдохли от перегрева, применяются термопары. Разновидностей термопар существует достаточно много, но самое большое распространение получили хромель-алюмелевые (тип К) термопары, из-за своей дешевизны и практически линейному изменению термоэдс. Этот вид термопар ставятся в водонагреватели и другие бытовые приборы с контролем температуры, их повсеместно используют для контроля температуры при плавке металла, с помощью этих термопар контролируется нагрев жала в паяльной станции. Поэтому будет весьма полезно познакомиться с ними поближе.

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


Так широко применяемые хромель-алюмелевые термопары имеют достаточно высокую линейность и стабильность показаний на всем диапазоне измеряемых температур.
Ниже приведен график для хромель-алюмелевых термопар (тип К) показывающий, зависимость возникающей термоэдс от температуры спая (в конце статьи будет ссылка на график с большим разряшением):

Таким образом значение термоэдс достаточно умножить на нужный коэффициент и получить температуру, не заморачиваясь с табличными значениями и аппроксимацией - один коэффициент на весь диапазон измерений. Очень просто и понятно.
Но встает вопрос о подключении термопары к микроконтроллеру. Понятно что если на выходе термопары напряжение, тогда задействуем АЦП, но разность потенциалов на выходе термопары слишком мала, чтобы уловить хоть что-то. Поэтому прежде его нужно увеличить, например, применив операционный усилитель.

Берём стандартную схему неинвертирующего включения операционного усилителя:


Отношение входного и выходного напряжений описывается простой формулой:

Vout /Vin = 1 + (R2/R1)

От значений резисторов обратной связи R1 и R2 зависит коэффициент усиления сигнала. Величину усиления сигнала нужно подбирать с учетом того, что будет использоваться в качестве опорного напряжения.

Допустим опорным будет напряжение питания микроконтроллера 5V. Теперь необходимо определится с диапазоном температур, которые собираемся измерять. Я взял пределом измерения 1000 °C. При этом значении температуры на выходе термопары будет потенциал примерно 41,3мВ. Это значение должно соответствовать напряжению в 5 вольт на входе АЦП. Поэтому операционник должен иметь коэффициент усиления не менее 120. В итоге родилась такая схема:


В загашнике у меня нашлась давно собранная плата с этим операционником, собирал как предусилитель для микрофона, ее я и применил:


Собрал на бредборде такую схему подключения двухстрочного дисплея к микроконтроллеру:


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


Код Bascom-AVR для работы с термопарой:

$regfile = "m8def.dat"
$crystal = 8000000

Dim W As Integer

"подключение двухстрочного дисплея

Config Lcdpin = Pin , Rs = Portb . 0 , E = Portd . 7 , Db4 = Portd . 6 , Db5 = Portd . 5 , Db6 = Portb . 7 , Db7 = Portb . 6
Config Lcd = 16 * 2
Cursor Off
Cls

"считывание значения с АЦП по прерыванию от таймера

Config Timer1 = Timer , Prescale = 64
On Timer1 Acp

"конфигурация АЦП

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Enable Interrupts
Enable Timer1

Do

Cls
Rem Температура:
Lcd "Teјѕepaїypa:"
Lowerline
Lcd W


Waitms 200

Loop


"работа с АЦП

Acp :

Start Adc "запуск АЦП
W = Getadc (1 )
W = W / 1 . 28 "подгоняем замеры под действ. температуру
Return

End

Поводом для сборки этой схемы послужила поломка терморегулятора в электрическом духовом шкафу на кухне. Поискав в интернете, особого изобилия вариантов на микроконтроллерах не нашел, конечно есть кое-что, но все в основном рассчитаны на работу с термодатчиком типа DS18B20, а он очень ограничен в температурном диапазоне верхних значений и для духовки не подходит. Задача ставилась измерять температуры до 300°C, поэтому выбор пал на термопары К-типа. Анализ схемных решений привел к паре вариантов.

Схема терморегулятора - первый вариант

Термостат собраный по этой схеме имеет заявленный предел верхней границы 999°C. Вот что получилось после его сборки:

Испытания показали, что сам по себе термостат работает достаточно надежно, но не понравилось в данном варианте отсутствие гибкой памяти. Пошивка микроконтроллера для обеих вариантов - в архиве .

Схема терморегулятора - второй вариант

Немного поразмыслив пришел к выводу, что возможно сюда присоединить тот же контроллер, что и на паяльной станции, но с небольшой доработкой. В процессе эксплуатации паяльной станции были выявлены незначительные неудобства: необходимость перевода таймеров в 0, и иногда проскакивает помеха которая переводит станцию в режим SLEEP . Учитывая то, что женщинам ни к чему запоминать алгоритм перевода таймера в режим 0 или 1 была повторена схема той же станции, но только канал фен. А небольшие доработки привели к устойчивой и "помехонекапризной" работе терморегулятора в части управления. При прошивке AtMega8 следует обратить внимание на новые фьюзы. На следующем фото показана термопара К-типа, которую удобно монтировать в духовке.

Работа регулятора температуры на макетной плате понравилась - приступил к окончательной сборке на печатной плате.

Закончил сборку, работа тоже стабильная, показания в сравнении с лабораторным градусником отличаются порядка на 1,5°C, что в принципе отлично. На печатной плате при настройке стоит выводной резистор, пока что не нашел в наличии SMD такого номинала.

Светодиод моделирует ТЭНы духовки. Единственное замечание: необходимость создания надежной общей земли, что в свою очередь сказывается на конечный результат измерений. В схеме необходим именно многооборотный подстроечный резистор, а во-вторых обратите внимание на R16, его возможно тоже необходимо будет подобрать, в моём случае стоит номинал 18 кОм. Итак, вот что имеем:

В процессе экспериментов с последним терморегулятором появились ещё незначительные доработки, качественно влияющие на конечный результат, смотрим на фото с надписью 543 - это означает датчик отключен или обрыв.

И наконец переходим от экспериментов до готовой конструкции терморегулятора. Внедрил схему в электроплиту и пригласил авторитетную комиссию принимать работу:) Единственное что жена забраковала - маленькие кнопки на управлении конвекцией, общее питание и обдув, но это решаемо со временем, а пока выглядит вот так.

Регулятор заданную температуру держит с точностью до 2-х градусов. Происходит это в момент нагрева, из-за инертности всей конструкции (ТЭНы остывают, внутренний каркас выравнивается температурно), в общем в работе схема мне очень понравилась, а потому рекомендуется для самостоятельного повторения. Автор - ГУБЕРНАТОР .

Обсудить статью СХЕМА ТЕРМОРЕГУЛЯТОРА

Термометр на микроконтроллере PIC16F628A и DS18B20(DS18S20) – статья с подробным описанием схемы запоминающего термометра и, вдобавок, - логическое продолжение ранее опубликованной мною статьи на яндекс сайте pichobbi.narod.ru. Этот термометр довольно неплохо себя зарекомендовал, и было принято решение немного его модернизировать. В этой статье расскажу, какие изменения внесены в схему и рабочую программу, опишу новые функции. Статья будет полезна новичкам. Позже переделал текущую версию термометра в .

Термометр на микроконтроллере PIC16F628A и DS18B20(DS18S20) умеет:

  • измерять и отображать температуру в диапазоне:
    -55...-10 и +100...+125 с точностью 1 градус(ds18b20 и ds18s20)
    -в диапазоне -9,9...+99,9 с точностью 0,1 градус(ds18b20)
    -в диапазоне -9,5...+99,5 с точностью 0,5 градус(ds18s20);
  • Автоматически определять датчик DS18B20 или DS18S20;
  • Автоматически проверять датчик на аварию;
  • Запоминать максимальную и минимальную измеренные температуры.

Также в термометре предусмотрена легкая замена 7 сегментного индикатора с ОК на индикатор с ОА. Организована щадящая процедура записи в EEPROM память микроконтроллера. Вольтметр, который неплохо себя зарекомендовал, описан в этой статье - .

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

Принципиальная схема термометра показана на рисунке 1

Рисунок 1 - Принципиальная схема термометра на PIC16F628A + ds18b20/ds18s20

Описывать всю принципиальную схему термометра не стану, так как она довольно проста, остановлюсь только на особенностях.

В качестве микроконтроллера применяется PIC16F628A фирмы Microchip. Это недорогой контроллер и к тому же не дефицитный.

Для измерения температуры используются цифровые датчики DS18B20 или DS18S20 фирмы Maxim. Эти датчики не дорогие, малые по размеру и информация о измеренной температуре передается в цифровом виде. Такое решение позволяет, не тревожиться о сечении проводов, о их длине и прочем. Датчики DS18B20, DS18S20 способны работать в диапазоне температур от -55… +125 °С.

Температура выводится на 7-ми сегментный 3-х разрядный LED индикатор с общим катодом (ОК) или с (ОА).

Для вывода на индикатор максимальной и минимальной измеренных температур нужна кнопка SB1. Для сброса памяти так же нужна кнопка SB1

Кнопкой SA1 можно оперативно переключать датчики(улица, дом).

Jamper необходим для переключения общего провода для LED индикатора. ВАЖНО! Если индикатор с ОК – то ставим jamper на нижнее по схеме положение, а транзисторы VT1-VT3 впаиваем p-n-p проводимости. Если LED индикатор с ОА, то jamper переводим в верхнее по схеме положение, а транзисторы VT1-VT3 впаиваем n-p-n проводимости.

В таблице 1 можно ознакомиться со всем перечнем деталей и возможной их заменой на аналог.

Таблица 1 – Перечень деталей для сборки термометра
Позиционное обозначение Наименование Аналог/замена
С1, С2 Конденсатор керамический - 0,1мкФх50В -
С3 Конденсатор электролитический - 220мкФх10В
DD1 Микроконтроллер PIC16F628A PIC16F648A
DD2,DD3 Датчик температуры DS18B20 или DS18S20
GB1 Три пальчиковых батарейки 1,5В
HG1 7-ми сегментный LED индикатор KEM-5631-ASR (OK) Любой другой маломощный для динамической индикации и подходящий по подключению.
R1,R3,R14,R15 Резистор 0,125Вт 5,1 Ом SMD типоразмер 0805
R2,R16 Резистор 0,125Вт 5,1 кОм SMD типоразмер 0805
R4,R13 Резистор 0,125Вт 4,7 кОм SMD типоразмер 0805
R17-R19 Резистор 0,125Вт 4,3 кОм SMD типоразмер 0805
R5-R12 Резистор 0,125Вт 330 Ом SMD типоразмер 0805
SA1 Любой подходящий переключатель
SB1 Кнопка тактовая
VT1-VT3 Транзистор BC556B для индикатора с ОК/ транзистор BC546B для индикатора с ОА KT3107/КТ3102
XT1 Клеммник на 3 контакта.

Для первоначальной отладки работы цифрового термометра применялась виртуальная модель, построенная в протеусе. На рисунке 2 можно увидеть упрощенную модель в протеусе

Рисунок 2 – Модель термометра на микроконтроллере PIC16F628A в Proteus’e

На рисунке 3-4 показана печатная плата цифрового термометра

Рисунок 3 – Печатная плата термометра на микроконтроллере PIC16F628A(низ) не в масштабе.

Рисунок 4 – Печатная плата термометра на микроконтроллере PIC16F628A(верх) не в масштабе.

Термометр, собранный рабочих деталей начинает работать сразу и в отладке не нуждается.

Результат работы рисунки 5-7.

Рисунок 5 - Внешний вид термометра

Рисунок 6 - Внешний вид термометра

Рисунок 7 - Внешний вид термометра

ВАЖНО! В прошивку термометра не вшита реклама можно пользоваться в свое удовольствие.

Поправки, внесенные в рабочую программу:

1 автоматическое определение датчика DS18B20 или DS18S20;

2. снижено время перезаписи в EEPROM(если выполнилось условие для перезаписи) с 5 минут, до 1 минуты.

3. увеличена частота мерцания точки;

Более подробное описание работы термометра можно посмотреть в документе, который можно скачать в конце этой статьи. Если скачивать нет желания, то на сайте www.pichobbi.narod.ru также отлично расписана работа устройства.

Готовая плата отлично поместилась в китайский будильник (рисунки 8, 9).

Рисунок 8 – Вся начинка в китайском будильнике

Рисунок 9 - Вся начинка в китайском будильнике

Видео - Работа термометра на PIC16F628A

На МК. Сердцем его является микроконтроллер PIC16F628A. В схеме термометра используется 4-х значный или 2+2 светодиодный индикатор с общим анодом. Датчик температуры используется типа DS18B20, и в моем случае показания датчика отображаются с точностью 0,5*С. Термометр имеет пределы измерения теемпературы от -55 до +125*С, что достаточно на все случаи жизни. Для питания термометра была использована обычная зарядка от мобилы на ИП с транзистором 13001.

Принципиальная схема термометра на микроконтроллере PIC16F628A:

Для прошивки PIC16F628A я использовал программу ProgCode, установив её на компьютер и собрав программатор ProgCode по известной схеме:

Обозначение выводов используемого микроконтроллера и цоколёвка некоторых других аналогичных МК:

Программа ProgCode и инструкции с фотографиями пошаговой прошивки находятся в архиве на форуме. Там же и все необходимые для этой схемы файлы. В программе открываем и нажимаем на кнопку "записать всё”. В моем изготовленном устройстве, как видно из фотографий, собрано 2 термометра сразу в одном корпусе, верхний индикатор показывает температуру дома, нижний - на улице. Размещается он в любом месте помещения и соединяется с датчиком гибким проводом в экране. Материал предоставил ansel73. Прошивку редактировал: [)еНиС

PIC16F676 Применение, это и паяльная станция, и управление высокотемпературными процессами и т.д. с функцией ПИД регулировки нагревательного элемента

Решил в свой ламинатор вставить термометр, термометр на термопаре K-типа. Чтобы он у меня стал более информативен, считаю, что хоббийный радиолюбитель не может довольствоваться, когда на таком приборе горит только два светодиода "POWER” и "READY” . Развожу платку под свои детальки. На всякий случай с возможностью её резать пополам(это некоторая универсальность). Сразу с местом под силовую часть на тиристоре, но пока эту часть не использую, это будет у меня схемка под паяльник (когда придумаю, как в жало термопару пристроить)


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


Настраиваю, сначала делаю, как сказано в форуме , не впаиваю термопару, задаю 400 (хотя если этот параметр будет в памяти, этот пункт отпадет) настраиваю переменниками примерно комнатную и точно по кипению,

Такой контроллер теоретически работает до 999°C но в домашних условиях такую температуру вряд ли найти, самое большее это открытый огонь, но у этого источника тепла сильная нелинейность и чувствительность к внешним условиям.

вот примерная таблица.
и еще для наглядности

Так что выбор невелик в выборе источника для настройки показаний контроллера.

больше тут никакой игры кнопочками, Все можно собирать,
Термопару использовал от китайского тестера. И пост в форуме надоумил меня, что эту термопару можно размножать, её длина почти полметра, отрезаю 2 см.

делаю трансформатором по скрутке угольком, шарик получается, а к двум концам точно так, по медной проволочке, для хорошей пайки к моим проводам.

 

 

Это интересно: