Работа с датчиком влажности SHT21

Вместо предисловия

Эта статья должна была быть опубликована аж 4 месяца назад, но по непонятным мне причинам, попавший ко мне образец датчика, отказался нормально работать и поэтому он был заброшен в долгий ящик. К счастью, со временем подтянулся народ и появилась возможность проверить написанный код с другими датчиками. Поэтому выражаю огромную благодарность пользователю Civil c форума http://bascomavr.3bb.ru, который поделился своими результатами и своим устройством, описанным ниже.

 Не так давно, с пол года назад, компания Sensirion рассылала бесплатные образцы новейших датчиков влажности SHT21. И как бывает в таких случаях, производитель предоставил возможность получить образцы этих датчиков совершенно бесплатно. За более чем полгода, многие успели урвать эту кроху, в том числе и я. Несмотря на крошечные размеры корпуса микросхемы (3х3х1,1 мм), вытравить под нее плату, а тем более запаять, проще простого. ЛУТ и простой паяльник справляются на ура.

 С ведущим контроллером датчик общается по протоколу i2c, и для работы необходимы всего лишь пару внешних резисторов и один керамический конденсатор по питанию. Адрес датчика на шине и2ц фиксирован и имеет значение &h80. Примеры как работать с периферией по протоколу I2C можно глянуть на основе этого или вот этого. Сам метод работы с датчиком и рабочие команды описывать не буду, так как есть отличная и интересная статья от товарища dcoder с сообщества easyelectronics.ru, посвященная описанию датчика.  

 Схема устройства приведена ниже, используются семисегментные индикаторы RL-D5623 YCAW с общим анодом. Тактирование микроконтроллера происходит от внутреннего RC генератора настроенного на 8 МГц. Питать датчик рекомендуется напряжением 3,6 В, но если подать на него 5 В датчик продолжит работу. Производитель крайне не рекомендует этого делать, так как срок службы резко сокращается (разрушается активный слой внутри датчика).

 Фрагмент кода для работы с датчиком. Здесь происходит считывание влажности и температуры с последующим преобразованием согласно формулам из даташита. Работа с датчиком происходит в нормальном  (slave) режиме, тоесть во время измерения датчик не прижимает линию CSL к земле:

‘считывание температуры

I2cstart

I2cwbyte &H80                       ‘адрес микросхемы-датчика SHT21

I2cwbyte &HE3                       ‘выбор измерения T в нормальном режиме

Waitms 100                          ‘измерение

I2cstart

I2cwbyte &H81                       ‘чтение результата измерения

I2crbyte Data1 , Ack               ‘прием старшего байта, ждем слудующий байт

I2crbyte Data2 , Ack               ‘прием младшего байта

I2crbyte Crc , Nack                ‘прием байта контрольной суммы (можно на него забить)

I2cstop                             ‘конец общения

Dataw = Data1

Shift Dataw , Left , 8

Dataw = Dataw + Data2

T = Dataw * 175.72

T = T / 65536

T = T – 46.85

‘считывание влажности

I2cstart

I2cwbyte &H80                    ‘адрес микросхемы-датчика SHT21

I2cwbyte &HE5                    ‘выбор измерения влажности в нормальном режиме

Waitms 100                       ‘измерение

I2cstart

I2cwbyte &H81                    ‘чтение результата измерения

I2crbyte Data1 , Ack             ‘прием старшего байта, ждем слудующий байт

I2crbyte Data2 , Ack             ‘прием младшего байта

I2crbyte Crc , Nack              ‘прием байта контрольной суммы

I2cstop                           ‘конец общения

Dataw = Data1

Shift Dataw , Left , 8

Dataw = Dataw + Data2

H = Dataw * 125

H = H / 65536

H = H – 6

Print ”  T ” ; Fusing(t , “#.##”) ; ”   H ” ; Fusing(h , “#.#”)

 Полный листинг программы можно скачать в конце статьи, там же находиться откомпилированный файл.

А вот измерения устройством в сравнении с метеостанцией:

  Как видно качество измерений не уступает фирменному аналогу.

 Скачать исходники, файл прошивки и файл печатной платы в формате .lay

Еще пара фоток устройства от автора:

             

  UPD. От сенсирион прикатил еще один конверт с таким же датчиком, так что как появится время выложу свой похожий проект на этой крохе.


Взято с: avrproject.ru


Категория: AVR
Метки:

Написать коментарий

*
= 3 + 6

Добавить изображение

Последние статьи