Индикатор температуры для термопары. Термометр на ATmega8 и датчике температуры DS18B20

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

Сегодня мы расскажем, как своими руками сделать электронный термометр из трех деталей.

Очень простой и достаточно точный термометр можно сделать, если у вас случайно завалялся старый стрелочный амперметр со шкалой 100 мкА.
Для этого потребуется и всего две детали.
Температура измеряется датчиком LM 35. Этот интегральный кремниевый включает в себя термочувствительный элемент — первичный преобразователь и схему обработки сигнала, выполненные на одном кристалле и заключенные в корпус, такой, как, например, у КТ 502 (ТО- 92). У датчика LM 35 есть конструктивная разновидность с теми же параметрами, но иной цокалевкой и теплоотводом, что очень удобно для контактных измерений температуры.
Выходное напряжение датчика LM 35 пропорционально шкале Цельсия (10мВ/ С). При температуре 25 градусов этот датчик имеет на выходе напряжение 250 мВ, а при 100 градусов на выходе 1,0 В.
Обозначение датчика несколько необычно. Цоколевка приведена на рисунке.

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

В авторском варианте для тарировки был использован градусник от 0 до 50 градусов Цельсия с ценой деления 0,1 градус, поэтому термометр получился достаточно точным.
К сожалению, найти такой градусник проблематично. Для грубой тарировки можно просто положить датчик рядом с термометром, измеряющем скажем температуру в помещении, подождать часа два и выставить нужную температуру на шкале микроамперметра.
Если точный градусник все же найдется, то в качестве индикатора вместо стрелочного прибора можно использовать цифровой мультиметр, например китайский ВТ-308В, тогда показания температуры можно будет считывать до десятых долей градуса.
Для тех, кто хочет ознакомиться с интегральными датчиками подробно- простите сайт kit-e.ru или rcl-radio.ru (искать LM 35).

В последнее время в связи с частым использованием различных понижающих, повышающих, зарядно-контрольных модулей возникла надобность в термометре с обширным диапазоном измерений. Так как имевшийся в наличии мультиметр не имел функции измерения температуры, задумался о приобретении отдельного устройства. Погружные термометры отмел сразу – слишком инерционны. Пирометры, хоть и позволяют дистанционно измерять температуру, но отпугивают ценой и не блещут качеством. По крайней мере, те что попадались в руки не впечатлили.
В результате поисков был заказан за 3,99 $ электронный термометрТМ 902C


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

Есть другая модификация термометра – с питанием от двух элементов ААА, но в комплекте с термопарой ТР01 с пределом измерений в 350 (400 –согласно некоторых источников) градусов. Покупать отдельно термопару ТР02 смысла не увидел и закрыл глаза на питание от Кроны.
Что декларируют нам производитель с продавцом согласно инструкции на понятном всем нам языке)?



Хоть язык на самом деле мало кому из нас понятен, но хоть не много технически грамотный человек поймет, что прибор:
- при своих размерах 24* 72 *108
- питании от 9 Вольт (Крона, 9F22);
- относительной влажности ≤ 75 %;
- способен измерять температуру от -50 до 1300 градусов Цельсия (1370 – по инструкции);
- работает с термопарами типа К соответствующего диапазона.





Судя из информации в инструкции погрешности прибора, в диапазонах следующие (в Цельсиях):
От – 40 до – 20: -± 3 градуса;
От -20 до – 0: -± 2 градуса;
От 0 до 500: -± 0,75-1 градус;
От 500 до 750: -± 1 %;
От 750 до 1000 и от 1000 до 1370: не смог точно интерпретировать.
Наиболее распространенными являются термопары ТР01 и ТР02 с диапазонами от -50 до 350 (400) и от -50 до 750 градусов Цельсия, соответственно.
При покупке был задан вопрос продавцу о том, какая именно термопара будет в комплекте.
Были получены заверения, что термометр будет измерять температуру от -50 до 750 градусов, т.е. в комплекте будет зонд ТР02, что подтверждают дальнейшие испытания.
Внешне прибор сделан очень аккуратно, литье качественное.





Вес с элементом питания и термопарой

Задняя крышка крепится двумя винтами. Этими же винтами крепится и плата – просто, надежно и экономно.
Двумя винтами и двумя защелками к плате крепится дисплей.

Углы обзора широкие.
Внутри литье корпуса менее тщательное, что не критично.



Плата сделана из гетинакса.
Качество обработки одного из четырех торцов платы (не забываем за цену прибора)

Дисплей размером 1,9 дюйма соединяется с платой через токопроводящую резинку, поэтому снимать экран не стал – вряд ли удастся, потом правильно поставить на место.

На окантовке экрана имеются проушины для крепления винтами к корпусу – в данном случае такая схема крепления не применяется.
Присутствуют легкие следы флюса, но думаю, на работоспособности это никак не отразится.

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

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

Веранда

Комната

Горячая вода


Температура кипения воды


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






На последней фотографии видно, что температура нагревательного элемента выше 400 градусов, что говорит о том, что в комплекте действительно термопара ТР02.
В ходе тестов была слегка подпорчена стекловолоконная оплетка шнура термопары – попала в пламя газовой плиты. Однако это тоже можно считать тестом – она не обгорела, а лишь слегка изменила цвет.


К плюсам отнесу:
- узкую специализацию прибора;
- приличный внешний вид и качество исполнения;
- комплектацию термопарой ТР02;
- как мне кажется, достаточную точность измерений и благодаря этому широкий диапазон измерений;
Минусов, кроме источника питания 9 Вольт и отсутствия защитного колпачка термопары, не обнаружил.

Планирую купить +40 Добавить в избранное Обзор понравился +42 +72

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

Термопары (термоэлектрические преобразователи).

Все термодатчики из предыдущих уроков позволяли измерять температуру в диапазоне не шире – 55 … + 150 °C. Для измерения более высоких температур самыми распространенными датчиками являются термопары. Они:

  • имеют крайне широкий диапазон измерения температуры -250 … +2500 °C;
  • могут быть откалиброваны на высокую точность измерения, до погрешности не более 0,01 °C;
  • как правило, имеют низкую цену;
  • считаются надежными датчиками температуры.

Главный недостаток термопар – это необходимость в достаточно сложном прецизионном измерителе, который должен обеспечивать:

  • измерение низких значений термо-ЭДС с верхним значением диапазона десятки, а иногда и единицы мВ;
  • компенсацию термо-ЭДС холодного спая;
  • линеаризацию характеристики термопары.

Принцип действия термопар.

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

В цепи между соединенными разнородными металлами образовывается разность потенциалов. Ее величина зависит от температуры. Поэтому она называется термо-ЭДС. У разных материалов величина термо-ЭДС разная.

Если в цепи стыки (спаи) разнородных проводников связаны в кольцо и имеют одинаковую температуру, то сумма термо-ЭДС равна нулю. Если же спаи проводов находятся при разных температурах, то общая разность потенциалов между ними зависит от разности температур. В результате мы приходим к конструкции термопары.

Два разнородных металла 1 и 2 в одной точке образуют рабочий спай. Рабочий спай помещают в точку, температуру которой необходимо измерить.

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

Основные типы термопар.

Наиболее широкое распространение получили термопары ХК (хромель – копель) и ХА (хромель – алюмель).

Название Обозначение НСХ Материалы Диапазон измерения, °C Чувствительность, мкВ/°C, (при температуре, °C) Термо-ЭДС, мВ, при 100 °C
ТХК (хромель-копелевые) L Хромель, копель - 200 … + 800 64 (0) 6,86
ТХА (хромель-алюмель) K Хромель, алюмель - 270 … +1372 35 (0) 4,10
ТПР (платино-родиевые) B Платинородий, платина 100 … 1820 8 (1000) 0, 03
ТВР (вольфрам-рениевые) A Вольфрам-рений, вольфрам-рений 0 … 2500 14 (1300) 1,34

Как практически измерять температуру с помощью термопары. Методика измерения.

Номинальная статическая характеристика (НСХ) термопары задана в виде таблицы с двумя столбцами: температура рабочего спая и термо-ЭДС. ГОСТ Р 8.585-2001 содержит НСХ термопар разных типов, заданные для каждого градуса. Можно загрузить в PDF формате по этой ссылке .

Для измерения температуры с помощью термопары необходимо выполнить следующие действия:

  • измерить термо-ЭДС термопары (E общ.);
  • измерить температуру холодного спая (T хол. спая);
  • по таблице НСХ термопары определить термо-ЭДС холодного спая, используя температуру холодного спая (E хол. спая);
  • определить термо-ЭДС рабочего спая, т.е. прибавить ЭДС холодного спая к общей термо-ЭДС (E раб. спая = E общ. + E хол. спая);
  • по таблице НСХ определить температуру рабочего спая, используя термо-ЭДС рабочего спая.

Вот пример, как я замерил с помощью термопары типа ТХА температуру жала паяльника.

  • Прикоснулся рабочим спаем к жалу паяльника, замерил напряжение на выводах термопары. Получилось 10,6 мВ.
  • Температура окружающей среды, т.е. температура холодного спая – примерно 25 °C. ЭДС холодного спая из таблицы ГОСТ Р 8.585-2001 для термопары типа K при 25 °C равна 1 мВ.
  • Термо-ЭДС рабочего спая равна 10,6 + 1 = 11,6 мВ.
  • Температура из той же таблицы для 11,6 мВ равна 285 °C. Это и есть измеренное значение.

Такую последовательность действий нам надо реализовать в программе Ардуино термометра.

Ардуино термометр для измерения высоких температур с помощью термопары типа ТХА.

У меня нашлась термопара TP-01A. Типичная, широко распространенная ТХА термопара от тестера. Ее я и буду использовать в термометре.

На упаковке указаны параметры:

  • тип K;
  • диапазон измерения – 60 … + 400 °C;
  • точность ±2,5 % в диапазоне до 400 °C.

Диапазон измерения указан для кабеля из стекловолокна. Существует похожая термопара TP-02, но с зондом длиной 10 см.

У TP-02 верхняя граница измерения 700 °C . Значит, будем разрабатывать термометр:

  • для термопары типа ТХА;
  • с диапазоном измерения – 60 … + 700 °C.

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

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

Рубрика: . Вы можете добавить в закладки.

Термометр на ATmega8 и датчике температуры DS18B20

Схема термометра на ATmega8 и DS18B20

Цифровой термометр DS18B20
Семисегментный светодиодный индикатор
Алгоритм программы термометра
Программа цифрового термометра на DS18B20

Схема и программа очень простого цифрового термометра с использованием микроконтроллера ATmega8 и датчика температуры DS18B20 . Термометр позволяет измерять температуру от 0 до 99 градусов с точностью до 0,5 градусов с разрешением 0,1 градуса

Термометр по своим характеристикам очень прост, и его можно использовать только как термометр для измерения «комнатной» температуры. Использовать в этой конструкции микроконтроллер с памятью 8 килобайт конечно расточительно, можно применить микроконтроллер и попроще. Но дело в том, что эта конструкция — основа для дальнейшего развития проекта с использованием цифрового датчика температуры DS18B20. В следующей статье будет опубликована конструкция другого термометра — на двух датчиках DS18B20, что позволит измерять температуру не только в комнате, но и «за бортом». Естественно, будет добавлена возможность измерять и отрицательные температуру. В дальнейшем в конструкцию будет добавлена функция термостата, часы, возможность работы с различными нагрузками, что позволит уже собрать несложную конструкцию — основу «умного дома». Ну а сегодня первая статья из этой серии.

Схема термометра на ATmega8 и датчике температуры DS18B20

Давайте посмотрим на схему термометра:

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

Напряжение питания конструкции — 5 вольт. Если вы примените микроконтроллер с низковольтным питанием , то можно и понизить питающее напряжение конструкции, но в этом случае, возможно придется уменьшить номинал гасящих сопротивлений в сегментах индикатора. Приблизительно номиналы сопротивлений можно брать:
— при питании 5 вольт — 200-300 Ом
— при питании 2,7 — 3 вольта — 100-150 Ом


Транзисторы — любые, маломощные, структуры NPN.
Датчик температуры — DS18B20
Семисегментный индикатор — любой трехразрядный с общим катодом. Если вы захотите применить другие, с общим анодом, тогда придется заменить транзисторы на PNP и внести изменения в программу (заменить массив двоичных кодов для вывода цифр на индикатор). Я применил индикатор красного цвета свечения, и заодно, для следующей схемы, приготовил такой-же, но голубого цвета свечения.

Детали термометра на микроконтроллере ATmega и DS18B20



Распиновка микроконтроллера ATmega8:

Трехразрядный семисегментный индикатор FYT-5631AUR-21:

Датчик температуры DS18B20:

Транзисторы BC547C:

Алгоритм работы программы термометра на ATmega и DS18B20

Все установки микроконтроллера заводские, FUSE-биты трогать не надо.

Для работы программы задействовано два таймера/счетчика микроконтроллера:
восьмиразрядный Т0
шестнадцатиразрядный Т1
С помощью восьмиразрядного таймера Т0 настроенного на вызов прерывания по переполнению, с внутренней частотой СК/8 (период 2 миллисекунды) организован:
— расчет текущей температуры
— динамический вывод результатов измерения температуры датчиком DS18B20
С помощью шестнадцатиразрядного таймера Т1 настроенного на вызов прерывания по переполнению, с внутренней частотой СК/64 (период 4 секунды) организованно:
— подача команды датчику DS18B20 на измерение температуры
— считывание измеренной температуры с датчика
В принципе, можно задействовать и один восьмиразрядный таймер/счетчик, также настроенный на вызов прерывания по переполнению, с внутренней частотой СК/8, и всю работу схемы организовать в процессе обработки прерывания. Но дело в том, что смысла в этом нет — датчику DS18B20 необходимо чуть меньше 1 секунды (при 12-ти битном разрешении) для конвертирования (определения) температуры, т.е., чаще чем 1 раз в секунду мы не сможем обновлять данные температуры. Кроме того, столь частое обновление температуры приведет к нагреву датчика и, соответственно, к искажению реальных данных. Использование второго счетчика позволяет отдельно задавать промежутки времени измерения температуры.

Вот так выглядит основная часть программы в Algorithm Builder:

Где:

SP — настройка начального адреса стека

Timer 0 — настройка таймера T0:

Timer 1 — настройка таймера Т1:

TIMSK — настройка прерываний от таймеров:

Init_Display — подпрограмма настройки разрядов портов, участвующих в динамической индикации вывода данных на трехразрядный семисегментный индикатор

1 —> I — глобальное разрешение прерываний

Если возникнут вопросы, если что-то изложено не понятно или есть вопросы по программе, пишите — отвечу.

(2,4 KiB, 7 012 hits)