С-Петербург, улица Тосина 3
+7 (812) 917-84-85
+7 (921) 316-27-00

Цифровой температурный датчик


Инструкция по применению датчика температуры DS18B20

DS18B20 — современный программируемый датчик цифрового типа для контроля изменений температуры с функцией аварийного сигнала. Данные устройства работают согласно протоколу 1-Wire (однопроводная линия связи с микроконтроллером) и снабжены энергонезависимой памятью для сохранения и контроля запрограммированных параметров интерфейса. Корректное измерение температуры DS18B20 происходит в диапазоне от -55° до +125°С, но наименьшая погрешность, составляющая 0,5°С, достигается в диапазоне от -10° до +85°С.

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

Цифровой датчик температуры DS18B20 благодаря своему специфическому 64-разрядному коду разрешает подключать в единую линию связи несколько микросхем данной серии для контроля микроклимата как небольшого офисного здания в Москве, так и огромного производственного цеха.

Общая характеристика, названия и маркировка выводов моделей DS18B20

В зависимости от конструкции микросхема-датчик температуры Dallas DS18B20 для контроля заданных параметров доступна в 3 формах:

  • ТО-92;
  • SO (150 mm);
  • µSOP.

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

Основные особенности и характеристики датчика температуры DS18B20:

  • низкий уровень U питания от линии (3–5,5 В);
  • высокоэффективная работа с помощью протокола 1-Wire;
  • уникальный идентификационный 64-битный код, записываемый в независимую ROM-память устройства для работы большего количества устройств с помощью одной линии связи, что позволяет получать точное положение датчика, температурный режим которого находится выше или ниже запрограммированного уровня;
  • широкий диапазон температурных измерений: -55°–+125°С с точностью 0,5°С в диапазоне -10°–+85°С;
  • встроенный АЦП позволяет запрограммировать DS18B20 в диапазоне 9–12 разрядов, что позволяет снизить время измерений до 750 мс;
  • удобное подключение микросхемы DS18B20 Raspberry Pi;
  • для программирования термодатчика достаточно его подключить к любому устройству, работающему под управлением архитектур Arduino, ARM, PIC или AVR.

Как работают современные датчики температуры

Блок-схема датчика температуры типа DS18B20 выглядит следующим образом:

Исходя из вышеприведенной структуры, рассматриваемый датчик состоит из:

  • регистра конфигурации, программируемого пользователем (9–12 разрядов);
  • датчика температуры;
  • верхнего Th и нижнего Tl порога срабатывания сигнала тревоги;
  • 64-битной памяти типа ROM и блока обработки протокола 1-Wire;
  • внутреннего источника питания, способного работать как от внешнего источника, так и от «паразитных» импульсов.

Принцип работы

Основная функция микросхемы DS18B20 — трансформация показаний встроенного датчика температуры в цифровой код. Это преобразование зависит от разрешения преобразования, установленного пользователем, которое варьируется от 9 до 12 бит (0,5°–0,625°С). Если настройки не производились, то установка регистра конфигурации соответствует 12 битам.

В начальном состоянии DS18B20 находится в состоянии покоя или иными словами в низком энергетическом уровне. Для начала измерений микроконтроллер подает сигнал [0х44], после чего полученные данные сохраняются в регистр, а сам датчик переходит в режим «покоя».

При работе цифрового датчика температуры DS18B20 от независимого источника питания микроконтроллер способен контролировать процесс выполнения команды [0х44], которая осуществляет измерение температуры. Таким образом, датчик температуры DS18B20 сформирует логический «0» во время трансформации показаний температурного режима и логическую «1» в случае окончания процесса преобразования.

Если питание микросхемы осуществляется при помощи «паразитного метода», то контроль логических «0» и «1» невозможен, поскольку на шине будет постоянно дежурить высокий уровень напряжения питания.

После снятия и обработки сигнала с датчика температуры в микросхеме DS18B20 полученные данные в градусах Цельсия сохраняются в виде 16-битного числа с признаком (S), который отвечает за знак «+» или «-» температуры. Структура регистра температуры будет выглядеть так, как показано ниже.

Если показания температуры выше «0», то показатель S=0, если же значение температуры отрицательное, то S=1. Ниже представлена таблица соответствия данных и температуры.

Как формируются и передаются тревожные сигналы Th и Tl

После выполнения трансформации показаний температуры в 16-битный код полученное число сравнивается со значениями Th и Tl, расположенными в регистре памяти (EEPROM) микропроцессора, а именно второй и третий байты. Структура регистров Th и Tl будет выглядеть следующим образом:

Если полученные данные, 11–4 биты регистра, превышают Th или же ниже параметра Tl, то формируется сигнал аварии на микросхеме. Но на этом измерения не прекращаются, и в случае снижения Th ниже или Tl выше заданного диапазона условие «Авария» сбрасывается.

Если же необходимо самостоятельно выявить один из датчиков, который выдает сигнал «Тревога», то микроконтроллер с помощью команды ECh выполнит тестирование каждого датчика. В случае изменения параметров Th и Tl, выше или ниже занесенных в регистр значений, выдаст код устройства с нарушениями температурного режима.

Как выполнить правильное питание DS18B20

Микросхема DS18B20 позволяет осуществить 2 типа подключения:

  • паразитный режим;
  • подключение к внешнему источнику.

Рассмотрим более детально каждый из них.

Паразитный режим

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

При высоком U на шине микросхемы DS18B20 работает и заряжает Cpp при помощи вывода DQ. Обязательное условие для работы устройства в подобном режиме — заземление Vdd. При смене уровня сигнала на логический «0» питание схемы осуществляется от ранее заряженного конденсатора. В обычном режиме работы микросхема DS18B20 способна демонстрировать непрерывную и стабильную работу при соблюдении электрических характеристик.

Однако при выполнении микросхемой частых преобразований и взаимодействий с памятью потребляемый ток может превысить 1,5 мА. Это приведет к просадке напряжения на шине ниже минимально допустимого уровня. Для решения этой задачи необходимо использовать MOSFET транзистор. Он работает, когда выполняется копирование данных или же преобразование температуры. Тем не менее его используют очень редко, так как запас мощности микросхемы DS18B20 позволяет выполнять вычисления без снижения уровня напряжения.

Недостатки паразитного подключения

В большинстве случаев рационально применять данный метод. Однако если измеряемая температура выше 100°С, то возникает большой ток утечки, и заряда конденсатора Cpp не хватает для полноценного функционирования микросхемы. В таких случаях лучше применять питание микросхемы от внешнего источника.

Подключение цифрового датчика температуры DS18B20 к внешнему источнику питания

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

Контроль чтения DS18B20

Для контроля процесса чтения данных 64-битного ROM-кода девятый байт — это CRC или байты циклического кода SRAM. Генератор CRC выглядит следующим образом:

Данный код находится в старшем байте памяти ROM и вычисляется для предыдущих 56 битов. Основная задача девятого байта (CRC) — контроль чтения данных из микросхемы. Для этого микропроцессор производит вычисление полученного циклического кода и выполняет его сравнение с заранее принятым кодом. В результате сравнения микроконтроллер получает данные о корректности полученных данных.

Для проверки полученных данных служит полином циклического кода следующей структуры:

C R C = X8 + X5 + X4 + 1

Кодировка датчика DS18B20

Для контроля уровня температур в различных точках применяется большое количество датчиков, каждый из которых закодирован 64-битным кодом в ROM-памяти. В первые 8 бит записан код семейства (28h), во вторые 48 бит — серийный номер датчика и в последние 8 бит запрограммирован циклический код (CRC) для всех предыдущих битов.

Регистр конфигураций

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

Для установки разрешения преобразования необходимо сменить параметры R0 и R1, которые в первоначальном состоянии соответствуют 11. В таблице приведено соответствие значений данных параметров, разрешения и время преобразования.

Работа с интерфейсом 1-Wire

Система для измерения перепада температурного режима на основе датчиков DS18B20 работает при помощи протокола 1-Wire, который в свою очередь состоит из ведущего (главного или «Мастер») и ведомого устройства (СЛЕЙВ). Датчик данного типа может подключаться только в качестве ведомого. При подключении к шине только одного датчика данная система будет называться одноточечной, а в случае нескольких — многоточечной. Все данные и сигналы в подобной системе передаются с младшим битом вначале.

Как выполнена память цифрового датчика данного типа

Для полноценной работы DS18B20 состоит из 2 типов памяти: EEPROM и SRAM. Первый тип памяти — энергонезависимый, а второй — оперативный. Карта памяти выглядит следующим образом:

В EEPROM-памяти хранятся данные граничных порогов температур, а также регистр конфигураций.

А в карте памяти SRAM первые 2 байта (0 и 1) отвечают за измеренную температуру, вторые 2 байта предназначены только для чтения и отвечают за значения граничных температур из памяти EEPROM, четвертый байт содержит в себе параметры конфигурации. А зарезервированные байты с пятого по седьмой всегда выдают логическую «1» при чтении и не могут быть записаны. Для корректной работы памяти есть также восьмой байт или генератор циклического кода, отвечающий за первые 8 байт.

Чтобы выполнить запись в байты 2–4, потребуется выполнить команду [4Eh] ЗАПИСЬ ПАМЯТИ. Для получения доступа к записанным данным достаточно выполнить команду [BEh] ЧТЕНИЕ ПАМЯТИ. А если необходимо выполнить запись параметров TH, TL или же регистра конфигурации, тогда следует выполнить команду [48h] КОПИРОВАНИЕ ПАМЯТИ.

Что понадобится для работы с микросхемой DS18B20

Для работы с микросхемой DS18B20 потребуется:

  • программное обеспечение Arduino IDE;
  • библиотека для работы с протоколом 1-Wire OneWire library;
  • скетч.

Вышеуказанные приложения позволят произвести прошивку микросхемы. Однако, чтобы это осуществить, потребуется следующее оборудование:

  • контроллер Arduino;
  • USB-кабель, подключающий контроллер к персональному компьютеру;
  • монтажная плата для установки микросхемы и 3 коннектора.

Подключение микросхемы к Arduino

Для подключения датчика, как показано на схеме ниже, контакт 1 (GND) подключается к общему «-» платы, контакт 2 (Vdd) подключается к источнику питания +5 В через подтягивающий резистор номиналом 4,7 кОм, а последний контакт 3 (DATA) подключается к одному из пинов на микроконтроллере Arduino (на схеме использован второй пин).

Для корректной работы устройства в скетче необходимо проверить параметры строк с номерами 65 и 10, так как строка 65 отвечает за «прямое» ds.write (0x44) или «паразитное» ds.write (0x44, 1) подключение, а строка 10 за номер вывода на плате, к которому подключен вывод «DATA».

Для данного случая строка 10 должна иметь следующий вид: OneWire ds(2).

Настройка кода и работа с библиотеками

После окончания монтажных работ можно приступать к программированию устройства. Для этого с помощью приложения Arduino IDE требуется смонтировать библиотеку OneWire library. Для этого в меню приложения необходимо выбрать «Add Library», которое расположено в меню «Sketch» или для русскоязычного варианта «Скетч» — «Подключить библиотеку» — «OneWire».

Далее в открывшейся библиотеке следует найти пример программирования «DS18x20_Temperature». Для этого необходимо в меню «Файл» выбрать подменю «Примеры», далее раздел «OneWire» и пункт «DS18x20_Temperature».

В примере из библиотеки OneWire в строке 10 изначально запрограммирован 10 pin микроконтроллера, для рассматриваемого случая его требуется заменить на 2. В итоге 10 строка должна выглядеть следующим образом:

После корректно выполненных операций, компиляции и загрузки программы в окне монитора порта «Инструменты» — «Монитор порта» появится примерно следующее:

Заключение

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

Видео по теме

Цифровые датчики температуры

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

Датчик температуры KY-001 с интерфейсом 1-Wire

Этот датчик служит для точного измерения температуры. Связь с датчиком осуществляется по интерфейсу 1-Wire [1-2], что позволяет подключить к плате Arduino несколько подобных устройств, используя один вывод микроконтроллера [3-4]. Основой модуля является микросхема ds18b20 [5].

Размер модуля 24 х 15 х 10 мм, масса 1,3 г. Для подключения служит трехконтактный разъем. Центральный контакт – питание +5В, контакт «-» — общий, контакт «S» — информационный.

На плате имеется красный светодиод, который загорается, когда совершается обмен информации.

Потребляемый ток 0,6 мА при обмене информации и 20 мкА в ждущем режиме.

Подключение данного типа датчиков к Arduino хорошо описано во многих источниках [6-8]. В данном случае снова проявляются основные достоинства Arduino – универсальность и наличие огромного количества справочной информации. Для работы с датчиком потребуется библиотека OneWire Library [9]. Загрузив программу из [8] (в первом варианте программы есть ошибка – в заголовке кода нет подключения библиотеки #include ) можно наблюдать в мониторе последовательного порта следующую информацию.

Так же автор тестировал код из [7], тут все заработало сразу, в мониторе последовательного порта можно прочитать информацию о типе подключенного датчика и собственно данные о температуре.

В целом очень полезный датчик, дающий возможность познакомиться на практике с интерфейсом 1-Wire. Корректные данные о температуре датчик выдает сразу, пользователю не нужно производить калибровку.

Модуль датчика температуры KY-013

Модуль представляет собой делитель напряжения, в одно из плеч которого включен терморезистор. Сопротивление датчика меняется при изменении температуры, второе плечо делителя образует резистор сопротивлением 10 кОм [10]. Подключение датчика аналогично фоторезистору [11].

Размер модуля 30 х 15 мм, масса 1 г. Для подключения служит трехконтактный разъем. Центральный контакт – питание +5В, контакт «-» — общий, контакт «S» — информационный.

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

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

Полезное:  Понижающий преобразователь с выходом на USB-порт

Модуль датчика влажности и температуры KY-015 [12-13]

Модуль позволяет измерять температуру и влажность, передача информации осуществляется по интерфейсу 1-Wire [1-2].

Размер модуля 27 х 15 х 8 мм, масса 2,2 г. Для подключения служит стандартный трехконтактный разъем. Центральный контакт – питание +5В, контакт «-» — общий, контакт «S» — информационный.

В ждущем режиме модуль потребляет около 60 мкА, и до 3 мА при обмене данными.

Для работы датчику необходима специальная библиотека [14], для проверки работоспособности датчика был использован код, взятый из следующего источника [15]. После загрузки можно наблюдать в мониторе последовательного порта данные о температуре и влажности. Изменения показаний датчика обусловлены тем, что автор поднес его ко рту.

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

Модуль датчика температуры KY-028 [16-17]

Этот датчик предназначен для грубого измерения температуры и обнаружения превышения заданного температурного порога.

Датчик имеет габариты 45 х 15 х 13 мм, массу 2,7 г, в печатной плате модуля предусмотрено крепежное отверстие диаметром 3 мм. Чувствительным элементом датчика является терморезистор. Индикация питания осуществляется светодиодом L1.

При срабатывании датчика загорается светодиод L2.

На плате датчика расположено четыре контакта. «A0» — аналоговый выход, выходное напряжение на котором меняется при изменении сопротивления терморезистора. Если в память Arduino UNO загрузить программу AnalogInput2, то можно наблюдать следующее изменение показаний датчика при его прижатии к коже человека.

Выводы питания «G» — общий провод, «+»– питание +5В. На цифровом входе «D0» присутствует низкий логический уровень, если температура не превышает заданного порога, при срабатывании датчика низкий уровень меняется на высокий. Регулировать положение порога срабатывания датчика можно подстроечным резистором. В дежурном режиме датчик потребляет около 4 мА, при срабатывании ток возрастает до 6 мА

Модуль можно легко настроить на срабатывание от тепла тела (используется программа LED_with_button).

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

Литература

1) http://cxem.net/comp/comp53.php 2) http://cxem.net/comp/comp54.php 3) http://arduino-kit.ru/catalog/id/modul-datchika-temperaturyi-ds18b20 4) http://www.zi-zi.ru/module/module-ky001 5) http://cxem.net/ckfinder/userfiles/comments/43118_ds18b20-rus.pdf 6) http://mypractic.ru/urok-26-podklyuchenie-termodatchikov-ds18b20-k-arduino-biblioteka-onewire-tochnyj-arduino-termometr-registrator.html 7) http://arduino-diy.com/arduino-tsifrovoy-datchik-temperatury-DS18B20 8) http://it-chainik.ru/podklyuchenie-datchika-temperatury-ds18b20-k-arduino/ 9) https://www.pjrc.com/teensy/td_libs_OneWire.html 10) http://www.zi-zi.ru/module/module-ky013 11) http://robocraft.ru/blog/arduino/68.html 12) http://arduino-kit.ru/catalog/id/modul-datchika-vlajnosti-i-temperaturyi 13) http://www.zi-zi.ru/module/module-ky015 14) https://drive.google.com/file/d/0B-DqglGyhA7eVlAyYkhUaXYwWGc/view 15) http://роботехника18.рф/датчик-температуры-и-влажности/ 16) http://arduino-kit.ru/catalog/id/modul-datchika-temperaturyi_

17) http://www.zi-zi.ru/module/modul-ky-028

Цифровой датчик температуры и влажности: принцип работы

Датчики температуры в настоящее время используются повсеместно. Это и системы отопления и климат-контроля. Холодильники, чайники, компьютеры – везде используются различные виды датчиков температур. Это всё только в бытовом применении. В промышленном использовании их сфера применения куда шире.

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

Существует два варианта измерений: контактные и бесконтактные.

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

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

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

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

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

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

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

Подобные устройства обладают неплохой точностью и малой ценой. Их использование удобно в большинстве случаев и имеет свою нишу, где используют только их. Однако есть и недостатки такие как – зависимость от питания, большое количество выводов требует большого количества проводников. Питающий их ток снижает точность измерений. Область температур сильно ограничена вышеназванными условиями, и рассчитана на температуры не ниже -55 и не выше 125 градусов Цельсия.

Цифровые технологии измерений

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

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

Аналого-цифровые измерители могут иметь достаточно долгое время преобразования сигнала от измерительного элемента в цифру (до 1 секунды в высоком разрешении), но точность при этом остается весьма высокой (погрешность около +- 0.5 градусов Цельсия при измерении в районе комнатных температур).

В заключении следует перечислить все преимущества цифры:

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

Основные модели

Бюджетная модель, обладающая хорошей точностью. Для подключения использует 1-Wire, что позволяет подключать измерители по трехпроводной линии.

Имеет фиксированное время преобразования. Обладает возможностью подключать до 8 устройств на шину. Обладает точностью до 0.125 градуса Цельсия.

Также как и LM75A имеет возможность подключить до 8 устройств, при этом обладает большей скоростью работы, чем DS18B20, таким образом, собирая всё лучшее от всех моделей.

Гигрометры

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

Читайте также:  Как заменить датчик температуры салона Приора?

Требования к гигрометру всегда одни: точность, чувствительность, легкий монтаж и заменимость. Второстепенным, но немаловажным будет стоимость гигрометра, на которую также обращает внимание среднестатистический покупатель.

Виды гигрометров:

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

№ Полезная информация
1 Резистивные

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

Срабатывает система каждые 10-30 секунд. Устройство не требовательно к настройке и легко заменяется. Исправная работа устройства обеспечивается до 5 лет при условии отсутствия в воздухе высокого содержания вредных химических примесей.

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

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

Области применения цифровых датчиков

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

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

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

Обладая минимальными понятиями в электронике и программировании, вы можете собрать свои аппараты под ваши требования на базе плат Arduino и использовать их, так как сами хотите.

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

Современные производители цифровых датчиков активно контактируют с покупателями и стараются потакать их всевозможным желаниям. Развивая отрасль цифры с всё более неожиданных ракурсов.

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

Датчик температуры для Лада Гранта

Оцените статью: Загрузка...

Подключаем датчик температуры LMT01 к Аrduino, ATiny25, PIC10F204 и MSP430

Датчик температуры LMT01 производства компании Texas Instruments весьма популярен среди разработчиков. Он позволяет с высокой точностью – до ±0,5°С – измерять температуру в диапазоне -50…150°С. При этом главной особенностью сенсора является двухпроводной токовый интерфейс и очень простой протокол выдачи данных. В статье рассмотрены особенности практического применения LMT01 и его подключение к различным микроконтроллерам.

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

Таблица 1. Сравнение различных типов температурных датчиков

Параметр Термопары RTD Термисторы Цифровые датчики
Диапазон температур, °С -200…2000 -200…650 -55…300 -55…200
Точность Средняя Высокая Средняя Высокая
Повторяемость Средняя Отличная Средняя Отличная
Временная стабильность Низкая Хорошая Низкая Хорошая
Чувствительность Низкая Средняя Очень высокая Высокая
Линейность Средняя Хорошая Низкая Хорошая
Время отклика Среднее или высокое Среднее Среднее или высокое Среднее или высокое
Взаимозаменяемость Хорошая Отличная Низкая или средняя Хорошая
Влияние проводов и соединений Высокое Среднее Низкое Низкое
Саморазогрев Нет Низкий Высокий Низкий
Сложность реализации в схеме Высокая Высокая Низкая Низкая

Термопары применяются в наиболее широком диапазоне температур, где прочие виды сенсоров не могут использоваться в принципе. В то же время они имеют низкую точность и чувствительность. RTD выполняются из металла (обычно меди или платины), и отличаются высокой линейностью и точностью температурной характеристики, при этом их чувствительность достаточно низка. Термисторы представляют собой полупроводниковые резисторы меняющие свое сопротивление при изменении температуры. Для них характерна высокая чувствительность и быстрый отклик. Их главным недостатком является нелинейность температурной характеристики. Цифровые датчики – наиболее популярный тип среди датчиков температуры. Говоря об их недостатках, следует в первую очередь отметить относительно узкий температурный диапазон -55…125°C для типовых датчиков и -55…200°C для специализированных сенсоров. Однако для большинства коммерческих приложений этого оказывается вполне достаточно.

Основными преимуществами цифровых датчиков являются:

  • высокая точность;
  • отличная повторяемость характеристик;
  • высокая линейность;
  • стойкость к внешним помехам;
  • невысокая цена;
  • возможность подключения нескольких датчиков к одной информационной шине;
  • простота использования.

Последнее свойство является очень важным, хотя и не относится к группе метрологических характеристик. Цифровые термометры не требуют источника тока (как термисторы или RTD) или высокоточного усилителя и АЦП (как термопары). Для связи с ними используются популярные цифровые интерфейсы (SPI, I²C, 1-wire, SMAART и прочие).

Краткий обзор популярных цифровых датчиков температуры

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

Сейчас среди разработчиков популярны датчики температуры, которые работают с одно- или двухпроводными шинными интерфейсами: 1-wire, I²C, SMAART и так далее. Это позволяет использовать микроконтроллеры с малым числом выводов для одновременной работы с множеством датчиков. Рассмотрим достоинства и особенности некоторых популярных сенсоров (таблица 2).

Таблица 2. Характеристики популярных датчиков температуры

Параметр DS18B20 STLM75 TMP107 LMT01
Производитель Maxim Integrated STMicroelectronics Texas Instruments Texas Instruments
Диапазон измеряемых температур, °С -55…125 -55…125 -55…125 -50…150
Разрешение, бит 9/10/11/12 9 14 12
Точность, °С ±0,5…±2 ±0,5…±2 ±0,4…±0,7 ±0,5…±0,6875
Время измерения, мс 93,75…750 150 18 54
Напряжение питания 3…5,5 В 2,7…5,5 В 1,7…5,5 В 2…5,5 В
Ток потребления (активное состояние), мкА 1500 150 400 125
Ток потребления (режим ожидания), мкА 1 1 10 34
Интерфейс 1-Wire I²C/SMBus USART/SMAART Однопроводной с токовым выходом
Корпус SOIC8, uSOP8, TO-92 SOIC8, TSSOP8, SOIC8 TO-92

DS18B20 – популярный датчик температуры, работающий в диапазоне -55…125°С. Его главными преимуществами являются доступность, невысокая стоимость, программируемая разрядность измерений 9/10/11/12 бит, возможность подключения множества датчиков на общую двухпроводную шину 1-Wire, малое потребление в спящем режиме до 1 мкА. Вместе с тем у этого сенсора есть и недостатки, в том числе – достаточно высокое потребление в активном режиме до 1,5 мА, невысокое быстродействие при высокой разрядности измерений, относительно узкий диапазон рабочих напряжений от 3 В.

STLM75 – датчик температуры, который также работает с диапазоном -55…125°С. По сравнению с DS18B20 данный сенсор может похвастаться сверхнизким потреблением как в активном, так и в спящем режиме (150 мкА и 1 мкА соответственно), а также работой с напряжениями питания 2,7…5,5 В. Для связи с STLM75 используется I²C-шина с возможностью одновременного подключения до девяти устройств. Недостатком датчика является малое разрешение – всего 9 бит.

TMP107 производства Texas Instruments имеет максимальную разрядность среди рассматриваемых датчиков – 14 бит, отличную точность – ±0,4…±0,7°С, минимальное время преобразования – 18 мс. Особенностью датчика является интерфейс SMAART, c помощью которого можно подключить до 32 датчиков на 3-проводную шину. Однако уровень потребления TMP107 достаточно высок как в активном режиме (до 400 мкА), так и в режиме сна (10 мкА),. и для работы с ним потребуется один внешний буфер с тремя состояниями, например, SN74LVC1G125. В результате измерительный блок займет больше места на плате.

LMT01 – близкий по идеологии к датчику DS18B20, но превосходит его по ряду параметров: шире диапазон рабочих напряжений (2…5,5 В), меньше потребление и время преобразования (54 мс). Выходная разрядность датчика – 12 бит. LMT01 отличается наиболее широким диапазоном рабочих температур, составляющим -50…150°С, и максимальной точностью – ±0,5…±0,6875°С. В отличие от TMP107, данный сенсор в простейшем случае требует для подключения наличия единственного внешнего резистора, так как работает с токовым интерфейсом.

Характеристики датчика температуры LMT01

Рис. 1. LMT01 выпускается в корпусе TO-92 с двумя выводами

Датчик температуры LMT01 выпускается в двухвыводном корпусном исполнении TO-92 (рисунок 1).

В качестве чувствительного элемента в LMT01 используется полупроводниковый диод (рисунок 2). Сигнал с диода оцифровывается с помощью 12-битного ΣΔ-АЦП и источника опорного напряжения. Полученный цифровой поток преобразуется в последовательность счетных токовых импульсов с помощью встроенных токовых регуляторов верхнего и нижнего плеча. Кроме того, в состав микросхемы входит регулятор напряжения для формирования напряжения питания.

Датчик предназначен для измерения температуры в диапазоне -50…150°С с разрешением 12 бит, что позволяет получать величину единичного отсчета 0,0625°C (рисунок 3). На разных участках рабочего диапазона погрешность принимает различные значения:

  • при -20…90°C погрешность не превышает ±0,5°C;
  • при 90…150°C погрешность не превышает ±0,62°C;
  • при -50…-20°C погрешность не превышает ±0,7°C.

Рис. 2. Внутренняя структура LMT01

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

  • высокая стойкость к электромагнитным помехам;
  • возможность размещения датчика как на плате, так и вне ее, например, на выносном проводе длинной до 2 м.

Рис. 3. Характеристика преобразования температуры для LMT01

Особенности двухпроводного токового интерфейса в датчиках температуры LMT01

Рис. 4. Организация токового интерфейса с LMT01

Как было сказано выше, для передачи результата измерений LMT01 формирует битовую последовательность в виде счетных импульсов тока. Для этого датчику требуется всего лишь два вывода (рисунок 4). Чтобы преобразовать токовые импульсы в форму, привычную для цифровых микросхем, в некоторых случаях можно использовать единственный резистор (но не всегда – об этом ниже).

После включения питания LMT01 начинает цикл измерения, который занимает до 54 мс (рисунок 5). В течение этого времени на выходе датчика формируется ток малого уровня 28…39 мкА. После этого следует цикл передачи результата измерения в виде импульсов тока амплитудой 112…143 мкА. Приемный микроконтроллер должен вести подсчет этих импульсов, например с помощью встроенного счетчика/таймера. Так как частота сигналов составляет около 82…94 кГц, то при максимальном числе импульсов (4095) длительность передачи может достигать 50 мс.

Рис. 5. Временные диаграммы работы датчика LMT01

По числу подсчитанных импульсов (PC) можно определить значение температуры согласно формуле 1:

 , (1)

Таким образом при 0°C датчик сформирует около 800 импульсов.

К сожалению, использование одного внешнего резистора не всегда возможно из-за ограничений по минимальному падению напряжения на датчике LMT01. В течение цикла измерения падение на датчике должно быть не менее 2,15 В. В течение цикла передачи данных падение напряжения допустимо уменьшать до 2 В. Несложно сделать некоторые приблизительные расчеты.

Рассмотрим устройство с напряжением питания Vdd = 3,3 В. Если принять минимально допустимое падение на датчике равным 2,15 В во время цикла измерения, то на резисторе будем наблюдать сигнал не более 1,15 В. Для большинства цифровых контроллеров логическая единица составляет 0,7∙Vdd, что для нашего случая составит 2,31 В. В итоге использование простого резистора оказывается невозможным, так как микроконтроллер попросту не «увидит» сигнал логической единицы. Выходом из этой ситуации может стать использование микроконтроллера со встроенным компаратором или схем преобразования уровней.

Базовые схемы включения датчика температуры LMT01

Рис. 6. Простейшая схема использования LMT01 совместно с MSP430

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

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

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

Рис. 7. Схема подключения LMT01 со схемой сдвига уровней

При необходимости гальванической развязки или существенного отличия в уровнях сигналов можно воспользоваться дополнительным изолятором, например ISO734x (рисунок 8).

Заметим, что ток, формируемый LMT01, достаточно мал. Это позволяет использовать для питания датчиков выводы GPIO-микроконтроллера, что дает разработчикам дополнительные преимущества:

  • возможность сокращения потребления сенсора за счет его отключения с помощью GPIO. В таком состоянии ток утечки LMT01 составляет всего 1 мкА, что гораздо меньше тока в рабочем режиме (34 мкА и 125 мкА);
  • возможность подключения нескольких датчиков к одному входу микроконтроллера (рисунок 9). При таком включении выводы VN датчиков объединяются, а входы VP подключаются к разным GPIO.

Рис. 8. Изолированное подключение LMT01

Рис. 9. Подключение нескольких датчиков LMT01 к одному микроконтроллеру

Подключение LMT01 к Аrduino

Рис. 10. Подключение LMT01 к Аrduino

Для подключения LMT01 к Arduino Nano (рисунок 10) достаточно лишь одного резистора. Для подсчета импульсов с выхода LMT01 используется внутренний компаратор. В качестве положительного входа компаратора задействован встроенный источник опорного напряжения REF 1.25 В. Подключение выполнено следующим образом:

  • LMT01 подключен контактом VP к порту D12 Arduino, этот выход цифрового порта используется для подачи питания на LMT01;
  • вывод VM LMT01 подключен к земле через резистор 16 кОм. Номинал этого резистора выбран таким образом, чтобы порог сравнения 1,25 В попадал как раз посередине между уровнями логических 0 и 1 для токового выхода LMT01;
  • сигнал с выхода LMT01 снимается с точки соединения резистора и вывода VM и подается на отрицательный вход компаратора D7.

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

Для проверки работоспособности датчик LMT01 охлаждался с помощью специального аэрозольного баллончика. Таким способом очень просто получить температуру ниже -40°С без использования специализированной термокамеры. Результат испытаний можно увидеть на рисунке 11, а на рисунке 12 представлен сигнал на выводе D7 Аrduino.

Рис. 11. Работа скетча LMT01 для Аrduino

Рис. 12. Сигнал на выводе D7 Аrduino

Скетч для выдачи значения температуры можно найти в архиве примеров кода для LMT01.

Подключение LMT01 к ATiny25

Рис. 13. Макет и схема подключения LMT01 к микроконтроллеру ATiny25

Рис. 14. Подключение LMT01 к микроконтроллеру ATiny2

Рис. 15. Осциллограммы сигналов на выводе 7 ATiny25

На рисунке 13 представлена схема и макет подключения LMT01 к микроконтроллеру ATiny25 в корпусе SOIC-8. В данном случае использовался дополнительный ключ на биполярном транзисторе. Использование транзистора позволяет подавать сигнал на любой цифровой порт входа микроконтроллера без компаратора. На рисунке 14 показана схема в работе. Пусть вас не смущает большая отладочная плата MSP432 – на ней используется лишь преобразователь UART/USB. В терминал выводится значение температуры без дробной части, что упрощает и сокращает код программы. Осциллограммы сигналов с LMT01 можно посмотреть на рисунке 15.

Программа для ATiny25 написана на Си (GCC) и использует счет импульсов по прерываниям со входа INT0. Тактовая частота – 8 МГц. Для отсчета временных интервалов задействован таймер TIMER1.

Исходный проект “LMT01 demo programm for ATtiny25 MCU” и дополнительную информацию можно найти в архиве примеров кода для LMT01.

Подключение LMT01 к PIC10F204

Рис. 16. Макет устройства (LMT01 + PIC10F204)

На рисунке 16 представлен макет подключения LMT01 к микроконтроллеру PIC10F204 в корпусе DIP-8. Так как данный микроконтроллер имеет в своем составе компаратор, внешний ключ на транзисторе не нужен. Схема подключения представлена на рисунке 17. На рисунке 18 представлены осциллограммы сигналов для разных измеряемых температур.

В связи с крайне ограниченными ресурсами PIC10F204 код программы был написан на ассемблере и занял большую часть объема Flash-памяти. Результаты измерения выводятся через программный UART на скорости 9600 бит/с. Счет импульсов идет программным способом на пределе скорости для тактовой частоты 4 МГц. В программе реализован прямой пересчет для получения результата с максимальным разрешением 0,0625°C без использования программного умножения и деления. Для отображения результата используется подпрограмма b24dec для перевода 24-битного результата в ASCII-код. Исходный код проекта LMT01_MSP430 с дополнительными материалами можно найти в архиве «Примеры кода для LMT01».

Рис. 17. Схема подключения LMT01 к микроконтроллеру PIC10F204

Рис. 18. Изменение количества импульсов LMT01 в зависимости от температуры

Подключение LMT01 к MSP430

Рис. 19. Схема подключения LMT01 к MSP430G2553

Рис. 20. Подключение LMT01 к Launchpad MSP-EXP430G2

Схема подключения LMT01 к недорогой отладочной плате Launchpad MSP-EXP430G2 приведена на рисунке 19. Для подключения использовался вариант c внутренним компаратором, подсчет импульсов производился с помощью таймера. Все это существенно упрощает как схему подключения, так и код программы. Макет устройства приведен на рисунке 20 (на фото питание на LMT01 подается с P2.4, однако в прилагаемом примере для этого используется линия P1.6). Программа имеет множество комментариев на русском языке и будет понятна даже начинающему разработчику. Значение температуры и «сырые» данные (число импульсов) выводятся в UART на скорости 9600 бит/с. Результат работы программы приведен на рисунке 21.

Рис. 21. Измерение температуры с помощью LMT01

В архиве можно найти код программы для работы LMT01 совместно с MSP430G2553.

Заключение

Датчик температуры LMT01 найдет применение в различных устройствах, где необходима высокая точность измерения 0,5°C и широкий диапазон. Малое время измерения и низкий ток потребления позволяют использовать LMT01 в батарейном оборудовании. Высокая разрешающая способность 0,0625°C гарантирует точное слежение даже за малыми температурными изменениями. Минимальное число линий подключения и простой алгоритм вычитывания цифрового результата позволяет использовать LMT01 даже с самыми простыми 6-выводными микроконтроллерами. Для быстрого старта разработчик может использовать подробную документацию производителя, а также приложенные к данной статье примеры кода для разных МК.

Литература

В середине 2001 г. компании Texas Instruments и КОМПЭЛ заключили официальное дистрибьюторское соглашение, которое явилось результатом длительной и успешной работы КОМПЭЛ в качестве официального дистрибьютора фирмы Burr-Brown. (Как известно, Burr-Brown вошла в состав TI так же, как и компании Unitrode, Power Trend и Klixon). С этого времени компания КОМПЭЛ получила доступ к поставке всей номенклатуры производимых компанией TI компонентов, ...читать далее


Смотрите также

 

"Питер - АТ"
ИНН 780703320484
ОГРНИП 313784720500453

Новости