| Главная » Статьи » Как подключить | 
Работа с датчиком влажности 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 , "#.#")
 
 Полный листинг программы можно скачать в конце статьи, там же находиться откомпилированный файл.
 А вот измерения устройством в сравнении с метеостанцией:   
Как видно качество измерений не уступает фирменному аналогу.
 
Еще пара фоток устройства от автора:
   UPD. От сенсирион прикатил еще один конверт с таким же датчиком, так что как появится время выложу свой похожий проект на этой крохе. | |
| Просмотров: 29430 | Комментарии: 16 | Теги: | Рейтинг: 5.0/7 | 
| Всего комментариев: 16 | |||||||||||||||
| 
 
 
 
 
 
 
 
 
 | |||||||||||||||
 авторизация
 
 
 
 рубрики
 
 
 | Проекты [46] | 
| Как подключить [32] | 
| Инструменты [3] | 
| Полезная информация [18] | 
| Объявления [3] | 
 метки
 
 
 



 
  
  Есть у него какие-нибудь аналоги, чтоб не дорого и доступно?
 Есть у него какие-нибудь аналоги, чтоб не дорого и доступно?