![]() |
![]() |
|||||||||||||||
О сенсоре температуры/влажности Si7005
Автор: Сергей Безруков (aka Ser60) В радиолюбительской литературе уже неоднократно публиковались конструкции, используюшие цифровые сенсоры температуры и влажности. Такие сенсоры обеспечивают высокую точность измерений и не требуют калибровки. Большинство таких конструкций основано на сенсорах фирмы Sensirion SHT-21, присутствующих на рынке с 2010, или их более старых, но более дорогих, предшественниках SHT-15. Сенсоры эти работают замечательно, однако стоят недешево. Я уже рассказывал об их альтернативе HIH-6130 фирмы Honeywell, появившихся весной 2012, которые почти в 2 раза дешевле (https://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) и без него. Этот фильтр предохраняет сенсор от пыли и конденсации влаги на чувствительном элементе при работе сенсора в экстремальных условиях. Цена сенсоров немного различается в зависимости от указанных опций. Вот как выглядят эти сенсоры с фильтром и без него. Особенностью сенсора является встроенный подогреватель, который помогает избавиться от конденсации влаги на измерительном конденсаторе, влияющей на точность показаний. Подогреватель способен повысить температуру внутреннего пространства сенсора на 5°С по сравнению с температурой окружающей среды. Другой особенностью является отсутствие режима сна с низким токопотреблением. Для достижения последнего рекомендуется коммутировать питание сенсора с вывода управляющего МК – в режиме измерения сенсор потребляет около 240 - 320 мкА и ему нужно всего около 10 мсек для выхода на рабочий режим после подачи питания. Столько-же времени нужно для активизации сенсора через вывод CS. Я так и не понял зачем он вообще нужен, и на тестовой плате я его просто заземлил. Для тестирования использовалась следующая схема. Обработка данных сенсора температуры достаточна простая и особенностей не имеет. Однако, обработка показаний влажности требует больше вычислений по сравнению с 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% от двух других датчиков при комнатной температуре, что находится в пределах точности этих датчиков.
Файлы: Все вопросы в Форум.
|
|
|||||||||||||||
![]() |
![]() |


![]() |
![]() |
|||
|
||||
![]() |
![]() |