Цифровой датчик температуры TSic: адреса, пароли, явки
Продолжаем серию материалов об особенностях применения различных датчиков и чувствительных элементов.
Герой сегодняшней статьи, на первый взгляд, не представляет собой ничего особенного — мало ли мы видели цифровых датчиков температуры. Однако у серии TSic есть два необычных свойства: действительно высокая точность (до ±0.07°C у старшей модели) и малоизвестный однопроводной интерфейс ZACwire.
Под катом подробно описываем номенклатуру стандартных датчиков TSic и кастомные решения, разбираемся в особенностях коммуникационного протокола, смотрим примеры программ для МК. Словом, делаем всё чтобы убедить уважаемого читателя в том что датчики TSic стоят своих денег.
TSic — это серия цифровых датчиков температуры, которые в прошлом выпускались под брендом ZMDI, а сейчас принадлежат швейцарской компании IST AG.
Чувствительным элементом датчика служит высокоточный источник опорного напряжения с выходом, пропорциональным температуре (bandgap reference with a PTAT (proportional-to-absolute-temperature). Как и другие интегральные датчики температуры, TSic также содержит АЦП, схему обработки сигнала, EEPROM с данными для калибровки и выходной интерфейс.
Между собой стандартные модели датчиков TSic различаются рабочим диапазоном температур, точностью, типом выходного сигнала и корпусом.
Рабочий диапазон температур и точность
Датчики TSic 20x и TSic 30x имеют рабочий диапазон температур от -50 до +150°C и три «зоны точности». На графике показана максимальная погрешность датчиков на различных диапазонах температуры.

Датчики TSic 50x предназначены для более узкого диапазона температур — от -10 до +60°C. На участке повышенной точности шириной 40 градусов датчики TSic 50x обеспечивают точность ±0.1°C, на остальном диапазоне — ±0.2°C.

Самый дорогой высокоточный датчик TSic — это модель TSic 716. На узком 20-градусном участке этот элемент обеспечивает ±0.07°C.

Отличием датчика TSic 716 также является более высокая разрядность (разрешение). Если в датчиках TSic 206, TSic 306 и TSic 506 встроен 11-битный АЦП, то TSic 716 оснащен 14-разрнядным преобразователем.
Таким образом, разрешение датчиков TSic 206 и TSic 306 составляет ,
разрешение TSic 506 составляет ,
разрешение TSic 716 составляет .
Кастомная калибровка
Выше описаны стандартные исполнения датчиков TSic, однако диапазон повышенной точности любого из датчиков TSic может быть «сдвинут» при производстве элемента. Так, например, под заказ доступны датчики TSic 50x с повышенной точностью на участке от -10 до 30°C или от 13 до 53°C. Аналогично для других моделей TSic.

Корпус
Датчики серии TSic выпускаются в корпусах SOP-8 и TO92, распиновка доступна в документации.
Кроме того, существует возможность поставки датчиков TSic в нестандартных корпусах, с разного рода кабелями, коннекторами, контактными площадками и так далее. Тут всё обсуждается индивидуально, но сразу скажу, что для использования этой возможности совершенно не обязательно иметь проект на сотни датчиков в год.
Подключение датчика
Для подключения любой модели TSic понадобятся соединения по питанию и земле, а также одна сигнальная линия.

Рабочее напряжение датчика — от 3 до 5.5В. Часто датчик удобнее запитать от одного из GPIO управляющего контроллера. Во-первых, это позволяет свести к нулю энергопотребление датчика вне цикла измерений, а во-вторых, упрощается детектирование начала посылки, если используется датчик TSic с цифровым выходом.
В случае питания датчика от ножки контроллера производитель рекомендует позаботиться об исключении влияния шумов и добавить на линию питания RC-цепочку.
Выходной сигнал
Датчики TSic 20x, TSic 30x и TSic 50x могут иметь аналоговый, ратиометрический или цифровой выход. В первом случае напряжение на выходе изменяется от 0 до 1 В пропорционально температуре среды, во втором случае — от 10 до 90% от напряжения питания. Датчики с цифровым выходом используют протокол ZACWire, о котором мы подробно поговорим чуть ниже.
Во всех трёх случаях выходной сигнал пропорционален температуре, т.е. для расчета температуры используются простые формулы.
Для датчиков TSic с аналоговым выходом:
Для датчиков TSic с ратиометрическим выходом:
Для датчиков TSic с цифровым выходом:
- — температура, °C
- — выходное напряжение датчика, В
- — напряжение питания, В
- — выходной цифровой сигнал
- — верхняя граница диапазона рабочих температур, °C
= +150°C для TSic 20x и TSic 30x, = +60°C для TSic 50xF и TSic 716 - — нижняя граница диапазона рабочих температур, °C
= -50°C для TSic 20x и TSic 30x, = -10°C для TSic 50xF и TSic 716
Примеры сигналов на выходе датчиков TSic приведены в таблице.
| Для датчиков TSic 20x / TSic 30x | ||||
| Измеряемая температура, °C | Аналоговый выход | Ратиометрический выход | Цифровой выход | |
| -50 | 0.000В | 10% V + (0.5В при V + =5В) |
0x000 | |
| -10 | 0.200В | 26% V + (1.3В при V + =5В) |
0x199 | |
| 0 | 0.250В | 30% V + (1.5В при V + =5В) |
0x200 | |
| +25 | 0.375В | 40% V + (2.0В при V + =5В) |
0x2FF | |
| +60 | 0.550В | 54% V + (2.7В при V + =5В) |
0x465 | |
| +125 | 0.875В | 80% V + (4.0В при V + =5В) |
0x6FE | |
| +150 | 1.000В | 90% V + (4.5В при V + =5В) |
0x7FF | |
| Для датчиков TSic 50xF / TSic 716 | ||||
| 11-бит (TSic 506F) |
14-бит (TSic 716) |
|||
| -10 | 0.000В | 10% V + (0.5В при V + =5В) |
0x000 | 0x0000 |
| 0 | 0.143В | 21.4% V + (1.07В при V + =5В) |
0x124 | 0x0924 |
| +25 | 0.500В | 50% V + (2.5В при V + =5В) |
0x3FF | 0x01FF |
| +60 | 1.000В | 90% V + (4.5В при V + =5В) |
0x7FF | 0x3FFF |
Чаще всего, впрочем, выбирают датчики с цифровым выходом, это позволяет не задумываться о влиянии схем обработки аналогового сигнала на точность измерений. При этом цифровой датчик TSic использует столько же ножек МК, сколько и аналоговый датчик, плюс он немножко дешевле.
Очевидный минус датчика TSic с цифровым выходом — нестандартный интерфейс, для которого на ваш МК ещё нет готовой библиотеки. Очевидный плюс — этот интерфейс очень простой.
Протокол ZACWire
ZACWire — однопроводной протокол, использующий кодировку, напоминающую Манчестерскую.
Датчик с заранее определенной частотой передаёт данные о температуре — два восьмибитных пакета данных. Каждый из пакетов начинается стартовым битом и заканчивается битом чётности. В зависимости от модели датчика, в каждой посылке либо 11, либо 14 значащих разрядов, первым идет старший бит.

Пассивным состоянием лини данных является высокий уровень. Каждый бит посылки TSic начинается со спада сигнала и занимает 125 микросекунд. Состояние линии данных фиксируется на середине этого интервала — если по прошествии 62.5 мксек со спада сигнала на линии высокий уровень, то записываем логическую «1», если низкий, то логический «0». Коэффицент заполнения в первом случае равняется 75%, в втором — 25%.

Коммуникационный интерфейс ZACWire не использует отдельного тактового сигнала, поэтому отсчёт тактов производится на стороне микроконтроллера.
Стартовый бит также начинается со спада сигнала, но имеет коэффициент заполнения 50%. Стартовый бит может использоваться как для детектирования начала посылки, так и для измерения длительности такта, если она не известна заранее: временной период между спадом и фронтом стартового бита равен Tstrobe — времени, по истечении которого нужно проверять состояние линии при чтении очередного бита.
С другой стороны, для стандартных датчиков TSic значение Tstrobeизвестно заранее
и равно 125 / 2 = 62.5 мксек, поэтому на практике стартовый бит просто детектируют и пропускают.

Биты чётности декодируются так же, как и биты данных. В отсутствии внешних помех и небольшой длине соединения (до 2 метров) контроль целостности, как правило, не требуется. Между окончанием первого пакета и вторым стартовым битом на линии установлен высокий уровень.
Чтобы внести окончательную ясность, рассмотрим осциллограмму пакета данных датчика TSic 306.

Посылка начинается со стартового бита, далее идут незначащие биты данных, которые всегда равны «0», далее идут старшие биты данных — «011», далее бит чётности, соответственно равный «0». Второй пакет начинается через один период (Tstrobe * 2) и содержит стартовый бит, восемь младших бит данных «00011000» и бит чётности, соответственно равный «0».

В результате получаем на выходе 01100011000bin = 792dec и по приведенной выше формуле вычисляем значение температуры.
Если говорить о частоте, с которой датчик TSic передаёт такие посылки с данными, то она устанавливается при производстве компонента и не может быть изменена по ходу использования датчика. Для моделей TSic 206, TSic 306, TSic 506 частота равляется 10 Гц, для TSic 716 — 1 Гц. Под заказ доступны датчики с нестандартной частотой измерений — 250, 10, 1 и 0.1 Гц.
Если задача не предполагает опроса датчика с максимально возможной частотой и на микроконтроллере есть свободная линия, то имеет смысл использовать эту линию для питания датчика. Таким образом, каждый раз когда требуется получить данные с датчика, можно подать питание на датчик и ожидать спада на линии данных — стартового бита первого пакета. Между подачей питания на TSic и передачей посылки пройдет менее 85 микросекунд, а после приёма двух пакетов данных питание датчика можно отключить.
Именно такой способ подключения датчика использовался вашей покорной слугой.
В порядке эксперимента я подключаю две стандартные модели TSic 306 TO92 и TSic 506 TO92 к отладочной плате EFM32ZG-STK3200. По нажатию на кнопку на датчик подаётся питание, принимается одна посылка с данными о температуре, данные обрабатываются, результат выводится на установленный на плату LCD дисплей, после чего датчик от питания отключается.
Отладочная плата EFM32ZG-STK3200 выпускается компанией Silicon Labs (SiLabs)
для работы с микроконтроллерами EFM32 Zero Gecko.
EFM32 Zero Gecko — младшая серия семейства EFM32. Эти микроконтроллеры построены на базе ядра ARM Cortex-M0+, имеют стандартный набор встроенный периферии и разные интересные модули для снижения энергопотребления контроллера. Мы уже публиковали на хабре подробную статью об особенностях этой платформы и средствах отладки для EFM32 Zero Gecko.
Сегодня мы вообще не будем касаться специфических программных и аппаратных компонентов EFM32, предназначенных для контроля и снижения энергопотребления. Вместо этого будем использовать самые базовые компоненты и режимы их работы, чтобы полученный алгоритм было проще перенести на богомерзкий STM портировать на другие микроконтроллерные платформы.
- Три GPIO: подключенный к кнопке PC9 и свободные PC0 и PC1 для линий питания и данных TSic
- Таймер для тактирования линии данных TSic
- SPI для работы со встроенным дисплеем. SPI я упоминаю просто для порядка, т.к. вся работа с выводом данных проводится с помощью SiLabs-овской библиотеки glib, содержимое которой мне не очень интересно
- Микроконтроллер EFM32ZG222F32
- USB-отладчик SEGGER J-Link USB
- Механическую кнопку PB1
- Разъем expansion header, на котором доступны нужные GPIO и земля
- Дисплей 128×128 пикселей — исключительно симпатичный LCD
Итак, по прерыванию от кнопки подаём на датчик питание, принимаем посылку и отключаем питание. Если при приёме данных возникла ошибка — выдаём соответствующее сообщение, иначе вычисляем температуру в градусах Цельсия и показываем результат на LCD.
Здесь пора отметить, что рассмотренный в этой статье код — совершенно не оптимален. То есть совсем-совсем не оптимален. Ниже вы увидите, как фронты и спады сигнала детектируются с помощью while, как временные интервалы отсчитываются без использования прерываний и прочая, прочая.
Причина такого подхода — желание рассмотреть максимально простой и понятный пример, в котором не будет использоваться вообще никаких специфических для конкретного микроконтроллера функций.
Итак, функция приёма данных receiveTSicData() — это приём двух пакетов данных, вычленение из каждого из них бита чётности и проверка целостности для обоих пакетов.
Функция readTSicPacket(), возвращающая currentTSicPacket, может выглядеть следующим образом.
Настройки самого микроконтроллера и таймера слишком сильно зависят от используемой платформы, чтобы приводить их в тексте статьи про датчик.
Функции проверки целостности и вычисления температуры в градусах Цельсия также не представляют собой совершенно ничего примечательного.
Датчики температуры. Виды и принцип действия. Выбор
Привет, Вы узнаете про датчик температуры, Разберем основные ее виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое датчик температуры , настоятельно рекомендую прочитать все из категории Датчики и сенсоры, Технические измерения и измерительные приборы .
Датчики температуры нужны для того, чтобы проконтролировать температуру в помещении, жидкости, твердого объекта или расплавленного металла.
Основой действия температурных датчиков в автоматизированном управлении является изменение температуры в электрический сигнал. Это обуславливает преимущества электрических измерений: результаты легко передавать по сети, скорость передачи может быть достаточно высокой. Величины могут преобразовываться друг в друга и обратно. Цифровой код создает повышенную точность замера, скорость и чувствительность.
По типу дистанцирования можно классифицировать датчики измерения темпратуры на контактные и бесконтактные.
Бесконтактные – осуществляют измерения на основе теплового излучения тел. Такой метод позволяет проводить измерения, находясь на удалении. Помимо этого они применяются для измерения высочайших температур, при которых контактные датчики работать не смогут. Однако к проблемам таких измерителей относят низкую точность измерения низких температур. Нередко и вовсе становиться невозможно, измерить такие температуры.
Контактные – проводят измерения, основываясь на принципе теплового равновесия между измеряемым объектом и чувствительным элементом измерительного прибора. К таким относятся термопары, терморезисторы и др.

Классификация по принципу действия датчиков температуры
Термопары
Термопара представляет собой две проволоки из разных металлов, спаянных между собой. При разности температур между горячим и холодным концом в цепи возникает электрический ток. Величина этого электрического тока зависит от термоэлектрической силы термопары, составляет от 40 до 60 мкВ, в зависимости от материала термопары. Материал термопары может быть разным. Это могут быть никель-хромовые, хромо-алюминиевые, железо-никелевые, железо-константановые и т.д.


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

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

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

Программным способом компенсации является использование другого датчика температуры, на этот раз абсолютного, который помещается в изотермическую камеру вместе с холодными спаями и контролирует их температуру с заданной точностью.
Недостатки датчиков использующие термопары.
Во-первых, она нелинейная. В ГОСТе заботливо введены коэффициенты полинома для перевода ЭДС в температуру и обратно. Эти полиномы большого порядка, но ничто не запрещает спокойно их посчитать силами контроллера.
Во-вторых, другая проблема заключается в том, что термо-ЭДС термопары измеряется в единицах и сотнях микровольт. Соответственно, использование широко доступных аналогоцифровых преобразователей приведет к полному провалу. Нужны прецизионные многоразрядные малошумящие аналогоцифровые преобразователи для того, чтобы использовать термопару в своих конструкциях.
Проблемы с точностью измерений термопары создает и используемые материал, наличие в нем примесей и способ обработки. Все это может влиять на термоэдс прибора в целом.
Типы термопар и их характеристики
Различные сплавы, используемые для изготовления термопар, обладают разными коэффициентами термо-ЭДС. В зависимости от того, из каких металлов изготовлены термоэлектроды, различают следующие основные типы термопар:
- ТПП13 – платинородий-платиновые (тип R);
- ТПП10 – платинородий-платиновые (тип S);
- ТПР – платинородий-платинродиевые (тип B);
- ТЖК – железо-константановые (тип J);
- ТМКн – медь-константановые (тип T);
- ТНН – нихросил-нисиловые (тип N);
- ТХА – хромель-алюмелевые (тип K);
- ТХКн – хромель-константановые (тип E);
- ТХК – хромель-копелевые (тип L);
- ТМК – медь-копелевые (тип M);
- ТСС – сильх-силиновые (тип I);
- ТВР – вольфрамрениевые (типы A-1 – A-3).
Технические требования к термопарам задаются параметрами определенными ГОСТ 6616-94, а их НСХ (номинальные статические характеристики преобразования), оптимальные диапазоны измерений, установленные классы допуска регулируются стандартами МЭК 62460, и определены ГОСТ Р 8.585-2001. Заметим, также, что НСХ в вольфрам-рениевых термопарах отсутствовали в таблицах МЭК до 2008 г. На сегодняшний день указанными стандартами не определены характеристики термопары хромель-копель, но их параметры по прежнему регулируются ГОСТ Р 8.585-2001. Поэтому импортные термопары типа L не являются полным аналогом отечественного изделия ТХК.
Классификацию термодатчиков можно провести и по другим признакам: по типу спаев, количеству чувствительных элементов.
Типы спаев
В зависимости от назначения термодатчика спаи термопар могут иметь различную конфигурацию. Существуют одноэлементные и двухэлементные спаи. Они могут быть как заземленными на корпус колбы, так и незаземленными. Понять схемы таких конструкций можно из рисунка 5.

Рис. 5. Типы спаев
- И – один спай, изолированный от корпуса;
- Н – один соединенный с корпусом спай;
- ИИ – два изолированных друг от друга и от корпуса спая;
- 2И – сдвоенный спай, изолированный от корпуса;
- ИН – два спая, один из которых заземлен;
- НН – два неизолированных спая, соединенных с корпусом.
Заземление на корпус снижает инерционность термопары, что, в свою очередь, повышает быстродействие датчика и увеличивает точность измерений в режиме реального времени.
С целью уменьшения инерционности в некоторых моделях термоэлектрических преобразователей оставляют горячий спай снаружи защитной колбы.
Многоточечные термопары
Часто требуется измерение температуры в различных точках одновременно. Многоточечные термопары решают эту проблему: они фиксируют данные о температуре вдоль оси преобразователя. Такая необходимость возникает в химических и нефтехимических отраслях, где требуется получать информацию о распределении температуры в реакторах, колоннах фракционирования и в других емкостях, предназначенных для переработки жидкостей химическим способом.
Многоточечные измерительные преобразователи температуры повышают экономичность, не требуют сложного обслуживания. Количество точек сбора данных может достигать до 60. При этом используется только одна колба и одна точка ввода в установку.
Таблица сравнения термопар
Выше мы рассмотрели типы термоэлектрических преобразователей. У читателя, скорее всего, резонно возник вопрос: Почему так много типов термопар существует?
Дело в том, что заявленная производителем точность измерений возможна только в определенном интервале температур. Именно в этом диапазоне производитель гарантирует линейную характеристику своего изделия. В других диапазонах зависимость напряжения от температуры может быть нелинейной, а это обязательно отобразится на точности. Следует учитывать, что материалы обладают разной степенью плавкости, поэтому для них существует предельное значение рабочих температур.
Для сравнения термопар составлены таблицы, в которых отображены основные параметры измерительных преобразователей. В качестве примера приводим один из вариантов таблицы для сравнения распространенных термопар.
| Тип термопары | K | J | N | R | S | B | T | E |
| Материал положительного электрода | Cr—Ni | Fe | Ni—Cr—Si | Pt—Rh (13 % Rh) | Pt—Rh (10 % Rh) | Pt—Rh (30 % Rh) | Cu | Cr—Ni |
| Материал отрицательного электрода | Ni—Al | Cu—Ni | Ni—Si—Mg | Pt | Pt | Pt—Rh (6 % Rh | Cu—Ni | Cu—Ni |
| Температурный коэффициент | 40…41 | 55.2 | 68 | |||||
| Рабочий температурный диапазон, ºC | 0 до +1100 | 0 до +700 | 0 до +1100 | 0 до +1600 | 0 до 1600 | +200 до +1700 | −185 до +300 | 0 до +800 |
| Значения предельных температур, ºС | −180; +1300 | −180; +800 | −270; +1300 | – 50; +1600 | −50; +1750 | 0; +1820 | −250; +400 | −40; +900 |
| Класс точности 1, в соответствующем диапазоне температур, (°C) | ±1,5 от −40 °C до 375 °C | ±1,5 от −40 °C до 375 °C | ±1,5 от −40 °C до 375 °C | ±1,0 от 0 °C до 1100 °C | ±1,0 от 0 °C до 1100 °C | ±0,5 от −40 °C до 125 °C | ±1,5 от −40 °C до 375 °C | |
| ±0,004×T от 375 °C до 1000 °C | ±0,004×T от 375 °C до 750 °C | ±0,004×T от 375 °C до 1000 °C | ±[1 + 0,003×(T − 1100)] от 1100 °C до 1600 °C | ±[1 + 0,003×(T − 1100)] от 1100 °C до 1600 ° | ±0,004×T от 125 °C до 350 °C | ±0,004×T от 375 °C до 800 °C | ||
| Класс точности 2 в соответствующем диапазоне температур, (°C) | ±2,5 от −40 °C до 333 °C | ±2,5 от −40 °C до 333 °C | ±2,5 от −40 °C до 333 °C | ±1,5 от 0 °C до 600 °C | ±1,5 от 0 °C до 600 °C | ±0,0025×T от 600 °C до 1700 °C | ±1,0 от −40 °C до 133 °C | ±2,5 от −40 °C до 333 °C |
| ±0,0075×T от 333 °C до 1200 °C | ±0, T от 333 °C до 750 °C | ±0,0075×T от 333 °C до 1200 °C | ±0,0025×T от 600 °C до 1600 °C | ±0,0025×T от 600 °C до 1600 °C | ±0,0075×T от 133 °C до 350 °C | ±0,0075×T от 333 °C до 900 °C | ||
| Цветовая маркировка выводов по МЭК | Зеленый — белый | Черный — белый | Сиреневый — белый | Оранжевый — белый | Оранжевый — белый | Отсутствует | Коричневый — белый | Фиолетовый — белый |
Способы подключения
Каждая новая точка соединения проводов из разнородных металлов образует холодный спай, что может повлиять на точность показаний . Об этом говорит сайт https://intellect.icu . Поэтому подключения термопары выполняют, по возможности, проводами из того же материала, что и электроды. Обычно производители поставляют изделия с подсоединенными компенсационными проводами.
Некоторые измерительные приборы содержат схемы корректировки показаний на основе встроенного термистора. К таким приборам просто подключаются провода, соблюдая их полярность (см. рис. 6).

Рис. 6. Компенсационные провода
Часто используют схему подключения «на разрыв». Измерительный прибор, подключают через проводник того же типа что и клеммы (чаще всего медь). Таким образом, в местах соединения отсутствует холодный спай. Он образуется лишь в одном месте: в точке присоединения провода к электроду термопары. На рисунке 7 показана схема такого подключения.

Рис. 7. Схема подключения на разрыв
При подключении термопары следует как можно ближе размещать измерительные системы, чтобы избежать использования слишком длинных проводов. Во всяком проводе возможны помехи, которые усиливаются с увеличением длины проволоки. Если от радиопомех можно избавиться путем экранирования проводки, то бороться с токами наводки гораздо сложнее.
В некоторых схемах используют компенсирующий терморезистор между контактом измерительного прибора и точкой холодного спая. Поскольку внешняя температура одинаково влияет на резистор и на свободный спай, то данный элемент будет корректировать такие воздействия.
И напоследок: подключив термопару к измерительному прибору, необходимо, пользуясь градуировочными таблицами, выполнить процедуру калибровки.
Применение термопар
Термопары используются везде, где требуется измерение температуры в технологической среде. Они применяются в автоматизированных системах управления в качестве датчиков температуры. Термопары типа ТВР, у которых внушительный диаметр термоэлектрода, незаменимы там, где требуется получать данные о слишком высокой температуре, в частности в металлургии.
Газовые котлы, конвекторы, водонагревательные колонки также оборудованы термоэлектрическими преобразователями.
Преимущества термопар
- высокая точность измерений;
- достаточно широкий температурный диапазон;
- высокая надежность;
- простота в обслуживании;
- дешевизна.
Недостатки термопар
Недостатками изделий являются факторы:
- влияние свободных спаев на показатели приборов;
- ограничение пределов рабочего диапазона нелинейной зависимостью ТЭДС от степени нагревания, порождающей сложности в разработке вторичных преобразователей сигналов;
- при длительной эксплуатации в условиях перепадов температур ухудшаются градуировочные характеристики;
- необходимость в индивидуальной градуировке для получения высокой точности измерений, в пределах погрешности в 0,01 ºC.
Терморезисторы
Гораздо более простым способом измерения стало применение терморезисторов. Они работают на зависимости сопротивления материалов от внешней температуры. Металлические термометры сопротивления, в частности платиновые обладают очень высокой точностью и линейностью. Термометры сопротивления определяются двумя основными характеристиками.

пример датчика использующий терморезистор для измерения температуры KY-013

Это базовое сопротивление термометра при определенной температуре. В ГОСТе базовым сопротивлением считается сопротивление при 0 градусах по Цельсию. ГОСТ рекомендует использование нескольких номиналов сопротивлений в Омах и температурный коэффициент, который определяется как разность сопротивлений нашей температуры и при 0 градусов, деленной на нашу температуру и t нуля градусов, умноженную на единицу, деленную на базовое сопротивление.
Ткс = (Re – R0c) / (Te – T0c) *1/R0c
В ГОСТе на терморезисторы вы найдете температурный коэффициент для различных термометров из платины, меди и никеля. Кроме того, там присутствуют коэффициенты полинома для расчета температуры из текущего сопротивления резистора. Одной из проблем термометров сопротивления является очень низкий температурный коэффициент сопротивления. Однако, измерять сопротивление с высокой точностью гораздо проще, чем очень малые значения напряжения в отличие от термопар.
К минусам терморезисторов относят не очень высокую точность и подверженность к износу измерительного материала вызывающее еще большее падение точности со временем.
Акустические термодатчики температуры
Акустические термодатчики – используются преимущественно для измерения средних и высоких температур и применяются в экстремальных условиях (в диапазоне криогенных температур, при высоких уровнях радиации в ядерных реакторах и т.д.), а также при проведении измерений в замкнутом герметичном объеме, где невозможно разместить контактные датчики или использовать пирометры. Состоят из пространственно разнесенных излучателя и приемника акустических волн. Излучатель испускает сигнал, который проходит через исследуемую среду. Измеряя время прохождения сигнала известного расстояния между излучателем и приемником и зная базовую скорость распространения ультразвука в данной среде при известной температуре вычислитель считает скорость распространения при данной температуре, по которой затем вычисляется температура. Например, для газов зависимость скорости ультразвука от температуры выражается формулой:

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

Рис. Акустический датчик температуры .
Датчик состоит из трех компонентов: ультразвуковых передатчика и приемника, а также герметичной трубки, заполненной газом. Передатчик и приемник представляют собой керамические пьезоэлектрические пластины, акустически несвязанные с трубкой, что обеспечивает распространение звука преимущественно через газ внутри трубки. В качестве газа чаще всего используется сухой воздух. Тактовое устройство запускает передатчик, который посылает в трубку короткий ультразвуковой импульс, который пройдя через тестируемую среду трубки принимается приемником. Время прохождения сигнала подается в контроллер, который вычисляет скорость распространения ультразвука, а затем определяет температуру тестируемой среды.
Миниатюрные акустические датчики температуры используют принцип модуляции (зависимости) частоты электронных генераторов, построенных на основе времязадающих элементов поверхностных акустических волн (ПАВ). Фактически, такие интегральные акустические датчики являются прямыми преобразователями температуры в частоту. Такие датчики имеют чувствительность в пределах нескольких кГц на градус.
Полупроводниковые датчики температуры
Одним из способов измерения сопротивления является включение нашего термосопротивления в цепь источника тока и измерение дифференциального напряжения. Использование полупроводников даст нам температурный коэффициент доли единицы процента, их гораздо проще измерять с помощью аналогоцифровых преобразователей. Есть интегральные микросхемы датчиков температуры, аналоговый выход которых уже соответствует питаемому напряжению. Такие датчики температуры можно напрямую подключать к аналогоцифровому преобразователю и спокойно оцифровывать его с помощью восьми- или десятибитного АЦП.
Существуют датчики в виде микросхем. Они имеют встроенной к чувствительному элементу структурой формирования исходящего сигнала. Такие датчики бывают аналоговые и цифровые. Подключение таких аппаратов к микроконтроллерам является очень простым. Аналоговые подключаются к ADC, а цифровые с любой популярный интерфейс (чаще IC).
Комбинированный датчик
Помимо интегральных схем с выходом, существуют датчики с цифровым интерфейсом. Одним из популярных датчиков является комбинированный датчик температуры и влажности серии SHT1. Этот датчик позволяет измерять температуру с точностью + 2 градуса и влажность с точностью + 5 градусов. Главной проблемой данного датчика температуры является то, что там решили оптимизировать интерфейс. Он позволяет подключать параллельные устройства.
Цифровой датчик
Цифровой датчик температуры DS18B20, который представляет собой трехвыводную микросхему, позволяет с высокой точностью до 0,5 градуса получать температуру с множеством параллельно работающих датчиков. В этом датчике широкий интервал температур от -55 до +125 градусов. Основной его недостаток – медлительность. Вычисления с максимальной точностью он делает за 750 мс. Ввиду инерционности корпуса датчика температуры опрашивать его нет никакого смысла.
Бесконтактные датчики (пирометры)

В этом датчике имеется специальная тонкая пленка, поглощающая инфракрасные излучения, тем самым нагревающаяся. Такие бесконтактные термосенсоры используются в тепловизорах. Там имеется не один тепловой датчик, а матрица. Они позволяют на расстоянии до 3 метров детектировать тепловой объект.
Кварцевые преобразователи температуры
Для того, чтобы измерить температуру в интервале -80 +250 градусов применяют кварцевые преобразователи. Они работают на частотной зависимости кварца от температуры. Действие датчиков происходит на частотной зависимости. Функция преобразователя меняется от расположения среза по осям кристалла.
Кварцевые датчики работают с высокой чувствительностью, разрешением, стабильностью. Эти свойства делают их перспективными в использовании. Они получили большое распространение в цифровых термометрах.
Шумовые датчики температуры
Работа шумовых датчиков заключается на зависимости шумовой разности потенциалов на резисторе от температуры. Практически реализовать способ измерения температуры шумовыми датчиками можно, сделав сравнение шумов 2-х одинаковых резисторов, один находится при определенной температуре, 2-й при измеряемой температуре. Шумовые датчики температуры применяются для температурного интервала -270 -1100 градусов.
Преимуществом шумовых датчиков стала возможность измерения температуры в термодинамике на вышеописанной закономерности. Но это осложнено трудным измерением напряжения шума, так как оно мало и сравнимо с шумом усилителя.
Датчики температуры ЯКР (ядерного квадрупольного резонанса)
Термометры ЯКР работают за счет действия градиента поля тока решетки кристалла и момента ядра, которое вызвано отклонением заряда от симметрии сферы. Это создает процессию ядер. Частота имеет зависимость от градиента поля решетки. Для разных веществ имеет величину до тысяч МГц. Градиент зависит от температуры, с ее возрастанием частота ЯКР уменьшается.
Датчики температуры ЯКР образуют ампулу с веществом, помещенную в обмотку индуктивности, которая соединена с контуром генератора. Когда частота генератора совпадает с частотой ЯКР, то энергия генератора поглощается. Допуск замера температуры -263 градуса равен + 0,02 градуса, а температуры 27 градусов +0,002 градуса. Преимуществом термометров ЯКР становится стабильность, неограниченная по времени, недостатком является значительная нелинейность преобразующей функции.
Объемные преобразователи
Объемные датчики действуют на расширении и сжатии веществ при изменении температуры. Диапазон действия преобразователей определяется, насколько стабильны свойства материалов. Датчиками делают измерения температуры в интервале -60 -400 градусов. Допуск измерения составляет от 1 до 5%. Интервал работы датчика с жидкостью может зависеть от температуры закипания и замерзания. Погрешности измерения датчиков на жидкости от 1 до 3%, определяются температурой среды.
Нижняя граница измерения преобразователей на газе определяется температурой перехода газа в жидкое состояние, верхняя граница – стойкостью баллона к воздействию температуры.
Параметры выбора датчика температуры
- Диапазон рабочей температуры.
- Возможность погружения датчика в объект измерения или среду. Если это невозможно, то лучше выбрать пирометр или термометр.
- Условия проведения замеров. Если нужно измерять в агрессивной среде, то надо выбирать датчик в коррозионностойком корпусе, или бесконтактного типа. Также следует определить наличие давления, влажности и т.д.
- Время работы датчика до калибровки или замены. Многие датчики не могут долго и стабильно работать (термисторы).
- Величина сигнала выхода. Существуют датчики температуры, выдающие сигнал по току, или в градусах.
- Технические данные: погрешность, разрешение, напряжение, время сработки. Для полупроводников важен тип корпуса.
сравнение различнных видов датчиков
| Металлооксидные NTC термисторы | Полупроводниковые KTY датчики | Термопары | Платиновые терморезисторы на керамической подложке |
| Диапазон температуры измерения -100…300°C, некоторые модели до 500 °C | Диапазон температуры измерения -55…300°C | Диапазон температуры измерения -200…1800°C | Диапазон температуры измерения -196…1000°C |
| Нелинейные выходные характеристики Отсутствие их международных стандартов | Более линейные характеристики, чем у NTC термисторов, погрешность не менее 0.6°C | Наличие международного стандарта типов термопар | Высокая линейность характеристик, установленная стандартом DIN EN 60751 |
| Диапазон измерений зависит от типа термистора, стандартный диапазон 200 К | Диапазон измерений 200 К, стандарт: -55…+150°C | Диапазон измерений -40…1700°C (зависит от типа термопары), требуется компенсация холодного спая | Диапазон измерений стандартный: -70…+500°C, высокий: -40…1000°C |
| Дрейф сопротивления: 0.35% через 100 ч при температуре 150°C | Дрейф сопротивления: 0.45% через 1250 ч при температуре 150°C. | Зависит от строения термопары | Дрейф сопротивления:0.04% через 1000 ч при температуре 500°C |
| Точность сопротивления ± 1%, ±0.2°C в узком диапазоне температур | Точность ссч опротивления ± 5%, максимальная точность ±0.5% | Точность соответствует классу 2, зависит от типа термопары | Точность соответствует DIN EN 60751, класс B: ± 0.21% при +100°C± 0.33% при +500 °C |
| Высокая чувствительность для узких температурных диапазонов, значительное изменение сопротивления на градус Кельвина, чем у платиновых и полупроводниковых датчиков | Высокая чувствительность, около 15 ohm/K | Диапазон чувствительности от мкВ/K до мВ/K, зависит от типа термопары | Чувствительность стабильна во всем диапазоне температур, напр., менее 4 Ом/К для датчика 1000 Ом |
| Типы: эпоксидная или стеклянная изоляция; в корпусах DO-35, SMD модели, для автоматической сборки | Типы: стеклянный корпус, SMD и DO-35 корпуса | Типы: Термопары с неогранической изоляцией, голые проводники | Типы: базовые элементы с проводами, SMD, SOT223 и TO92 корпуса |
В общем, мой друг ты одолел чтение этой статьи об датчик температуры. Работы в переди у тебя будет много. Смело пишикоментарии, развивайся и счастье окажется в ваших руках. Надеюсь, что теперь ты понял что такое датчик температуры и для чего все это нужно, а если не понял, или есть замечания, то нестесняся пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Датчики и сенсоры, Технические измерения и измерительные приборы
Цифровой датчик температуры что это
Физические свойства тел (объём, давление, электрическое сопротивление, термоэдс, интенсивность излучения и др.) зависят от температуры, что позволяет измерять температуру, используя эти зависимости. Выбор метода измерения определяется диапазоном измеряемых температур, требуемой точностью, чувствительностью, допустимой инерционностью, условиями измерений.
Существует две группы методов: контактные и бесконтактные. Бесконтактные методы основываются на определении температуры по тепловому излучению тел. Ценность методов этой группы заключается в том, что они позволяют измерять температуру дистанционно. Кроме того, они применимы для измерения очень высоких температур, когда другие методы не могут быть использованы. Есть и недостатки: неприменимость для измерения низких температур, трудности получения высокой точности, влияние на результат коэффициента поглощения исследуемого тела (отклонение от показателей абсолютно чёрного тела).
Контактные методы требуют наличия теплового равновесия между объектом, температуру которого определяют и чувствительным элементом прибора, это необходимо для выравнивания их температур. В качестве датчика применяются термопары, терморезисторы, датчики на основе p-n перехода.
Термопары могут использоваться в очень широком диапазоне температур, от нескольких градусов выше абсолютного нуля до температуры порядка 3000ºC. Правда, термопара измеряет не саму температуру, а разность температур между двумя спаями. Так что для измерения температуры второго спая потребуется использовать ещё какой-то метод. Величина термоэдс небольшая, для термопар из металлических проводников обычно лежит в пределах от единиц до нескольких десятков мкВ/ºC. Это требует использования усилителя с чувствительным входом. Коэффициент термоэдс зависит не только от материала проводников, но и от наличия примесей, от способа обработки материалов, зависит от температуры и для некоторых материалов с изменением температуры может даже менять знак. Это создаёт определённые проблемы с точностью метода.
Терморезисторы используются металлические проволочные (платиновые, медные) и полупроводниковые.
Металлические имеют небольшой температурный коэффициент (порядка 0.4%/ºC) и малое сопротивление, но они имеют стабильные характеристики, высокую точность, зависимость сопротивления от температуры близка к линейной и хорошо изучена. Платиновые терморезисторы используют для измерения температур от -263 до 1064ºC, медные — от -50 до 180ºC.
Полупроводниковые терморезисторы имеют гораздо больший температурный коэффициент сопротивления (и высокую разрешающую способность), что упрощает схему подключения. Их зависимость сопротивления от температуры нелинейная, имеет вид: R=A*exp(B/T); A, B — коэффициенты, T — абсолютная температура. В рабочем диапазоне температур сопротивление изменяется очень сильно, на несколько порядков.
Однако, высокая чувствительность полупроводниковых терморезисторов к изменению температуры ещё не гарантирует высокой точности. Они подвержены "старению", с течением времени возможен существенный дрейф характеристик. По стабильности параметров значительно уступают металлическим. Диапазон рабочих температур меньше, чем у платиновых.
Кроме простейших датчиков типа терморезисторов и термопар существует датчики в виде микросхем, включающие кроме чувствительного элемента схему формирования выходного сигнала. Такие датчики могут быть аналоговыми (напряжение на их выходе с изменением температуры изменяется по известному закону, обычно имеет место линейная зависимость) или цифровыми (содержат аналоговый датчик температуры, аналого-цифровой преобразователь и схему управления). Некоторые микроконтроллеры, включающие в себя ADC, имеют встроенные датчики температуры, программный доступ к которым реализуется как один из режимов работы аналого-цифрового преобразователя.
Подключение аналоговых или цифровых датчиков к микроконтроллеру оказывается предельно простым — аналоговые подключаются к ADC микроконтроллера, а цифровые имеют какой-либо из популярных интерфейсов, часто это I 2 C. Такие датчики недороги, в то же время достаточно точны. Так что использование датчиков в интегральном исполнении — хороший вариант во многих случаях. Конечно, есть и свои недостатки: они требуют питания; имеют больше выводов (3 или более) и для подключения требуется больше проводников; разогреваются питающим током, что снижает точность; размеры не могут быть меньше определённой величины (а размеры влияют на тепловую инерционность); область рабочих температур ограничивается наличием полупроводниковой схемы в устройстве (обычно рассчитаны на диапазон -55..+125ºC , но для увеличения срока службы и повышения надёжности, использовать вблизи границ диапазона длительное время не рекомендуется).
Но в любом случае, имеется большое разнообразие средств для измерения температуры, есть из чего выбрать с учётом существующих требований.
Цифровые датчики
Если нет каких-то особых требований к датчику температуры по параметрам, условиям работы, цене, то самым очевидным решением является выбор цифрового датчика для совместной работы с микроконтроллером. Цифровые датчики могут подключаться через достаточно длинные проводные линии; в отличие от слабых аналоговых сигналов, получаемых с других типов датчиков, цифровой сигнал устойчив к воздействию помех. Используемые интерфейсы позволяют к одной линии подключить сразу несколько цифровых датчиков (может быть целая гирлянда датчиков). Цифровая форма передачи данных позволяет использовать цифровые датчики температуры совместно с совсем простыми микроконтроллерами, не имеющими ADC и даже не имеющими нужного цифрового интерфейса — используемые интерфейсы достаточно просты и легко реализуются программно.
Имеется достаточно большой выбор датчиков, предлагаемых разными производителями. В целом они имеют сходные характеристики, но могут сильно отличаться по цене. В таблице, в качестве примера, приведены основные параметры нескольких моделей.
У всех датчиков из таблицы один и тот же рабочий диапазон температур. Разрешение находится в пределах 9..12 бит (может настраиваться у некоторых устройств, у некоторых разрешение фиксированное), что соответствует разрешающей способности от 0.5ºC (9 бит) до 0.0625ºC (12 бит). Время, которое требуется аналого-цифровому преобразователю датчика для преобразования сигнала от термочувствительного элемента в цифровую форму, достаточно велико и может достигать примерно 1 секунды в режимах с высоким разрешением. Но зато низкоскоростной преобразователь потребляет малый ток. Кроме того, высокая скорость здесь и не требуется — тепловая инерционность устройства достаточна велика. Точность датчика зависит от интервала температур, в котором он работает. В полном рабочем диапазоне температур обеспечивается точность не хуже ±2..3ºC, а в "районе комнатных" достигает ±0.5ºС (может быть даже лучше).
| Устройство | Диапазон рабочих температур, ºC | Разрешение, бит (ºC) | Время преобразования, мс | Точность | Интерфейс | Напряжение питания, В | Потребляемый ток | Корпус |
|---|---|---|---|---|---|---|---|---|
| DS18B20 | -55..+125 | 9..12 (0.5..0.0625) |
9-бит режим: 94 (max) 12-бит режим: 750 (max) |
±0.5ºС (max, диапазон -10..+85ºС) ±2ºС (max, диапазон -55..+125ºС) |
1-Wire | 3.0..5.5 | 1.5 мА (max, рабочий режим) 1 мкА (max, спящий режим) |
TO-92 SO8 MSOP8 |
| LM75A | -55..+125 | 11 (0.125) |
100 | ±2ºС (max, диапазон -25..+100ºС) ±3ºС (max, диапазон -55..+125ºС) |
I 2 C (до 8 устройств на шине) | 2.8..5.5 | 100 мкА (типичное значение в нормальном режиме) 1 мА (максимальное значение при активной I 2 C шине) 3.5 мкА (спящий режим) |
SO8 TSSOP8 |
| STTS75 | -55..+125 | 9..12 (0.5..0.0625) |
9-бит режим: 45 (typ), 85 (max) 12-бит режим: 360 (typ), 680 (max) |
±0.5ºС (типичное значение) ±2ºС (max, диапазон -25..+100ºС) ±3ºС (max, диапазон -55..+125ºС) |
I 2 C/SMBus (до 8 устройств на шине) | 2.7..5.5 | 75 мкА (typ, рабочий режим при напряжении питания 3.3 В) | SO8 MSOP8 |
Датчик DS18B20: обзор
DS18B20 среди других цифровых датчиков температуры не является самым дешёвым или самым быстрым и экономичным. У него довольно хорошая точность, но нельзя сказать, что он рекордсмен и по этому параметру. Чем он наиболее интересен, так это используемый для подключения интерфейс 1-Wire, который позволяет подключать датчики с помощью трёхпроводной линии, если используется отдельный провод питания или даже через двухпроводную при питании от линии данных.
Ещё он интересен в том плане, что можно продемонстрировать пример программной реализации интерфейсов, которые не реализованы в микроконтроллере аппаратно. Если интерфейс I 2 C имеют аппаратную реализацию во многих микроконтроллерах, то о 1-Wire этого сказать нельзя!

Рис. %img:pck
NC — No Connection (не подключено).
VDD — питание (опционально); вывод должен быть подключён к общему проводу (GND), если используется питание от линии данных.
DQ — ввод/вывод данных, выход по схеме с открытым стоком. Также обеспечивает питание устройства в режиме с паразитным питанием (от линии данных).
GND — общий провод.
Назначение выводов датчика DS18B20 в корпусе TO-92:
1 — GND;
2 — DQ;
3 — VDD.
Для корпуса TO-92 принята нумерация выводов слева направо, если смотреть с плоской стороны корпуса (на которую обычно наносится буквенно-цифровая маркировка, смотрите рисунок выше).

Рис. %img:bd
Датчик имеет ROM объёмом 64 бита для хранения уникального кода устройства. Этот код используется для адресации устройств в том случае, когда к одной линии подключено несколько (более одного) датчиков. Младшие 8 бит содержат код семейства (0x28), затем следует 48-битный уникальный серийный номер устройства, а старшие 8 бит содержат CRC код для первых 56 бит ROM-кода.
Рабочая RAM память (scratchpad в руководстве) содержит 2 байта с результатами последнего измерения температуры, также через RAM обеспечивается доступ к трём однобайтовым EEPROM регистрам датчика: регистры верхнего (TH) и нижнего T(L) уровней сигнализации при выходе измеренной температуры за заданные пределы; регистр конфигурации, с помощью которого выбирают разрешение датчика (от 9 до 12 бит, чем меньше разрешение, тем больше скорость преобразования ADC).
Для подключения датчика используется однопроводная шина для передачи данных с одним сигналом, которая требует наличия подтягивающего резистора (к высокому уровню). Все подключаемые к шине устройства имеют выход с Z-состоянием или выход с открытым стоком.
Питание DS18B20
DS18B20 может получать питание как от внешнего источника, для чего требуется отдельная линия питания, так и питаться от линии данных — через подтягивающий резистор (режим с паразитным питанием, в этом случае нужно только два провода для подключения датчика). Во втором случае, при наличии в линии данных сигнала с высоким уровнем, заряжается внутренний конденсатор Cpp. В те моменты, когда в линии устанавливается низкий уровень, заряженный конденсатор Cpp обеспечивает питание устройства. При использовании режима паразитного питания требуется подключать вывод питания VDD к общему проводу — это позволяет датчику определить, какой вариант питания используется.

Рис. %img:pow
Некоторые операции, а именно, цикл преобразования ADC и операция копирования данных из рабочей памяти в EEPROM являются достаточно длительными (до 10 мс на запись EEPROM и до 750 мс на преобразование — в зависимости от выбранного разрешения) и требуют достаточно большого, до 1.5 мА, тока от источника питания. Внутренний конденсатор не имеет достаточно большой ёмкости для питания датчика во время этих операций, и большой потребляемый ток вызовет недопустимое по величине падение напряжения на подтягивающем резисторе.
Поэтому, на время выполнения любой из этих и только этих двух команд (0x44 — выполнить преобразование; 0x48 — скопировать данные из RAM в EEPROM), не позднее чем через 10 мкс после подачи команды требуется включить "сильное подтягивание" шины в случае использования паразитного питания.
"Сильное подтягивание" осуществляется подключением шины данных непосредственно к источнику питания через дополнительный MOSFET транзистор. Или переключением выхода микроконтроллера, управляющего шиной, из режима с открытым стоком в двухтактный режим.
Паразитное питание не рекомендуется использовать при температурах выше 100ºС, так как при этих температурах сильно увеличиваются токи утечки и подтягивающий резистор может не обеспечить достаточного тока для питания датчика.
Схема подключения с внешним источником требует наличия дополнительного провода питания, но она имеет свои преимущества. Она может использоваться во всём диапазоне температур. 1-Wire шина в этом случае выполняет только функцию передачи данных. Дополнительных манипуляций с сильным подтягиванием не требуется и во время длительного процесса аналого-цифрового преобразования может осуществляться передача данных по шине. В случае DS18B20 с внешним питанием, во время цикла преобразования ведущее устройство может делать запросы на чтение. Датчик на запросы будет отвечать битом 0 во время цикла преобразования и битом 1 после завершения цикла. Это может использоваться для определения момента завершения процесса измерения температуры.
Протокол шины 1-Wire
Процедура инициализации. Обмен информацией с устройством DS18B20 начинается с процедуры инициализации, которая выводит датчик из состояния сна и подготавливает его к операциям адресации и получения команды от ведущего устройства.

Рис. %img:rst
Процедура инициализации включает в себя две фазы: сначала ведущее устройство формирует импульс сброса — устанавливает на шине лог. 0 на время не менее 480 мкс (но не более 960 мкс при паразитном питании во избежание сброса по включению питания с потерей данных в RAM). После этого ведущее устройство освобождает шину на время не менее 480 мкс.
Когда ведущее устройство освободит шину, за счёт подтягивающего резистора на шине установится уровень лог. 1; ведомые устройства, обнаружив после импульса сброса переход сигнала на шине от 0 к 1, ждут в течение 15..60 мкс, после чего формируют импульс присутствия — устанавливают на шине лог. 0 на время от 60 до 240 мкс. Тем самым они сообщают ведущему устройству, что подключены к шине, работают и готовы к выполнению команд.
Импульс сброса на шине, в отличие от сброса при включении питания, не приводит к инициализации внутренней RAM датчика DS18B20. Содержимое памяти остаётся таким же, каким оно было до сброса.
Чтение/запись. Естественно, что обмен данными по однопроводной шине происходит по одному биту за один раз. Обмен осуществляется с помощью так называемых тайм-слотов. Инициатором, как записи, так и чтения, является ведущее устройство. В отличие от UART, где синхронизируется передача сразу целого байта, здесь синхронизируется передача каждого бита. Это позволяет сделать требования к временным параметрам импульсов очень мягкими.

Рис. %img:slts
Тайм-слоты записи. Длительность тайм-слотов записи должна составлять 60..120 мкс. Между соседними тайм-слотами должен быть интервал не менее 1 мкс (время восстановления), когда на шине за счёт подтягивающего резистора установлена лог. 1. Максимальная величина времени восстановления не ограничивается.
Для записи 0-бита, ведущее устройство должно установить на шине уровень лог. 0 в течение всего слота записи.
Для записи 1-бита, ведущее устройство должно установить на шине уровень лог. 0 на время не менее 1 мкс. Затем, оно должно освободить шину, чтобы к моменту времени 15 мкс от начала тайм-слота, подтягивающий резистор установил на шине уровень лог. 1.
Ведомые устройства, обнаружив начало тайм-слота по переходу шины из состояния лог. 1 в лог. 0, ждут в течение некоторого времени, затем считывают состояние шины. Уровень сигнала в шине в этот момент и будет битом, принятым ведомым устройством. Время ожидания может быть от 15 мкс (минимальное значение) до 60 мкс (максимальное значение), типичное значение 30 мкс. Возможен разброс значений у разных устройств, значение может зависеть от температуры, питающего напряжения и других факторов.
Параметры "окна" для считывания состояния шины ведомым устройством определяют такие временные параметры тайм слота как его минимальная длительность в 60 мкс и освобождение шины к моменту 15 мкс при передаче ведущим устройством 1-бита.
Тайм-слоты чтения. Датчик DS18B20 передаёт данные только в том случае, если это предполагается полученной перед этим командой. Инициатором чтения данных является ведущее устройство, оно генерирует тайм-слот для чтения каждого бита. Длительность тайм-слотов чтения должна быть не менее 60 мкс со временем восстановления между слотами не менее 1 мкс.
Ведущее устройство инициирует тайм-слот чтения переводом шины в состояние с уровнем лог. 0 на время не менее 1 мкс, после чего освобождает шину.
Для передачи 0, ведомое устройство, обнаружив начало тайм-слота, удерживает на шине уровень лог. 0 в течение всего тайм-слота. Для передачи 1, ведомое устройство оставляет шину свободной и она переходит в состояние с уровнем лог. 1 под действием подтягивающего резистора, после того как её освободит ведущее устройство.
Гарантируется, что передаваемые DS18B20 данные действительны в течение 15 мкс от начала тайм-слота. Так что, ведущее устройство за этот интервал времени должно успеть освободить шину, выждать время, необходимое для завершения перехода шины в состояние лог. 1 под действием подтягивающего резистора (на тот случай, если ведомое устройство передаёт 1) и успеть считать состояние шины. Считанное значение и будет полученным битом. Переходные процессы при переключении шины в состояние с уровнем лог. 1 связаны с зарядом через подтягивающий резистор ёмкости линии связи и паразитных ёмкостей всех подключённых к линии устройств, т.е. являются переходными процессами в RC-цепи. Для оценки времени переходных процессов учитываем, что ёмкость входа/выхода DS18B20 не превышает 25 пФ.

Рис. %img:r1
Команды DS18B20
Каждый раз, когда требуется получить доступ к датчику DS18B20, выполняется следующая последовательность шагов.
- Инициализация.
- ROM-команда (с последующим обменом данными, если команда это предусматривает).
- Функциональная команда (с последующим обменом данными).
Процесс инициализации устройств, подключённых к 1-Wire шине, был рассмотрен выше. После инициализации устройства ждут получения команд.
Все команды датчика DS18B20 имеют длину 8 бит (однобайтовые). Биты передаются, начиная с младшего.
ROM-команды используются для выбора устройства, которому будет адресована функциональная команда (все остальные, невыбранные устройства переходят в режим сна до следующей инициализации); а также для перечисления устройств, подключённых к шине. Если адресация не требуется, например, имеется только одно ведомое устройство на шине или следующая команда адресована одновременно всем устройствам, может использоваться команда "пропустить ROM-команду" с кодом 0xCC.
Функциональные команды используется для выполнения полезной работы: запустить цикл преобразования аналого-цифрового преобразователя, считать или записать данные в RAM, считать или записать данные в EEPROM, определить способ питания датчика (от отдельного источника или от шины данных).
После завершения выполнения функциональной команды и связанного с ней обмена данными, устройство переходит в состояние сна до следующей инициализации.
Это означает, что для одного измерения температуры потребуется, как минимум, два цикла взаимодействия с датчиком: 1) для того, чтобы дать команду на преобразование; 2) для того, чтобы прочитать результат из RAM. Каждый из циклов требует инициализации, ROM-команды и команды.
ROM-команды
| Название | Код | Назначение |
|---|---|---|
| SEARCH ROM | 0xF0 | Используется для определения ROM-кодов всех подключённых к шине устройств через процесс элиминации при циклическом выполнении команды. |
| READ ROM | 0x33 | Прочитать 64-битный ROM-код устройства. Используется только в случае наличия одного ведомого устройства на шине. |
| MATCH ROM | 0x55 | Сопоставление ROM. После команды ведущее устройство передаёт 64-битный ROM-код того устройства, которому предназначена следующая команда. Остальные устройства уходят в режим сна. |
| SKIP ROM | 0xCC | Следующая команда предназначена для всех ведомых устройств на шине. |
| ALARM SEARCH | 0xEC | Аналогична команде SEARCH ROM, за исключением того, что на эту команду отвечают только устройства с установленным флагом сигнализации о выходе измеренной температуры за заданные пределы. |
SEARCH ROM (0xF0)
Самая сложная из всех команд датчика. Используется в том случае, если к общей шине подключено несколько ведомых устройств. Если используется один датчик на шине, следует использовать более простые команды READ ROM (0x33) или SKIP ROM (0xCC). Подробно работа команды и её использование описывается в статье "Переходник RS-232 (COM-порт) — 1-Wire. SEARCH ROM". Там же приводится пример программы с её использованием.
Если говорить кратко, то команда SEARCH ROM используется для перечисления ROM-кодов всех подключённых к шине ведомых устройств. В ответ на команду каждое ведомое устройство сначала передаёт бит с индексом [0] своего ROM-кода, затем отрицание этого бита, после чего ведущее устройство должно подтвердить получение бита, отправив его значение ведомым устройствам. Ведомые устройства, получив этот эхо-бит от мастера, сравнивают его со своим битом [0]. Если значения битов совпадают, аналогичная процедура выполняется для бита с индексом [1], затем [2] и т.д. до [63] — для всех 64 битов. Если на каком-то бите устройство обнаруживает расхождение, оно переходит в состояние сна до следующей инициализации.
Пока у всех устройств на шине все младшие биты ROM-кода будут совпадать, мастер будет считывать сначала бит ai, затем его отрицание
ai (последовательность 0, 1 либо 1, 0) и отправлять устройствам назад значение ai. Как только дело дойдёт до некоторого разряда с индексом [j], в котором имеется расхождение, часть устройств отправит сначала 0, потом 1, другая часть отправит сначала 1, потом 0. Это вызовет коллизию, в результате которой тайм-слоты чтения 0 поглотят тайм-слоты чтения 1. Мастер получит два бита 0, 0, это будет говорить ему о том, что имеются, как устройства с ROM-кодами, где младшие биты равны 0. a2a1a0, так и такие, где младшие биты равны 1. a2a1a0. Мастер должен запомнить место "развилки" и продолжить исследование кодов, сделав какой-то выбор, например, отправив в ответе 0 (тем самым он отправит спать все те устройства, ROM-код которых в этом разряде содержит 1). Делая тот или иной выбор, добравшись до последнего бита, мы получим первый ROM-код устройства, все остальные будут элиминированы.
Затем, если остались ещё не исследованные "развилки", производим инициализацию и снова даём команду SEARCH ROM. Только в этот раз на последней "развилке" делаем другой выбор — если в прошлый раз выбирали значение бита равным 0, то в этот раз выбираем 1. После получения очередного ROM-кода, исключаем из рассмотрения все последние, полностью исследованные "развилки", пройденные как с выбором значения бита 0, так и 1. Если ещё остаются неисследованные варианты, то имеются устройства для перечисления, иначе перечисление завершено.
Повторяя процесс до завершения перебора, сможем определить ROM-код каждого устройства и подсчитать общее количество ведомых устройств, которое будет равно количеству итераций.
Такую процедуру выполняют только один раз после включения системы для исследования её конфигурации. Полученные ROM-коды затем используются для адресации устройств с помощью команды MATCH ROM.
READ ROM (0x33)
Эта команда используется только в том случае, если к шине подключено единственное ведомое устройство. Позволяет считать 64-битный ROM-код устройства, не прибегая к трудоёмкой процедуре перечисления командой SEARCH ROM. Если к шине подключено более одного ведомого устройства, при чтении возникнут коллизии из-за одновременного ответа нескольких устройств, что делает использование команды в такой конфигурации бессмысленным. Данные передаются, начиная с младшего бита.
MATCH ROM (0x55h)
Команда для сопоставления ROM-кода. После команды требуется передать 64-битный код устройства, которому будет адресована следующая функциональная команда. Все устройства, для которых сопоставление ROM-кода не будет успешным, перейдут в режим сна до следующей инициализации. Данные передаются, начиная с младшего бита.
SKIP ROM (0xCC)
Пропуск сопоставления ROM-кода; следующая функциональная команда будет адресована одновременно всем устройствам. Например, это может быть команда CONVERT T. Если функциональная команда предполагает возврат данных от ведомых устройств, использовать SKIP ROM имеет смысл только при наличии единственного ведомого устройства на шине.
ALARM SEARCH (0xEC)
Команда для перечисления устройств с установленным флагом сигнализации о выходе измеренной температуры за установленные регистрами TH и TL пределы. Принцип процесса перечисления полностью аналогичен используемому с командой SEARCH ROM, за исключением того, что в перечислении участвуют только устройства с установленным флагом сигнализации. Состояние флага обновляется после каждого измерения температуры, выполняемого командой CONVERT T. Полученное в результате измерения значение T сравнивается со значениями в регистрах TH и TL. Если T>TH или T<TL, флаг устанавливается. Если выхода за пределы диапазона нет, флаг сбрасывается. TH и TL — знаковые целые однобайтные значения; сравнение производится с учётом только целой части измеренного значения температуры, дробная часть T не учитывается.
Функциональные команды
Большинство функциональных команд использует внутреннюю RAM датчика. Объём памяти составляет 9 байт. Вся память доступна ведущему устройству для чтения, 3 байта доступны также и для записи.
| Адрес | Назначение байта | Значение после включения | |||
|---|---|---|---|---|---|
| 0 | Температура, младший байт | 0x50 | 85ºC | ||
| 1 | Температура, старший байт | 0x05 | EEPROM | ||
| 2 | TH или байт пользователя 1 | * | <===> | TH или байт пользователя 1 | |
| 3 | TL или байт пользователя 2 | * | <===> | TL или байт пользователя 2 | |
| 4 | Регистр конфигурации | * | <===> | Регистр конфигурации | |
| 5 | Зарезервировано | 0xFF | |||
| 6 | Зарезервировано | — | |||
| 7 | Зарезервировано | 0x10 | |||
| 8 | CRC | * | |||
* Значение после включения зависит от содержимого EEPROM.
Байты 0 и 1 содержат результат последнего измерения температуры, которое выполняется функциональной командой CONVERT T.
| Бит 7 | Бит 6 | Бит 5 | Бит 4 | Бит 3 | Бит 2 | Бит 1 | Бит 0 | |
| Младший байт (0) | 2 3 | 2 2 | 2 1 | 2 0 | 2 -1 | 2 -2 | 2 -3 | 2 -4 |
| Бит 15 | Бит 14 | Бит 13 | Бит 12 | Бит 11 | Бит 10 | Бит 9 | Бит 8 | |
| Старший байт (1) | S | S | S | S | S | 2 6 | 2 5 | 2 4 |
S — знаковые биты.
В результате измерения определяется температура в ºC. Хранится в RAM температура в виде двухбайтового числа со знаком с фиксированной точкой с четырьмя двоичными цифрами после точки (их весовые коэффициенты 2 -1 , 2 -2 , 2 -3 , 2 -4 ). Если используется разрешение 12 бит, все биты числа действительные. При меньшем разрешении соответствующее количество младших битов будет иметь неопределённое значение (эти биты в считанном числе следует обнулить).
| Температура, ºC | Двоичный формат | HEX |
|---|---|---|
| +125 | 0000 0111 1101 0000 | 0x07D0 |
| +85* | 0000 0101 0101 0000 | 0x0550 |
| +25.0625 | 0000 0001 1001 0001 | 0x0191 |
| +10.125 | 0000 0000 1010 0010 | 0x00A2 |
| +0.5 | 0000 0000 0000 1000 | 0x0008 |
| 0 | 0000 0000 0000 0000 | 0x0000 |
| -0.5 | 1111 1111 1111 1000 | 0xFFF8 |
| -10.125 | 1111 1111 0101 1110 | 0xFF5E |
| -25.0625 | 1111 1110 0110 1111 | 0xFE6F |
| -55 | 1111 1100 1001 0000 | 0xFC90 |
* После включения питания RAM содержит в байтах 0, 1 значения, соответствующие температуре +85ºC.
Не слишком углубляясь в такой всеми хорошо изученный вопрос, как форматы представления числовых данных, просто скажем, что если рассматривать полученное от датчика значение как целое со знаком размером 2 байта (тип /*signed*/ short int или int16_t ), то температура может быть выражена так:
Байты 2 и 3 задают верхнюю и нижнюю границы температуры. Являются целыми знаковыми однобайтовыми числами. Если при измерении температуры происходит выход результата за заданные границы, то устанавливается внутренний флаг сигнализации. Если результат находится в заданных пределах, флаг сбрасывается. После включения питания эти байты инициализируются соответствующими значениями из EEPROM. Если функции сигнализации не используются, эти два байта могут использоваться как память общего назначения, на усмотрение пользователя.
Байт 4 — регистр конфигурации, задаёт разрешение датчика DS18B20. После включения инициализируется соответствующим значением из EEPROM. Изготовителем задаётся значение по умолчанию, соответствующее максимальному разрешению 12 бит.
| Номер бита | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Значение | 0 | R1 | R0 | 1 | 1 | 1 | 1 | 1 |
Если рассматривать R1, R0 как битовое поле R, которое может принимать значения от 0 до 3, то разрешение B в битах связано с R соотношением:
B=9+R
Время преобразования увеличивается вдвое при увеличении разрешения на 1 бит и достигает 750 мс при разрешении 12 бит:
tconvert=750 мс/(2**(3-R))
Байты 5,6 и 7 зарезервированы для внутреннего использования устройством.
Байт 8 содержит CRC код для области памяти с 0 по 7 байты.
| Название | Код | Назначение |
|---|---|---|
| CONVERT T | 0x44 | Выполнить преобразование температуры и сохранить результат во внутренней RAM. |
| WRITE SCRATCHPAD | 0x4E | Записать три байта в RAM: TH, TL и байт регистра конфигурации. |
| READ SCRATCHPAD | 0xBE | Прочитать все 9 байт из RAM (в том числе, результат последнего измерения температуры); ведущее устройство может прочитать только необходимую ему часть данных с последующим сбросом. |
| COPY SCRATCHPAD | 0x48 | Скопировать данные из RAM для TH, TL и регистра конфигурации в EEPROM. |
| RECALL E 2 | 0xB8 | Поместить в ячейки RAM для TH, TL и регистра конфигурации значения из EEPROM. Эта операция выполняется автоматически при включении питания. |
| READ POWER SUPPLY | 0xB4 | Определить тип питания устройства. В ответ на команду устройство возвращает бит 0 при паразитном питании и бит 1 при внешнем питании. |
CONVERT T (0x44h)
Команда на выполнение одного цикла преобразования аналого-цифрового преобразователя (ADC), на вход которого поступает сигнал со встроенного аналогового датчика температуры. Полученный результат — измеренная температура помещается во внутреннюю RAM память датчика в виде двухбайтового числа. После завершения выполнения команды, датчик переходит в режим с пониженным энергопотреблением. Для считывания результата измерения используется функциональная команда READ SCRATCHPAD.
Время преобразования зависит от выбранной разрешающей способности. При выборе 12-битного режима оно составляет не более 750 мс. Уменьшение разрядности на 1 бит уменьшает максимальное время преобразования в 2 раза (11 бит — 375 мс; 10 бит — 187.5 мс; 9 бит — 93.75 мс).
Если используется вариант питания DS18B20 от внешнего источника, то во время цикла преобразования ведущее устройство может генерировать тайм-слоты чтения, на которые датчик будет отвечать возвратом бита 0. После завершения преобразования и ухода в режим пониженного потребления, датчик, естественно, перестаёт реагировать на тайм-слоты чтения, что воспринимается ведущим устройством как возврат 1. Эта техника может использоваться для определения момента завершения преобразования.
Если используется паразитное питание, то не позже чем через 10 мкс после подачи команды, ведущее устройство должно включить сильное подтягивание шины данных на время не меньше, чем время преобразования. Время преобразования зависит от выбранного разрешения и его необходимо отмерять по таймеру.
WRITE SCRATCHPAD (0x4Eh)
Команда даёт возможность записать ведущему устройству 3 байта в RAM память DS18B20, байты последовательно записываются по адресам 2, 3 и 4 внутренней RAM. Эти байты задают соответственно значения TH, TL и содержимое регистра конфигурации. Передача, как и обычно, осуществляется, начиная с младшего бита.
Требуется запись всех трёх байтов перед тем, как будет выполнен сброс, иначе данные могут быть повреждены.
READ SCRATCHPAD (0xBE)
Команда позволяет прочитать ведущему устройству содержимое внутренней памяти датчика. Данные передаются, начиная с байта 0 до тех пор, пока не будут получены все 9 байт памяти. Каждый байт передаётся, начиная с младшего бита. Ведущее устройство может считать только интересующую его часть данных и прервать чтение с помощью сброса.
COPY SCRATCHPAD (0x48)
Команда копирует содержимое байтов 2, 3 и 4 (регистры TH, TL и регистр конфигурации) из RAM в соответствующие ячейки энергонезависимой памяти EEPROM. В режиме паразитного питания, не позже чем через 10 мкс после подачи команды, ведущее устройство должно включить сильное подтягивание шины данных на время не меньше, чем 10 мс (максимальное время, необходимое для выполнения операции). В режиме питания от внешнего источника, ведущее устройство может генерировать тайм-слоты чтения. В процессе выполнения команды датчик будет возвращать бит 0, после завершения будет возвращаться бит 1.
RECALL E 2 (0xB8)
Команда восстанавливает значения байтов 2, 3 и 4 в RAM из энергонезависимой памяти EEPROM (регистры TH, TL и регистр конфигурации). Ведущее устройство может генерировать тайм-слоты чтения после подачи этой команды. Пока датчик будет находиться в процессе выполнения, он будет возвращать бит 0, после завершения будет возвращаться бит 1.
READ POWER SUPPLY (0xB4h)
После подачи этой команды ведущее устройство генерирует один тайм-слот чтения. В случае использования паразитного питания датчик DS18B20 отвечает битом 0, а при питании от внешнего источника, возвращает бит 1. Информация об используемом варианте питания необходима ведущему устройству для правильной организации взаимодействия с датчиком.
Смотрите также: Использование UART для реализации 1-Wire. (Простой способ подключения устройств с интерфейсом 1-Wire к микроконтроллеру путём использования его UART).
Что такое цифровые температурные датчики
Основной принцип работы температурных датчиков в системах автоматического управления – преобразование температуры в электрическое значение. Эффективность использования электрических величин обеспечена: удобством передачи на большие расстояния с высокой скоростью, возможностью их обратной трансформации, преобразования в цифровой код, чувствительностью измерений. Различают несколько типов устройств.
Принцип действия устройства основан на термоэлектрическом эффекте: если в замкнутом контуре из двух полупроводников или проводников места спаев (контактов) имеют разную температуру, то в нем возникает электрический ток. Спай, расположенный в среде, в которой происходит измерение температуры, называется «горячим», противоположный контакт – «холодным». Чем больше температура измеряемой среды отличается от температуры воздуха, тем больший электрический ток возникает. Эти измерительные устройства могут иметь изоляционный слой или изготавливаться без него. Во втором случае термопары могут использоваться только в схемах, не контактирующих с «землей».

Схематичное изображение термодатчика
Виды термопар
- Хромель-алюминиевые. В основном применяются в промышленности. Характерные особенности: широкий температурный интервал измерений -200…+13000°C, доступная стоимость. Не допускаются к применению в цехах с высоким содержанием серы.
- Хромель-копелевые. Применение сходно с предыдущим типом, особенность – сохранение работоспособности только в неагрессивных жидких и газообразных средах. Часто используются для измерения температуры в мартеновских печах.
- Железо-константовые. Эффективны в разреженной атмосфере.
- Платинородий-платиновые. Наиболее дорогие. Для них характерны стабильные и точные показания. Используются для измерения высоких температур.
- Вольфрам-рениевые. Обычно в их конструкции присутствуют защитные кожухи. Основная область применения – измерение сред со сверхвысокими температурами.
Терморезистивные датчики
Принцип действия резистивных датчиков температуры (RTD) основан на зависимости сопротивления проводника или полупроводника от температуры. Для изготовления проводников применяют материалы с высоким температурным коэффициентом сопротивления и линейным соответствием сопротивления и температуры. Указанные характеристики относятся к пластине, в несколько меньшей степени – к меди.
Преимущества проводниковых термометров сопротивления:
- простая и надежная конструкция, которая обуславливает использование этих устройств в машиностроении и электронике;
- высокая точность и чувствительность;
- простые устройства считывания.
Пример – модель 700-101ВАА-В00, в конструкции которой присутствуют платиновая пластинка и никелевые контакты. Платиновые устройства могут работать в пределах -260…+1100°C.
Полупроводниковые датчики температуры демонстрируют высокую стабильность характеристик во времени. Полупроводниковые терморезисторы имеют большой температурный коэффициент сопротивления (ТКС). Датчики температуры с отрицательным ТКС называются термисторами (с ростом температуры сопротивление снижается), с положительным – позисторами (с возрастанием температуры сопротивление увеличивается). Обозначение термисторов – NTC, позисторов – PTC.
Аналоговые и цифровые термометры
Аналоговые
Эти устройства обычно недороги и не требуют сложного ухода. Главная их проблема – шкала. Либо она показывает температуру с высокой точностью, но измерительный интервал при этом очень мал, либо охватывает широкий температурный диапазон, но точность показаний – приблизительна.
Цифровые
Такие устройства дороже, по сравнению с аналоговыми, но их точность гораздо выше. Позволяют производить измерения в широком интервале, применяются в быту и технике.
Конструктивные составляющие цифрового термометра:
- чувствительный элемент (обычно это терморезистор);
- аналогово-цифровой преобразователь, который трансформирует электрический сигнал от терморезистора в цифровой;
- дисплей;
- элемент питания;
- вводы-выводы сигналов, необходимые для взаимодействия с другими устройствами.
Цифровой датчик температуры DS18B20
DS18B20 — это цифровой датчик, который применяется для измерения температуры (диапазон -55 °C до 125 °C), а также обладает программируемой уникальной точностью (до 12 бит).

Данное устройство способно контролировать и регулировать степень нагретости какого-либо материала, вещества и т.п. в технологическом процессе, обеспечивая тем самым его безопасность.
Датчик DS18B20: схема построения

Прибор DS18B20 имеет сразу 3 ключевых корпуса:
- Сторона ТО-92;
- Стенка SO-150mil;
- Корпус uSOP.

Если говорить о внутренней структуре, то следует рассмотреть небольшую микросхему, которая представлена на рисунке:

Данная микросхема свидетельствует о наличии сразу нескольких ключевых модульных блоков в строении DS18B20, отвечающих за механизм правильного действия устройства.
Итак, начать стоит с блока «POWER SUPPLY SENSE» он обеспечивает полное питание для функционирования всей системы. Помощником «POWER SUPPLY SENSE» является юнфер «PARASIT POWER CIRCUIT», способный ,в случае необходимости, взять на себя функцию распорядителя питания.
К еще одному ключевому элементу в структуре термодатчика следует отнести «64-BITROM AND 1-WIREPORT». Это модуль структуры, отвечающий за хранение уникального кода устройства и передачу этого кода во внутреннюю память DS18B20 «SCRATCHPAD». «SCRATCHPAD», в свою очередь, взаимодействуя с регистрами «MEMORY CONTROL LOGIC» и «1-Wire», подает сигнал связи следующим принципиально-важным блокам датчика:
- «TEMPERATURE SENSOR»(система, предназначенная для считывания преобразованных показателей температур);
- «CONFIGURATON REGISTER»(структура, отвечающая за настройку уникальной программируемой точности, которая варьируется от 9 бит до 12 или, если рассматривать градусы Цельсия, от 0.5 °C до 0.0625 °C.);
- «8-BIT CRC GENERATOR»(система, предназначенная сугубо для защитной функции);
- «ALARM HIGH TRIGGER» (блок, ограничивающий нижние пределы температуры DS18B20);
- «ALARM LOW TRIGGER» (система, ограничивающая верхние пределы температуры DS18B20).
Подключение датчика DS18B20

Подключение датчика DS18B20, как правило, происходит двумя-тремя простыми способами. Мы рассмотрим эти способы на примере подключений DS18B20 к плате Arduino и esp8266.
Подключение датчика DS18B20 к Arduino
Начнем с прямого подключения единичного датчика к Arduino:

Для начала необходимо прикрепить устройство непосредственно к плате Arduino: поэтому подаем «5V» к выводу «Vdd» устройства. Таким же способом связываем друг с другом выводной «GND». Затем срединный датчик DS18B20 фиксируем на каком-либо выходном регистре (по желанию). Допустим, это будет регистр «D2».
Подключение вывода данных «DQ» необходимо производить только после того, как вы записали номерной код Arduino на скетч. Кроме того, очень важным аспектом, о котором необходимо сказать, является присутствие номинального резистора «4,7k», который располагается между линиями устройства и блоками питания. Отметим, что данный резистор предназначен для обеспечения полного функционирования (то есть без сбоев) линий термодатчика.
Теперь перейдем к рассмотрению подключения несколькими датчиками DS18B20 к плате Arduino:

Мы возьмем в пример ситуацию с 5-ю датчиками DS18B20. Итак, как мы видим, все 5 датчиков в шине подсоединены параллельным образом, при этом, они стягиваются номинальным резистором «4,7k». Таким образом, действие платы Arduino будет определяться уникальным и точным кодом каждого из этих 5-ти датчиков.
Пришла очередь третьего способа подключения DS18B20 к плате Arduino при помощи паразитного питания:

В данном случае очевидно, что датчик/датчики принимает/принимают импульс линейных данных датчика, которые расположены между блоками «Vdd» и «GNG». А существенную роль и здесь играет все тот же номинальный резистор «4,7k», который не только стягивает линейные данные датчика, но и обеспечивает функционирование всей “буферной” системы и конструкции.
Подключение датчика DS18B20 к esp8266
Теперь перейдем к обсуждению подключения датчика DS18B20 к esp8266. Начнем, пожалуй, с прямого подключения:

Резистор 1 (R1) определяет сопротивление не более 2,2-х КОм. При наличии такого резистора, срединный вывод “DATA” прикрепляется к кабельному блоку, либо «GND», либо «VCC», а также соединяется с центральной трубкой, что и обеспечивает качественное: прочное, герметичное подключение.
Наконец, поговорим о последнем способе подключения датчика DS18B20 к esp8266:
Картинка выше почти идентичная, разница лишь в резисторе
Данный способ осуществляется с помощью номинального резистора «4,7k», который подтягивает всю систему к питанию, и с помощью трех контактов вывода датчика DS18B20, обеспечивающих, в свою очередь, подключение линий «DQ» к срединному «DATA».
Характеристики датчика DS18B20

Температурный датчик DS18B20 имеет множество особенностей не только в своей конструкции, но и в своей эксплуатации. Вот главные из них:
- Измеритель DS18B20 питается напряжением, величина которого варьируется от 3-х Вольт до 5,5 Вольт;
- Термодатчик DS18B20 способен измерять значения температур в диапазоне от -55 °C до 125 °C;
- Пропускная способность датчика DS18B20 доходит до отметки 12 бит;
- Величина погрешности прибора DS18B20 составляет (+,- ) 0,5 ° C;
- Медленное перемещение измерителя DS18B20 относительно любого устройства не превышает единицы.
Взаимосвязь между разрешением датчика DS18B20 и температурой
На самом деле, рассмотреть взаимосвязь между разрешением прибора DS18B20 и температурой можно с помощью следующей картинки:

Однако, предлагаю сделать это более детально.
Начнем с девяти-битного разрешения. При этой величине температура может принимать следующие значения:
Таким образом, при разрешении 9 бит можно сделать 10.5 измерений/сек для вышеназванных температурных величин.
При расширении 10 бит температура принимать такие величины:
Можно сделать вывод, что при разрешении 10 бит можно сделать 5.3 измерений/сек для вышеназванных температурных величин.
При разрешении 11 бит температура имеет возможность принять следующий вид:
Таким образом, при разрешении 11 бит можно сделать 2.6 измерений/сек для вышеназванных температурных величин.
При разрешении 12 бит температура может принимать следующие значения:
- 1) 0,00 °C;
- 2) 0,0625 °C;
- 3) 0,125 °C;
- 4) 0,1875 °C;
- 5) 0,25 °C;
- 6) 0,3125 °C;
- 7) 0,375 °C;
- 8) 0,4375 °C;
- 9) 0,50 °C;
- 10) 0,5625 °C;
- 11) 0,625 °C;
- 12) 0,6875 °C;
- 13) 0,75 °C;
- 14) 0,8125 °C;
- 15) 0,875 °C;
- 0,9375 °C.
Это говорит о том, что при расширении 12 бит можно сделать 1.3 измерений/сек для вышеназванных температурных величин.
Основные функциональные способности датчика DS18B20

Термодатчик DS18B20 имеет в своем функционале сразу несколько важнейших команд:
- Навык преобразования температур. (Данная способность может поместить температуру в двух-байтный блок оперативной памяти, после чего датчик переходит в состояние низкого потребления. В этом состоянии DS18B20 считывает код данных и определяет режим состояния процесса);
- Команда записи памяти. (Она дает возможность сохранить три байта данных в оперативной памяти DS18B20. При это, следует уточнить, что ведущий прибор перебрасывает информацию с наименьшего бита);
- Способность чтения памяти. (Применяется для прочтения оперативной памяти памяти прибора. Сброс данных осуществляется с самых наименьших битов или байтов, при этом, в случае необходимости, эта команда способна прекратить сброс данных);
- Команда копирования памяти. (Она помогает скопировать все данные внутренней памяти устройства в блок EEPROM, что приводит к осуществлению в дальнейшем питательной способности системы);
- Способность перезагрузки EEPROM. (Дает возможность регистрам передохнуть, перезагружая все значения на блоках. Кроме того, только после перезагрузки DS18B20 происходит процесс прочтения оперативной памяти памяти прибора и сообщается о ее состоянии).
Где можно купить датчик DS18B20?
Термодатчик DS18B20 является достаточно востребованным устройством в наше время. Если вы думаете, что найти его будет сложно, а цена вас испугает, то вы сильно ошибаетесь. Я советую вам приобрести данный прибор на Aliexpress. Там вы найдете DS18B20 и его аналоги по смешной цене, получите быструю, а самое главное качественную доставку.
Виды датчиков температуры и принцип их работы
Датчики измерения температуры используются для контроля веществ в твердом, жидком или газообразном состоянии. В зависимости от целей применения, схема строения прибора будет видоизменяться. Но чтобы выбрать подходящий инструмент необходимо обращать внимание на одни и те же нюансы.
Виды, конструкция и принципы действия
Термопара
Датчик включает в себя две проволоки из разных металлов, спаянных между собой. Для отношения концов друг с другом в зоне постоянной температуры, в конструкцию добавляют удлиняющие провода из двух металлов. Когда на концы проводов действуют разные температуры (например, при помещении датчика в горячую воду), то в цепи появляется электрический ток. Сила возникшего тока (от 40 до 60 мкВ) зависит от используемого материала термопары, который влияет на термоэлектрическую силу прибора.
В практике можно встретить железоникелевые, хромоалюминиевые, медно-константановые и так далее. В дешевых моделях используются неблагородные металлы (аналогичных термоэлектродам) для удлиняющих проводов, а в дорогих – благородные металлы, которые способы развивать аналогичную термо-ЭДС, что и электроды (необходимо для уменьшения стоимости высококлассным приборов).
Термопара относится к датчикам с высокой точностью. Проблемой устройства является сложность получения замеренного значения. Термопара действует по принципу относительности отличия температур между разъемами. Горячий спай помещается в замеряемое вещество, а холодный остается находиться в окружающей среде.
При необходимости использования термопары работа проводится следующим образом. Температуру холодного спая необходимо компенсировать, для чего вторую термопару помещают в среду с известным показателем.
Если используется программный способ компенсации, второй датчик помещается в изометрическую камеру, где находятся холодные спаи, что позволяет контролировать температуру с высокой точностью. Самое сложное в работе с одноконтактной термопарой – снять показатели.
В ГОСТе прописаны коэффициенты, необходимые для перевода ЭДС в показатель температуры и наоборот. Подсчет также может вестись при помощи контроллера.
Но получаемый от термопары показатель ЭДС измеряется в единицах и сотнях микровольт. Поэтому использование аналоговых преобразователей не будет успешным. Для сборки специальной конструкции, цель которой – получение точных результатов, потребуются малошумящие аналоговые преобразователи.
На практике для устранения имеющихся погрешностей используют автоматическое введение поправки на температуру свободных концов. Под этим подразумевают введение моста с плечами в виде медного и манганинового терморезисторов.

Терморезисторы
Терморезисторы делятся по типу зависимости сопротивления от температуры. Они могут быть отрицательными (NTC) или положительными (PTC).
Измерения легче проводить при помощи терморезисторов. Принцип работы построен на сопротивлении материалов внешней температуре. Высокая точность присуща для приборов, изготовленных из платины. На работу терморезисторов влияют две характеристики.
Первая – базовое сопротивление, второе – температура, при которой оно определяется. ГОСТ устанавливает, что определение должно проходить при 0 градусов по Цельсию. В нормативном документе указывается, что рекомендуется использовать несколько номиналов сопротивлений, определяемых в Омах, а также температуры, что позволит сопоставить результаты при 0°С и другом показателе. Для этого используется следующая формула:

Температурный коэффициент будет изменяться в зависимости от используемого материала для термометров, что отражено в ГОСТе. В нормативном документе также указываются коэффициенты полинома, необходимые для расчета в зависимости от текущего сопротивления.
Термометры сопротивления обладают одним минусом – низкий температурный коэффициент сопротивления. Несмотря на этот нюанс, использование терморезисторов проще по сравнению с принципом работы термопары.
Способы измерения будут зависеть от комплектации модели. Базовые терморезисторы необходимо включать в цепь с источником тока и контролируемого дифференциального напряжения. Чтобы корректно определить доли единицы процента получаемых от температурного коэффициента проводников, лучше использовать аналого-цифровые преобразователи.
Если в датчик уже встроен аналоговый выход, соответствующий питаемому напряжению, то для оцифровывания можно напрямую подключать терморезистор к преобразователю

Комбинированные
Комбинированные датчики включают в себя несколько полупроводников, объединенных в единое устройство. Датчики могут иметь встроенный цифровой интерфейс, а не только интегральные схемы с выходом. Часто используется комбинированный датчик благодаря возможности подключения параллельных устройств. Погрешность при расчете температуры равна 2 °С, а при определении влажности – 5%. Проблема в таком датчике одна – оптимизация интерфейса.

Цифровые
В цифровых датчиках устанавливается трехвыводная микросхема. Показатели считываются с нескольких параллельно работающих датчиков, что позволяет получить показания с точностью 0,5 °С. Работа электронного термометра возможна от -55 до +125 °С. Единственным минусом устройства является скорость получения результатов – 750 секунд для получения максимально точного показателя. Определение точности прибора осуществляется при помощи соответствующих регулировок, которые необходимы для уменьшения количества затрачиваемого времени на получение результата. Опрос датчика не имеет смысла, так как корпус является инерционным.

Бесконтактные
Работа датчика основана на нагревании тонкой пленки, что осуществляется благодаря воздействию инфракрасных лучей. Встретить подобную технологию можно в пирометрических устройствах. В отличии от контактного, получить данные можно на расстоянии.
Кварцевые преобразователи температуры
Если диапазон изменяемых температур превышает стандартные значения и достигает отметки от -80 до +250°С, то используются кварцевые преобразователи. Такие устройства работают на принципе взаимодействия кварца и температуры, отражаемого частотной зависимостью. Преобразователь имеет несколько функций, которые меняются в зависимости от расположения среза по осям кристалла.
Кварцевые датчики отличаются высокой точностью, стабильностью и разрешением. Являются более перспективными способами измерения температуры. Часто можно встретить в цифровых термометрах.

Шумовые
Шумовой датчик служит для получения показателей по принципу разности потенциалов на резисторе, которые меняются в зависимости от температуры. На практике подобный способ измерения имеет условие – одна из температур должна быть известна, а вторая — измеряемая. Два полученных шума от различных температур сравнивают и находят искомое значение.
Работа датчика возможна от -270 до +1100 °С. Из преимуществ отмечается возможность измерения температур в термодинамике. Но минусом является сложность реализации такого способа измерения напряжения шумом из-за наличия различий с шумом усилителя.

Ядерного квадрупольного резонанса
Принцип работы биметаллического термометра основывается на действии градиента поля тока решетки кристалла и момента ядра, вызванного отклонением заряда от симметрии сферы. При помощи такого процесса создается процессия ядер. Частота напрямую зависит от градиента поля решетки. В зависимости от вещества, величина показателя может подниматься до нескольких тысяч МГц. Чем выше температура, тем меньше частота ЯКР.
ЯКР образует ампулу с веществом, которая помещается в обмотку индуктивности для дальнейшего соединения с контуром генератора. Если частота генератора и частота ЯКР совпадают, то исходящая от генератора энергия поглощается. При измерении вещества с температурой -263°С погрешность составляет 0,02 градуса, а при температуре 27°С, погрешность равна 0,002 градуса. Из преимуществ датчика выделяют неизменную стабильность. Минусом является значительная нелинейность преобразующей функции.

Объемные преобразователи
Принцип работы иного рода биметаллического термометра построен на свойстве веществ расширяться и сжиматься в зависимости от действующей температуры. Диапазон действия преобразователя определяется в зависимости от стабильности материала. Датчик может использоваться при температурах от -60 до +400°С. Погрешность составит от 1 до 5%.
При определении температуры датчиками на жидкости погрешность падает до 1-3% в зависимости от температурной среды. Температура закипания и замерзания жидкости также будет влиять на интервал работы датчика.
Если датчик измеряет преобразователи на газе, то граница измерения зависит от точки перехода газа в жидкое состояние и стойкостью баллона в воздействующей температуре.

Канальный
Все цифровые термометры относятся к канальным, так как для передачи сигналов они используют каналы. В зависимости от количества таких “магистралей” определяется канальность устройства. Так термометр Testo 925 относится к 1-канальным, в основе работы лежит термопара, как и у термометра Testo 735-2 – 3-канального. А Testo 810 – 2-канальный прибор с инфракрасным термометром.

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

Время работы до калибровки или замены
Установить условия работы датчика. Окружающая обстановка может быть стандартной, с высокой влажность, окислительной, пожароопасной и так далее.
Величина сигнала выхода
Сигнал выхода должен соответствовать возможностям электроизмерительных приборов для дальнейшей обработки получаемых данных. Зависит это от полученных показателей температуры, преобразуемых в энергию.
Другие технические данные
Также при определении подходящего типа датчика температуры необходимо обращать внимание на второстепенные факторы. Эти нюансы позволяют выбрать самый подходящий аппарат для получения необходимых данных.
Погрешность
Для получения самых точных результатов потребуется большое количество времени. Лучший показатель выдает биметаллический термометр, построенный по принципу ЯКР и цифровые. Первые – быстрее, а вторые – точнее.
Разрешение
Этот показатель позволяет получить от датчика более точные приращениям дискретности измерения температуры. Ярким представителем является DS18B20, который может работать в разрешении 9,10,11 и 12 бит. Самый малый режим даст 0.5°C, а максимальный — 0.0625°C.
Напряжение
На величину выходного напряжения будет влиять сопротивление резистора. В зависимости от этого напряжение может быть линейным (изменяться в зависимости от температуры) и нелинейным. Для каждого датчика существуют свои эталонные величины на выводах термометра, который зависит от температуры измеряемого объекта.

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

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