Например TDA7294

РадиоКот > Схемы > Цифровые устройства > Измерительная техника

О сенсоре температуры/влажности Si7005

Автор: Сергей Безруков (aka Ser60)
Опубликовано 15.01.2013.
Создано при помощи КотоРед.

В радиолюбительской литературе уже неоднократно публиковались конструкции, используюшие цифровые сенсоры температуры и влажности. Такие сенсоры обеспечивают высокую точность измерений и не требуют калибровки. Большинство таких конструкций основано на сенсорах фирмы Sensirion SHT-21, присутствующих на рынке с 2010, или их более старых, но более дорогих, предшественниках SHT-15. Сенсоры эти работают замечательно, однако стоят недешево. Я уже рассказывал об их альтернативе HIH-6130 фирмы Honeywell, появившихся весной 2012, которые почти в 2 раза дешевле (http://radiokot.ru/circuit/digital/home/135/). Однако, у них более узкий температурный диапазон работы (-25 - 85°С против -40 – 125°С), зато более широкий диапазон напряжения питания (2.3 – 5.5В против 2.1 – 3.6В).

В конце октября 2012 фирма Silicon Laboratories внесла свой вклад в эту тему, выпустив сенсор Si7005 с I2C интерфейсом, цена которого составляет почти треть от таковой для SHT-21. О нем и пойдет речь в этой статье. Диапазон питания сенсоров 2.1 – 3.6В и они выпускаются в двух модификациях: для положительных температур (0 - 70°С, с суффиксом FM в идентификаторе ) и промышленного диапазона температур (-40 - +85°С, с суффиксом GM). Более того, обе разновидности выпускаются с установленным фильтром на корпусе (модели с суффиксами FM1 и GM1) и без него. Этот фильтр предохраняет сенсор от пыли и конденсации влаги на чувствительном элементе при работе сенсора в экстремальных условиях. Цена сенсоров немного различается в зависимости от указанных опций. Вот как выглядят эти сенсоры с фильтром и без него.


Сенсоры выпускаются в корпусе QFN-24 размера 4×4мм и являются промежуточными по габаритам среди упомянутых. Из 24-х выводов корпуса задействовано всего 9, подложку корпуса можно не припаивать на общий провод. Интересно, что I2C интерфейс сенсора снабжен выводом CS, который при подаче на него напряжения питания делает интерфейс неактивным.

Особенностью сенсора является встроенный подогреватель, который помогает избавиться от конденсации влаги на измерительном конденсаторе, влияющей на точность показаний. Подогреватель способен повысить температуру внутреннего пространства сенсора на 5°С по сравнению с температурой окружающей среды. Другой особенностью является отсутствие режима сна с низким токопотреблением. Для достижения последнего рекомендуется коммутировать питание сенсора с вывода управляющего МК – в режиме измерения сенсор потребляет около 240 - 320 мкА и ему нужно всего около 10 мсек для выхода на рабочий режим после подачи питания. Столько-же времени нужно для активизации сенсора через вывод CS. Я так и не понял зачем он вообще нужен, и на тестовой плате я его просто заземлил. Для тестирования использовалась следующая схема.


Для простоты я не коммутировал питание сенсора. Индикация показаний производилась на 14-сегментном ЖКИ, управляемым драйвером CP2401, также производимым фирмой Silicon Labs. Подробнее об этом драйвере можно прочитать в моей статье http://we.easyelectronics.ru/part/ob-ispolzovanii-drayvera-zhki-cp2401.html . Вот как выглядит весь проект на монтажке при измерении температуры и влажности, соответственно:





Обработка данных сенсора температуры достаточна простая и особенностей не имеет. Однако, обработка показаний влажности требует больше вычислений по сравнению с SHT-21 или HIH-6130 и напоминает таковую для сенсора SHT-15. Именно, сначала следует считать «сырые» показания влажности RH из сенсора, затем линеаризовать их, используя формулу (см. ДШ)

RHlin  = RH + 0.00393·RH2 – 0.4008·RH + 4.7844,

и в заключении произвести термо-компенсацию показаний по формуле

RHt = RHlin + (T – 30)×(RHlin·0.00237 + 0.1973),

где T – температура окружающей среды. Как показывают графики ниже, линеаризацию и термо-компенсацию имеет смысл производить, т.к. иначе показания сенсора будут завышенными. Красной линией показаны «сырые» показания сенсора, зеленой – линеаризованные, а синей – линеаризованные и термо-компенсированные при температуре 20°С.



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

RHlin·105 = RH·(59920 - RH·393) + 478440,

RHt·105 = (RHlin·105) + (T – 30)·((RHlin·105)·0.00237 + 19730).

Из полученного числа RHt·105 следует извлечь 2 старших десятичных знака для индикации влажности на дисплее как целое число. Небольшая «хитрость» использована для умножения на 0.00237 во второй формуле. Именно, в шестнадцатиричной системе эта дробь записывается как 0.009B52. Поэтому, умножив вычисленную по первой формуле величину RHlin·105 на 39762 (десятичный эквивалент числа 9B52), получим результат, в котором последние 24 бита образуют дробную часть. Без существенной потери точности можно отбросить посление 16 бит дробной части и после умножения на (T – 30) округлить результат отбросив последние 8 бит. Эффективное умножение в прилагаемой программе получено за счет использования МК со встроенным 32×32-бит аппаратным перемножителем.

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


Файлы:
Исходник


Все вопросы в Форум.


ID: 1459

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

57 1
1
Подробно