Термопары широко применяются там где необходимо точно померить высокие температуры, температуры вплоть до 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
Число 1,28 в знаменателе получил опытным путем, подгоняя значение считанное с АЦП в известное значение температуры.
Коротко расскажу как это происходило у меня. В качестве эталона замера температуры выступил пар в кипящем чайнике. Для чистоты эксперимента сначала замерил температуру пара мультиметром, подсоединив к нему термопару. Удостоверившись в правильности показаний, замерил температуру уже новоиспеченным девайсом и подгоняя коэффициент деления, установил значение 100°C.
После выставления первой контрольной точки, хорошо было бы повторить вышеописанное при другой известной температуре, но дальше экспериментировать не стал. В пламени зажигалки измерил ~700
°C (что похоже на правду), а вот при комнатной температуре девайс выдавал под 50°C, наверно дело в мусоре младших разрядов АЦП. Но думаю собрать, например, терморегулятор для паяльника вполне сгодится.