Как подключить термопару к микроконтроллеру
Перейти к содержимому

Как подключить термопару к микроконтроллеру

  • автор:

Подключение термопары к микроконтроллеру

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

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

График зависимости термоэдс от температуры для термопар типа K практически линейный на всем диапазоне температуры.

termopara-i-mk

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

Для измерения термоэдс будем использовать АЦП (аналого-цифровой преобразователь). Для того чтобы подлючить термопару к микрокнтроллеру используется ОУ (операционный усилитель) который включается по неинвертирующей схеме. Дело в том что значение эдс очень мало и его необходимо усилить при помощи ОУ.\

amplifer

Для того чтобы найти отношение входного и выходного напряжения нужно воспользоваться формулой:

От номинала сопротилений R1 и R2 которые выполняют функцию обратной связи, зависит отношение входного и выходного напряжения. Уселение сигнала должно выбирать исходя из выбранного ИОН — источника опорного напряжения. Например если в качестве ИОН выбрано напряжения в 5 В, а максимальный предел измеряемой температуры 1000 градусов, при такой температуре термоэдм состовит 41.3 мВ. Это напряжение необходимо будет преобразовать в 5 В на входе в АЦП. Т.е нам нужно чтобы при такой температуре на входе в АЦП было напряжение в 5 В. Коэффициент усиления получился равным 120.

Подключение термопары к микроконтроллеру

Подключение термопары к микроконтроллеру

В результате получилась такой модуль:

Операционный усилитель собранном виде

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

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

А так выглядит теомапара которая шла в комплекте с мультиметром

termopara-i-mk5

Код программы

$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

Число 1.28 бы подогнато опытным путем. В качестве эталонной температуры была температура кипения воды 100 градусов. Зная температуру и подгоняя коэффициент добиваемся аналогичных показаний на дисплее.

100etlnpretermopara100pre

После того как выставил показания, измерил температуру в пламени зажигалки, прибор показал значение в 700 градусов. При комнатной температуре 25 градусов прибор почему то показывал 50.

Подключение термопары к плате Ардуино

Функциональность и богатство возможностей микроконтроллеров помогают автоматизировать многие ниши, требовавшие ранее человеческого внимания. Охранные системы, управление климатом помещений или контроль производственных линий — все названное под силу цифровым помощникам человека, которые не просто выполняют последовательность действий, но и реагируют в рамках своей программы на изменившиеся обстоятельства.

Микроконтроллер Arduino UNO

Одной из распространенных моделей микроконтроллеров стали Arduino. Мини-компьютер, обладающий расширенной функциональностью и возможностью относительно простого подключения внешнего оборудования — по праву держит пальму первенства в деле производства прототипов, финальных устройств или участия в DIY-проектах.

Одно из применений Arduino — контроль температуры и запуск вспомогательной аппаратуры в зависимости от ее изменений. Примером служит обычный кондиционер — он работает только в те периоды, когда требуется нагреть или охладить воздух в помещении для приведения его характеристик в соответствие с заложенными значениями. Схематичная конструкция аппарата достаточно проста и характерна для всех устройств, содержащих логический контур:

логический контур

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

Применение термопары с микроконтроллером

Одной из популярных схем для Ардуино стали «умные» измерители нагрева, способные не только демонстрировать температуру, но и производить различные действия в зависимости от ее текущих значений. Измерения в пределах от −50 до 150 ℃ проводятся достаточно несложным датчиком соединяемым с микроконтроллером. Другое дело, если речь идет об очень высоких или сверхнизких значениях характеристики от −273 до 400 ℃ или выше. Здесь потребуется подключить термопару к Ардуино.

термопара с подключенным преобразователем MAX7765

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

Что такое термопара

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

эффект Зеебека

Подключение термопары к микроконтроллеру

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

Так как вырабатываемый ток связкой проводников низок, в обязательном порядке требуется усилитель, для соединения их с микроконтроллером. Нужна и подстройка самодельных устройств под используемые материалы в спайке и их длину. Облегчается ситуация при использовании специализированных АЦП, наподобие MAX6675 или MAX31855. Устройства преобразуют характеристики тока, полученные от термопары, в числовые значения, которые уже и передаются в Ардуино посредством пинов данных. Если использовать только прямое повышение уровня тока иными схемами, — соединение усилителя производится к аналоговым входам микроконтроллера. К сожалению, градация последних составляет всего 1024 уровня, что непосредственно влияет на точность получаемых показаний.

АЦП MAX6675, MAX31855

АЦП Max 31855

Представленная далее схема, как и сам АЦП изначально не рассчитаны на использование с термопарами, требующими заземления, что нужно учитывать при разработке финальной конструкции устройства. Платы MAX6675 и MAX31855 электрически взаимозаменяемы. Единственное различие в подключаемой библиотеке. Для первого АЦП получить ее можно по адресу http://github.com/adafruit/MAX6675-library, для второго https://github.com/adafruit/Adafruit-MAX31855-library.

Схема подключения

У обоих АЦП на плате 5 выходных контактов. Два используются для питания, на них подается +5В и GND соответственно. Остальные размечены следующим образом:

Контакт Описание Используется
CLK Используется при побитовой передаче — указывая, что можно забрать следующий бит IN/OUT
DO Побитовый вывод результата OUT
CS Устанавливается в HIGH контроллером Arduino для проведения замера IN

схема подключения платы MAX 31855 и 6651

В качестве линий питания и земли можно также использовать цифровые пины Arduino, но нежелательно. Будут заняты еще два контакта. В случае, если все же требуется использовать такую конструкцию, в инициализацию void setup () нужно добавить следующие строки:

pinMode(pVCC, OUTPUT);
pinMode(pGND, OUTPUT);
digitalWrite(pVCC, HIGH);
digitalWrite(pGND, LOW);
//Пауза на активацию датчика
delay(500);

Соответственно в шапке скетча задать

// пин на котором +5В
#define pVCC 5
// пин для земли
#define pGND 6

Скетч работы с АЦП

// пины соединенные с АЦП MAX
#define DO 2
#define CS 3
#define CLK 4
// для MAX6675
#include «max6675.h»
MAX6675 TD(CLK, CS, DO);
// для MAX
#include «Adafruit_MAX31855.h»
Adafruit_MAX31855 TD(CLK,CS,DO);
void setup() Serial.begin(9600);
>
void loop() Serial.print(«Celsius ; Farentgeit lazy» decoding=»async» src=»https://osensorax.ru/wp-content/uploads/2020/12/07-podklyuchenie-termopary-k-arduino-7.jpg» alt=»собранный макет конструкции» width=»630″ height=»420″ srcset=»https://osensorax.ru/wp-content/uploads/2020/12/07-podklyuchenie-termopary-k-arduino-7.jpg 630w, https://osensorax.ru/wp-content/uploads/2020/12/07-podklyuchenie-termopary-k-arduino-7-300×200.jpg 300w» sizes=»(max-width: 630px) 100vw, 630px» />

Кроме вышеназванной проблемы стоит не забывать о «шумности» входов преобразователя, на которую жалуются пользователи АЦП MAX. Для уменьшения мешающего фактора рекомендуется разместить между контактами термопары фильтрующий конденсатор от 0.001 до 0.01 мкФ.

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

В окончание

Подключить термопару к Arduino очень просто, и программно, и аппаратно. Требуется только операционный усилитель. За рамки статьи вышел разговор об использовании аналоговых его вариантов, зато в целом и полностью рассмотрена схема с применением преобразующих силу полученного тока в цифровой сигнал моделей.

Как подключить термопару к микроконтроллеру

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

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

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

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

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

Отношение входного и выходного напряжений описывается простой формулой:
V out /V in = 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

Число 1,28 в знаменателе получил опытным путем, подгоняя значение считанное с АЦП в известное значение температуры.

Коротко расскажу как это происходило у меня. В качестве эталона замера температуры выступил пар в кипящем чайнике. Для чистоты эксперимента сначала замерил температуру пара мультиметром, подсоединив к нему термопару. Удостоверившись в правильности показаний, замерил температуру уже новоиспеченным девайсом и подгоняя коэффициент деления, установил значение 100°C.

После выставления первой контрольной точки, хорошо было бы повторить вышеописанное при другой известной температуре, но д альше экспериментировать не стал. В пламени зажигалки измерил ~700 °C (что похоже на правду), а вот при комнатной температуре девайс выдавал под 50°C, наверно дело в мусоре младших разрядов АЦП. Но думаю собрать, например, терморегулятор для паяльника вполне сгодится.

Порядок вывода комментариев:

0 Спам

15 romani (28.12.2013 01:11) [Материал]
Огромнейшее спасибо за объяснение! Вы помогли мне защитить курсач! и написать его)))

0 Спам

14 miolk (27.12.2013 22:49) [Материал]

Для паяльной станции предпочтительней термопара ХК (хромель-копель). У неё термоэдс в несколько раз выше, соответственно измерения точнее. ХА используют при более высоких температурах, т.к. для ХК предел — около 400 градусов Цельсия.

+1 Спам

13 forter (24.12.2013 20:20) [Материал]

Я уже писал, что у ОУ имеется напряжение смещения. Так вот, есть еще и токи смещения, они незначительные, но при измерении таких малых напряжений, как у термопары, и они играют роль нескомпенсированных ошибок. В общем, чтобы их хоть как — то скомпенсировать входы ОУ нагружаются резистрами. В первом приближении можно считать, что токи смещения одинаковы для инвертирующего и неинвертирующего входов. Соответственно, резисторы по входам должны быть одинаковые. На инвертирующем входе, в нашем случае, параллельно подключен резистор 1 кОм и 5,1 + 120 кОм, таким образом, эквивалентное сопротивление на этом входе 1 кОм, поэтому, строго говоря, на неинвертирующем входе должен быть резистор R4 не 10 кОм, а 1 кОм.
Ну, и, конечно, резистор играет некоторую защитную роль.
Аналоговая техника, особенно измерение малых величин токов и напряжений, требует очень аккуратного и грамотного подхода.

0 Спам

12 romani (23.12.2013 22:53) [Материал]
какую фнкцию выполняет резистор R4?

0 Спам

11 exersizze (10.08.2013 23:54) [Материал]
forter, благодарю за разъяснения!

+1 Спам

10 forter (09.08.2013 15:50) [Материал]

Здравствуйте. коллеги!
По поводу того, зачем нужен R2?
Цепь R2C1 — просто низкочастотный фильтр. Как известно у ОУ имеются свои шумы, наконец, на его вход тоже может попасть наводка. Вот чтобы избавиться или, по крайней мере, ослабить эти эффекты и применяют такие цепи. Но, по — моему, правильнее было бы применить резистор с номиналом, допустим, в 100 КОм, а емкость конденсатора увеличить до 0,1 мкф. Правда, нельзя слишком сильно уменьшать сопротивление — может возникнуть самовозбуждение ОУ.
Есть еще замечание — изменяя коэффициент усиления, мы просто изменяем результирующий наклон зависимости напряжения на выходе ОУ от температуры, не учитывая, что в ОУ есть еще одна очень неприятный эффект — смещение нуля. Это означает, что даже при отсутствии сигнала на выходе (можно считать, что на входе) всегда есть постоянное смещение. Если взять другой ОУ, имеющий выводы балансировки нуля (например, как отечественный 140УД6), от этого можно избавиться — между выводами балансировки подключается многооборотный резистор, а его движок подключается к питанию, но это только для двухполярного питания. Этим эффектом страдают все ОУ. Все бы ничего, но, будучи сбалансированным при одной температуре, ОУ разбалансируется, если его температура изменится — это, так называемый, температурный дрейф нуля. Если кто — то работал с электронно — лучевыми осциллографами, тот знает, что через несколько минут после его включения луч обязательно смещается вверх или вниз. Этот эффект и есть дрейфа нуля.
По этой причине и применяют, особенно при измерении очень малых напряжений (как в случае с термопарой) прецизионные ОУ, у которых этот эффект намного меньше, но стоят они намного дороже обыкновенных ОУ

0 Спам

9 gadz (08.08.2013 21:04) [Материал]

Почитайте дополнительно о компенсация холодного спая. Здесь показано для чего это
http://www.compeljournal.ru/enews/2007/15/10

0 Спам

8 exersizze (06.04.2012 23:45) [Материал]

Операционник все равно дает очень маленький выходной ток, на память десятки микроампер. А выход операционника отличается очень маленьким сопротивлением. И поэтому при уменьшении R2 разницы не будет, имхо.
а вообще я этот резюк поставил в соответствии со схемой на радиокоте про цифровую паялку, там похожая схема усилителя и стоит именно 1МОм, решил идти по проверенной схеме )

0 Спам

7 Andrew (06.04.2012 14:47) [Материал]

У МЕНЯ ВОПРОС, ДЛЯ ЧЕГО НУЖЕН РЕЗИСТОР R2 1Мом ? ЕСЛИ В ДАТАШИТАХ НА АВР УКАЗАНО ЧТО:
The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less.
Я ТАК ПОНИМАЮ ВЫХОДНОЕ СОПРОТИВЛЕНИЕ ДОЛЖНО БЫТЬ МЕНШЕ 10КОМ, А У ВАС АЖ 1МОМ ?

0 Спам

6 exersizze (28.03.2012 09:04) [Материал]
Вы правы поиск рулит) Доходчиво и просто расписано здесь

0 Спам

5 tenevikus (27.03.2012 22:41) [Материал]
в поделках они нужны. расскажите нам.

0 Спам

4 tenevikus (27.03.2012 22:40) [Материал]

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

0 Спам

3 exersizze (26.03.2012 19:53) [Материал]

Спасибо за совет, интересная ссылка за спам не считается)
На моей платке стоит подстроечник на 5 кОм, возможно им получится подрегулироват коэффициент усиления операционника, а вообще да, муторное это дело. Под каждую термопару нужно проводить индивидуальную калибровку.
Еще при большой разнице горячего и холодного спаев (точки соединения металлов и свободные концы) может возникать погрешность в десятки градусов, поэтому для точного измерения высоких температур нужно городить схему компенсации холодного спая. И самое главное, что десятибитного АЦП микроконтроллера явно не достаточно для измерения диапазона температур выше 1000 град.

0 Спам

2 4ester (26.03.2012 13:43) [Материал]
кстати забыл сказать что в схеме есть ошибка соединения в месте R6? r8. быть не должно.

0 Спам

Схема подключения термопары к контроллеру – Уроки Ардуино. Термопары в системе Ардуино. Проект Ардуино термометра-регистратора для высоких температур.

Подключаем термопару к микроконтроллеру — Как подключить — AVR project.ru

Термопары широко применяются там где необходимо точно померить высокие температуры, температуры вплоть до 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
‘работа с АЦП

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

End

Число 1,28 в знаменателе получил опытным путем, подгоняя значение считанное с АЦП в известное значение температуры.

Коротко расскажу как это происходило у меня. В качестве эталона замера температуры выступил пар в кипящем чайнике. Для чистоты эксперимента сначала замерил температуру пара мультиметром, подсоединив к нему термопару. Удостоверившись в правильности показаний, замерил температуру уже новоиспеченным девайсом и подгоняя коэффициент деления, установил значение 100°C.

После выставления первой контрольной точки, хорошо было бы повторить вышеописанное при другой известной температуре, но дальше экспериментировать не стал. В пламени зажигалки измерил ~700 °C (что похоже на правду), а вот при комнатной температуре девайс выдавал под 50°C, наверно дело в мусоре младших разрядов АЦП. Но думаю собрать, например, терморегулятор для паяльника вполне сгодится.

Подключение термопары к микроконтроллеру

Подробности Категория: Микроконтроллеры Опубликовано 25.06.2016 14:25 Автор: Admin Просмотров: 1703

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

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

График зависимости термоэдс от температуры для термопар типа K практически линейный на всем диапазоне температуры.

termopara-i-mk

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

Для измерения термоэдс будем использовать АЦП (аналого-цифровой преобразователь). Для того чтобы подлючить термопару к микрокнтроллеру используется ОУ (операционный усилитель) который включается по неинвертирующей схеме. Дело в том что значение эдс очень мало и его необходимо усилить при помощи ОУ.\

amplifer

Для того чтобы найти отношение входного и выходного напряжения нужно воспользоваться формулой:

От номинала сопротилений R1 и R2 которые выполняют функцию обратной связи, зависит отношение входного и выходного напряжения. Уселение сигнала должно выбирать исходя из выбранного ИОН — источника опорного напряжения. Например если в качестве ИОН выбрано напряжения в 5 В, а максимальный предел измеряемой температуры 1000 градусов, при такой температуре термоэдм состовит 41.3 мВ. Это напряжение необходимо будет преобразовать в 5 В на входе в АЦП. Т.е нам нужно чтобы при такой температуре на входе в АЦП было напряжение в 5 В. Коэффициент усиления получился равным 120.

Подключение термопары к микроконтроллеру

Подключение термопары к микроконтроллеру

В результате получилась такой модуль:

Операционный усилитель собранном виде

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

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

А так выглядит теомапара которая шла в комплекте с мультиметром

termopara-i-mk5

Код программы

$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

Число 1.28 бы подогнато опытным путем. В качестве эталонной температуры была температура кипения воды 100 градусов. Зная температуру и подгоняя коэффициент добиваемся аналогичных показаний на дисплее.

100etlnpre termopara100pre

После того как выставил показания, измерил температуру в пламени зажигалки, прибор показал значение в 700 градусов. При комнатной температуре 25 градусов прибор почему то показывал 50.

Печатная плата для ОУ

Добавить комментарий

Простой усилитель термопары

Несколько лет назад я столкнулся с необходимостью измерения температуры с помощью термопар. Существенно мне помог в этом один человек, которому я до сих пор благодарен. Не сильно вдаваясь в теоретические аспекты, хочу предложить простой вариант усилителя термопары. Этот усилитель повторили несколько человек и тоже были получены хорошие результаты.

Основная схема.

Основа усилителя взята из технического описания фирмы «Analog Devices» на операционный усилитель ОР213. Данный ОУ можно отнести к точным ОУ с малым тепловым дрейфом нуля

Сразу скажу, что на фирменной схеме допущена досадная ошибка. Точка соединения резисторов R8 и R6 должна быть исключена. Схема позволяет измерять температуру в диапазоне 0 – 1000 о С с точностью 0,02 о С при применение данного ОУ и термопары К-типа. Эта термопара обладает наиболее близкой к прямой термоэлектрической характеристикой. Термоэлектроды изготовлены из сплавов на никелевой основе. Хромель (НХ9,5) содержит 9…10 %Сг; 0,6…1,2 % Со; алюмель (НМцАК) — 1,6…2.4 % Al, 0.85…1,5 Si, 1,8…2,7 % Mn. 0.6…1.2 % Со. Алюмель светлее и слабо притягивается магнитом; этим он отличается от более темного в отожженном состоянии совершенно немагнитного хромеля. Благодаря высокому содержанию никеля хромель и алюмель лучше других неблагородных металлов по стойкости к окислению. Учитывая почти линейную зависимость термоЭДС термопары хромель — алюмель от температуры в диапазоне 0…1000°С, ее наиболее часто применяют в терморегуляторах.

Подключение электродов термопары к разъемам платы усилителя образует еще один источник термоЭДС (холодный спай) напряжение на котором вносит существенную ошибку в истинные показания. Для устранения этой погрешности применяют разные методы. В данном случае для компенсации напряжения холодного спая применен простой и эффективный способ. Как можно ближе к разъему подключается кремневый диод. Известная зависимость тока p-n перехода от температуры позволяет сформировать компенсационное напряжение для коррекции ошибки холодного спая.

ОУ питается напряжением +12В, максимальное выходное напряжение ОУ будет составлять, за счет внутреннего падения напряжения, чуть больше 10В. Схема на ОУ представляет усилитель с ОС с коэф. усиления около 200. Резистор R6 осуществляет балансировку опорного напряжения ОУ ( установку нуля).

Точный стабилизатор напряжения REF02EZ позволяет получить из напряжения питания стабилизированное напряжение для питания входных делителей ОУ с точностью около 1мВ.

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

Практическая реализация.

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

image002

Не используется опорный стабилизатор, Применен более дешевый и распространенный ОУ LM358. Напряжение питания 5В, поэтому максимально можно измерить реально 375 оС. Относительно большой температурный дрейф ОУ определяет ошибку измерения, не более 2 оС. Для увеличения помехоустойчивости по переменному току применен конденсатор С1. Резистором R12 можно корректировать коэф усиления в зависимости от применяемой термопары. В диапазоне до 400 оС многие типы термопар достаточно линейны, поэтому появляется возможность применения любой подходящей термопары. Хорошие результаты получаются с термопарами от цифровых мультиметров. Так как микросхема LM358 содержит два ОУ, то удобно реализовать на одной микросхеме двухканальный вариант.

Особенности при изготовлении.

Термокомпенсационный диод желательно разместить снизу печатной платы, так чтобы его корпус был как можно физически был ближе к разъему. Хорошо применить термопасту. Резисторы можно применить как SMD типа, так и обычные 0,125 Вт. Я обычно применяю последовательно соединенные резисторы стандартного ряда.

2,74К=2,7К+39

53,6=27+27

3,95К=3,9К+51

Калибровка

В домашних условиях калибровка проще всего сделать по двум точкам 0 и 100 градусов. Термопара погружается в талую воду, выставляется показания 0 градусов R6. Термопара погружается в кипящую воду, выставляется показания 100 градусов R12. Еще раз проверить 0 и 100, при необходимости подкорректировать. Можно проверить температуру тела 36,6 градусов.

Пример программной реализации.

Напряжение на выходе ОУ прямо пропорционально измеренной температуре. Если на вых. ОУ 1,00В, то это соответствует температуре 100 оС . Если на выходе 2,58В, то 258 градусам. Для измерения применен встроенный АЦП микроконтроллера фирмы МИКРОЧИП. Опорное напряжение равно напряжению питания 5,12В, при применение стабилизатора напряжения типа 7805 напряжение на его выходе обычно соответствует этому значению. АЦП 10 разрядное, 1024 уровней квантования. Один уровень квантования 0,005В. При измерении напряжения на выходе ОУ с помощью АЦП получаем следующий результат:

Пример: Uвых = 2,87В /0,005=574, уровней квантования АЦП.Для упрощения вывода результата на индикацию, необходимо полученный результат разделить на два.

574/2= 287 (0х11F) остается преобразовать полученное число в двоично-десятичный вид и вывести на применяемый индикатор.

Хочу отметить, что если необходимо измерять температуру больше 400 градусов, то напряжение питания ОУ и соответственно выходное напряжение ОУ будет больше опорного напряжения АЦП. В этом случае, как самый простой вариант, удобно использовать делитель напряжения на выходе ОУ с коэф. 2. ( два одинаковых резистора по 10 кОм). Программное деление необходимо исключить.

; RA0 — активный входной канал АЦП,

izm_U ;измеряем напряжение АЦП результат в ADS_L, ADS_H

movlw b’01000001′ ; Включение АЦП; выбор аналогового канала AN0;

movwf ADCON0 ; источник Fosc/8; состояние ожидания.

decfsz reg ; задержкa

bsf ADCON0,2 ; Включение преобразования.

btfsc ADCON0,2 ; Ожидание окончания

goto $-1 ; преобразования.

bcf ADCON0,ADON ; Выключение модуля АЦП

movf ADRESH,w ; перепишем результат преобразования

rrf ADS_H ; результат делим на 2

call bin2_10 ; преобразование двоичного числа в двоично-десятичное

call IND ; вывод на индикацию

подпрограммы bin2_10 и IND, не привожу, т.к. каждый применяет свой удобный вариант для применяемого индикатора.

Заключение.

Данная схема прекрасно измеряет и более высокие температуры до 1000 градусов. Единственно, надо знать тип термопары. Распространенные советские термопары хромель-копель измеряют до 800 градусов и немного нелинейны с 300 — 600 градусов. Если применить термопары К-типа, то результаты хорошие до 1000 градусов, с точностью +\- 2 градуса. Так же нужно повысить напряжение питания ОУ и применить делитель напряжения на вых ОУ.

Измерение температуры. Термопары | КИПиА от А до Я

Принцип действия термопары основан на так называемом эффекте Зеебека. Если две проволоки из разных металлов с одного конца сварить (это место будет называться рабочим или горячим спаем) и нагреть до температуры Т1, то на оставшихся свободных концах проволок (холодный спай) с более низкой, комнатной температурой Т2 появиться термоЭДС . Чем выше разница температур между рабочим и холодным спаем ΔТ, тем больше термоЭДС. Величина термоЭДС не зависит от диаметра и длины проволок, а зависит от материала проволок и температуры спаев

Наибольшее распространение получили термопары градуировок ХА (в европейской системе обозначений (К), ХК (L) и ППР (В). Термопары ХК (хромель-копелевые) имеют диапазон измерения 0…800°С и в настоящее время применяются редко. Термопары ХА (хромель-алюмелевые) имеют диапазон 0…1300°С и применяются наиболее широко. В частности они используются на стендах нагрева, с их помощью измеряется температура внутреннего пространства печей и температура отходящих газов в газоходах. Термопары градуировки ППР (платина-платинородиевые) имеют температурный диапазон 0…1600°С. Кроме возможности измерять температуру 1600°С и выше они обладают еще одним преимуществом – высокой точностью.

Указанные максимальные температуры не являются предельными для термопар. Они способны измерять и большие температуры, но при этом существенно падает срок их службы. Так термопара градуировки ППР может измерять температуру до 1800°С, поэтому именно она используется для измерения температуры жидкой стали.

Конструкция термопары имеет следующий вид. Сваренные с одного конца проволоки помещаются внутрь керамической трубки с двумя отверстиями, либо на них одеваются керамические бусы с целью изолировать проволоки друг от друга по всей длине. Часто в качестве изолятора используется керамический порошок, который засыпается внутрь чехла, в который вставлена термопара.

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

Если сигнал с термопары подается на вход контроллера, то необходимо применять термопару с изолированным спаем. Иначе возможны произвольные скачки показаний температуры в значительных пределах. Особенно сильно этот эффект проявляется если используется контроллер Siemens S200.

Свободные концы проволок соединяют с плюсовой и минусовой клеммами, расположенными в головке термопары. Выходным сигналом термопары является термоЭДС, измеряемая в милливольтах (мВ). Для измерения выходного сигнала можно использовать цифровой мультиметр и затем, применив градуировочные таблицы или номограммы по величине измеренного напряжения определить измеряемую температуру. Отключать вторичный прибор при этом не обязательно, так как он не оказывает заметного влияния на результат измерения. Для более точного определения температуры по термоЭДС термопары можно воспользоваться градуировочными таблицами.

Для подключения термопар ко входам вторичных приборов или контроллерам применяют специальный компенсационный провод. Необходимость применения компенсационных проводов связана с тем, что головка термопары с клеммами может располагаться в рабочей зоне с повышенной температурой, например 100°С. Если подключить к клеммам термопары ХА обычный медный провод, то в местах соединения как бы образуются еще два рабочих спая с температурой 100°С. Возникающие при этом две паразитные термоЭДС (на плюсовой и минусовой клеммах) исказят показания термопары.

Компенсационный провод импортного производства имеет специальную цветовую маркировку. Так компенсационный кабель градуировки ХА европейского производства имеет зеленую (+) и белую (-) жилы. Выпущенный в советское время компенсационный провод не имел специальной цветовой маркировки.Если компенсационный провод будет подключен без соблюдения полярности, то наблюдается следующий эффект: после пуска теплового агрегата показания термопары сначала растут. Это связано с нагревом рабочего спая. После того как атмосфера вокруг теплового агрегата прогреется, показания термопары начинают быстро падать, вплоть до нулевых значений. Это связано с тем, что образовавшиеся два паразитных рабочих спая включены в обратной полярности основному рабочему спаю. И значение основной термоЭДС уменьшается на величину двух паразитных термоЭДС.

На вход вторичного прибора или контроллера значение измеренной температуры поступает в виде сигнала термоЭДС. Так как величина этой термоЭДС определяется разностью температур рабочего и холодного спаев:

Е = f (Т1 – Т2), [мВ]

то вторичному прибору необходимо знать температуру холодного спая для однозначного определения температуры рабочего спая. Ведь термоЭДС может принимать одинаковые значения при различных значениях (Т1 – Т2). Например разности температур (200 — 50) и (150 — 0) дадут одинаковые значения термоЭДС, хотя при этом разность значений температур рабочих спаев в этих двух случаях достигала 200 -150 = 50°С.

Поэтому во вторичном приборе вблизи входных клемм, к которым подключается термопара, монтируется так называемый датчик температуры холодного спая. Как правило это полупроводниковый сенсор – диод или транзистор. Теперь по измеренной термоЭДС и известной температуре холодного спая, вторичный прибор, зная градуировку подключенной термопары, может однозначно определить температуру рабочего спая.

На некоторых предприятиях термопары ХА изготавливают самостоятельно, сваривая специальную проволоку диаметром 2-3 мм. Для определения полярности полученной термопары в этом случае используют обычный магнит: минус термопары притягивается к магниту, плюс не магнититься. На компенсационный провод и большинство промышленно выпускаемых термопар ХА это правило не распространяется. Определить полярность термопары можно и с помощью обычного милливольтметра, подключив его к выводам термопары и нагревая рабочий спай термопары, например, зажигалкой.

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

Для бесконтактного непрерывного измерения температуры применяют стационарные пирометры. В случае, если в поле «зрения» пирометра может попадать пламя горелки, то следует использовать пирометры со спектральным диапазоном измерения 3,5…4 мкм чтобы исключить влияние температуры факела на показания пирометра.

Дополнительную информацию вы можете найти в разделе «Вопрос-ответ».

Посмотреть другие статьи в том числе про измерение температуры.

Как подключить термопару к Arduino

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

Для подключения термопары к Arduino нужен усилитель. В интернете нашел схему усилителя для термопар на микросхеме LM358, собрал и настроил для работы с термопарой ТХК от — 40 до 400 градусов. В схему добавил датчик температуры DS18B20 для компенсации температуры холодного спая. Этот датчик должен находится поблизости холодного спая.

Программировал Arduino при помощи программы FLProg. C выхода усилителя сигнал поступает на аналоговый вход Arduino. При 100 градусах напряжение на выходе усилителя получается 0,35 вольта (получил при помощи регулировок подстроичным резистром), если температура холодного спая 24 градуса. Чтобы получить константу на каждый градус, я сделал так: 100-24=76 — это разница температуры между холодным спаем и температурой кипения воды. Напряжение 0,35 разделил на 76 и получил 0,0046. То есть на каждый градус на выходе усилителя напряжение увеличивается на 0,0046 вольта. Разрешение Arduino на входе — 1023. То есть, если разделить входное напряжение 5 вольт на 1023, получим константу 0,00488. Программировал следующим образом: входное число умножаем на 0,00488, получаем напряжение на входе, которое делим на константу 0,0046 и получаем температуру между горячим концом термопары и холодным спаем. Затем плюсуем температуру холодного спая и получаем истинную температуру. Опыты проводил кипяченой водой. Температура пара ровно 100 градусов.

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

При повторе схемы надо учитывать, что эталонное напряжение взято от питания Arduino. Если значение различается от пять вольт, то для получении константы надо делить истинное напряжение питания на 1023.

DS18B20 имеет свой уникальный адрес в скетче, которые нужно заменить на ваш.

Скачать скетч Arduino file

Скачать скетч (файл расширения flp устанавливается на Arduino при помощи Flprog)

Схема усилителя термопары.

Готовая плата усилителя термопары.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *