Pull to refresh

Сравнение датчиков температуры. Часть 2, цифровые

Level of difficultyEasy
Reading time7 min
Views8.2K

Как обмануть родителей и не идти в школу? Есть простой рецепт. Берем градусник, нагреваем его при помощи фена или обогревателя до требуемой температуры 38 °C, имитируем хриплый голос и сопли, демонстрируем все обозначенное взрослым. Но получится ли провернуть такую операцию, если градусник цифровой? К счастью, да, проверено на медицинском термометре WT-03 BASE фирмы B.Well. Проверено теоретически, конечно, я же уже взрослый.

Ртутный градусник имеет интересное свойство запоминать максимальную температуру. В электронном термометре эту функцию заменяет программа. Есть некоторый начальный порог, что-то около 30 °C и если затем положить прибор в холодильник, то он покажет последнее максимальное значение. Нет необходимости удерживать требуемую для обмана температуру продолжительное время. Отлично.

В этой части продолжен обзор датчиков температуры, в фокусе внимания STLM75, DS18B20, AHT20 и BME280. Аналоговые датчики были рассмотрены в статье «Сравнение датчиков температуры. Часть 1, аналоговые», а измерения собраны в статье «Сравнение датчиков температуры. Часть 3, практика».

Датчик температуры и тепловой сторожевой таймер STLM75

Полезнейший бытовой прибор, электрический чайник, в большинстве случаев измеряет только одно пороговое значение – температуру кипения воды. И таких задач, когда нужно отключить нагревательный элемент, много. Тут на помощь приходит микросхема с функцией теплового сторожевого таймера, STLM75. Она может работать как термостат без использования цифрового интерфейса, пороговое значение после перезагрузки составляет 80°C. Сигнал выдается на выход nOS с открытым коллектором. Имеется возможность настроить прерывание от микросхемы, гистерезис и защиту от шума.

Рисунок 1 - Блок-диаграмма микросхемы STLM75, источник изображения [1]
Рисунок 1 - Блок-диаграмма микросхемы STLM75, источник изображения [1]

Микросхема достаточно просто настраивается, содержит всего четыре регистра для конфигурации и хранения данных. Поскольку адрес задается внешними выводами, имеется возможность объединить несколько ведомых на шине I2C. 

Выводы по микросхеме STLM75:

  1. Простой датчик температуры с интерфейсом I2C, выпускается в двух разных корпусах, легко конфигурируется;

  2. Может применяться без контроллера как термостат, однако памяти в микросхеме нет, а значит настройки не сохраняются. Остается довольствоваться порогом в 80 °C по умолчанию.

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

Аппаратная поддержка шины 1-Wire практически не встречается в микроконтроллерах, а датчик температуры DS18B20 с данным протоколом встречается повсеместно. Протокол разработан корпорацией Dallas Semiconductor (сейчас Maxim Integrated) и является зарегистрированной торговой маркой. Хотите аппаратный 1-wire – покупайте контроллеры MAX32620/MAX32621. К счастью, есть альтернативные сценарии, например GPIO + таймер или UART + резистор с диодом.

Рисунок 2 - Схема для подключения 1-Wire датчика к UART
Рисунок 2 - Схема для подключения 1-Wire датчика к UART

Узнать о том, как реализовать 1-Wire при помощи UART можно на сайте, поэтому приведу лишь краткие сведения. UART требуется сконфигурировать в полнодуплексном режиме, так как необходимо слышать свои передачи. Приём данных ведущим устройством организован как передача, в которую вмешивается ведомое устройство. Чтобы формируемые импульсы по временным характеристикам соответствовали требованиям 1-Wire, хорошо подходят скорости передачи: 9600 бит/с для формирования сигнала сброса и 115200 бит/с для передачи данных.

Используя разные скорости передачи и разные данные удается сымитировать слоты записи или чтения. Так, для формирования слота записи 0 следует передать байт 0x00 на скорости 115200 бит/с, а для формирования слота записи 1, передаём на скорости 115200 бит/с байт 0xFF. Для формирования слота чтения следует отправить байт 0xFF на скорости 115200 бит/с. То же самое мы делали для формирования слота записи 1. Но, в дополнение к этому, здесь необходимо проанализировать принятый байт, и если он не отличается от отправленного, значит получен слот чтения 1, иначе – слот чтения 0. Вероятно, более запутанно выглядит только уравнение Стейнхарта-Харта (см. раздел «Термистор MF52» части 1), в остальном датчик температуры DS18B20 великолепен.

Устройство имеет заявленную точность 0,5 °C, при этом разрешение настраивается программно, т.е. можно получить температуру с минимальным шагом в 0,0625 °C. Каждый датчик имеет уникальный серийный номер, а значит на одну линию можно повесить много устройств. Датчик может питаться как через отдельный провод, так и от линии связи. И даже имеется возможность настроить «тревожный» порог температуры, с сохранением настроек в память.

Рисунок 3 - Блок-диаграмма микросхемы DS18B20, источник изображения [2]
Рисунок 3 - Блок-диаграмма микросхемы DS18B20, источник изображения [2]

Точность показаний датчика меняется в рабочем диапазоне, наилучшая достигается в его середине. Метод повышения точности основан на методике, изложенной в «Application Note 208: Curve Fitting the Error of a Bandgap-Based Digital Temperature Sensor», дополнительную информацию можно найти на сайте.

Выводы по датчику температуры DS18B20:

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

  2. Интерфейс 1-Wire позволяет сэкономить ножки управляющего контроллера (если использовать GPIO), но требует некоторой сноровки при реализации;

  3. Скорость измерения температуры зависит от настроенного разрешения, при 12-и битах может достигать 750 мс.

Датчик температуры и влажности AHT20

AHT20 – лидер среди испытуемых по заявленной точности измерений, ±0,3 °C в диапазон температур от 20 до 60 °C. Датчик отличается простотой команд управления, их всего три: инициализация, измерение, сброс. При запросе температуры и влажности возвращается байт статуса и контрольная сумма. Наличие CRC – большое преимущество многих цифровых датчиков, раз сумма сошлась, данные достоверны. Датчик AHT20 подключается к шине I2C.

Рисунок 4 - Типовая схема подключения ATH20, источник изображения [3]
Рисунок 4 - Типовая схема подключения ATH20, источник изображения [3]

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

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

Выводы по датчику AHT20:

  1. Микросхема имеет хорошие характеристики при достаточно низкой цене;

  2. Датчик имеет простую логическую модель и простые формулы пересчета показаний в температуру и влажность.

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

Еще один интересный датчик температуры с выдающимися характеристиками - SHT4x. Корпус датчика всего 1,5 x 1,5 мм. В силу крайне малого размера его не удалось смонтировать на макетной плате. Но датчик был успешно применен в одной из задач и показал себя достойно. Заявленная точность измерений ±0,1 °C в диапазон температур от 20 до 60 °C.

Рисунок 5 - Блок-диаграмма микросхемы SHT4x, источник изображения [4]
Рисунок 5 - Блок-диаграмма микросхемы SHT4x, источник изображения [4]

За покупку микросхемы производитель наградит вас готовой программной библиотекой и необходимыми CAD моделями. Применять такой датчик уместно в микропотребляющих устройствах, SHT4x потребляет всего 0,4 мкА при частоте измерений 1 Гц.

Выводы по датчику SHT4x

  1. Хорошее соотношение цена/характеристики;

  2. Нацелен на микропотребляющие устройства;

  3. Имеется качественная программная библиотека от производителя.

Датчик температуры, влажности и давления BME280

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

Рисунок 6 - Блок-диаграмма микросхемы BME280, источник изображения [5]
Рисунок 6 - Блок-диаграмма микросхемы BME280, источник изображения [5]

Устройство имеет функционал конечного автомата с тремя состояниями: Sleep mode, Forced mode, Normal mode. Режимы отличаются временем в активном состоянии и соответственно энергопотреблением. Для фильтрации показаний давления в микросхеме реализован БИХ-фильтр (IIR - infinite impulse response), т.к. показания датчика давления существенно меняются при незначительных изменениях окружающих факторов. Например, закрытие двери или окна может привести к кратковременному росту показаний.

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

Отдаю должное производителю, в документации содержится исчерпывающая информация по алгоритму вычисления P, H, T и даже приводится число машинных тактов, которые займет расчет на Cortex-M3. Тем не менее с этим датчиком пришлось немного повозиться. Как оказалось, проблема крылась в том, что после инициализации датчик переходит в режим Sleep. Ох уж эти микропотребляющие устройства…

Выводы по датчику BME280:

  1. Уникальный функционал – измерение давление, влажности и температуры одной микросхемой;

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

  3. Самый дорогостоящий датчик среди испытуемых.

Цифровые датчики незаменимы

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

В отличии от 1-Wire (~300 м), шина I2C (~1 м @ 100 кбит/с) не спроектирована для передачи данных на большие расстояния, но и рассмотренные датчики не спроектированы только для измерения температуры. Либо это функция термореле, либо измерение температуры и влажности, а в случае с BME280 ещё и давления. В следующей части представлено сравнение цифровых, а также аналоговых датчиков друг с другом. Наконец мы узнаем, кто хорош только на словах, а кто в деле.

"Сравнение датчиков температуры. Часть 1, аналоговые";

"Сравнение датчиков температуры. Часть 3, практика".

Ресурсы

  1. Документация на микросхему STLM75;

  2. Документация на микросхему DS18B20;

  3. Документация на микросхему AHT20;

  4. Документация на микросхему SHT4x;

  5. Документация на микросхему BME280;

  6. Проверка аналога датчика DS18B20.

Tags:
Hubs:
Total votes 9: ↑8 and ↓1+9
Comments17

Articles