|
|
  |
SHT21 (Модуль GY-21) на ATMega8, Точностть показаний |
|
|
|
Nov 21 2016, 11:14
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980

|
Привет всем. Вот обзавёлся этим датчиком и решил заменить им старый добрый проверенный HIH-3610 (аналоговый датчик влажности с выходом на АЦП), но сдохший к великому сожалению  . В конечный прибор пока не вставлял, в целях тестирования/отладки подключил его к отдельной меге8@16MHz. Результаты для простоты гоню на USART и далее в комп. На базе примеров из интернета написал функции для работы с этим датчиком. Использую ногодрыг, т.к. в конечном устройстве на меге8 ноги аппаратного i2C заблокированы АЦП (там ещё MPX6115A висит). Это не STM32  ... Датчик запустился в общем-то без проблем, данные с него приходят исправно, но, на мой взгляд, немного странные. Например: Цитата Temp=24.54; Hum=28.76 Temp=24.55; Hum=28.58 Temp=24.55; Hum=28.45 Temp=24.54; Hum=28.30 Temp=24.53; Hum=28.18 Temp=24.51; Hum=28.15 Temp=24.51; Hum=28.12 Temp=24.51; Hum=28.03 Temp=24.50; Hum=27.91 Temp=24.51; Hum=27.87 Temp=24.54; Hum=27.97 Temp=24.56; Hum=27.97 Temp=24.57; Hum=27.91 Temp=24.57; Hum=28.15 Temp=24.58; Hum=28.18 Замеры раз в секунду. В 30 см от него лежит DS18B20, показывает ~22 градуса. Если долго держать включённым, температура медленнно но повышается. это нормально? В целом вопрос теоретический, у меня прибор сам вырубается через 10 сек после включения. А вот влажность какая-то пониженная. Эталона у меня, правда, нет, но когда HIH-3610 был в норме, он 30% даже в жару не показывал... И ещё вопрос. По стандарту I2C вначале положено передавать адрес девайса. В некоторых примерах под ардуину я видел передачу этого адреса. Но когда я это делаю, оно где-то виснет (не разбирался где). Но у меня нет доверия к ардуино-примерам, т.к. там значения из датчика везде делят на 65535, хотя по доке на SHT21 там разрешения 16 бит нигде нет, для температуры максимум 14 бит, для влажности - 12. Я также не припаял pull-up резюки к ногам. Для этого модуля они вроде не нужны. Или я ошибаюсь? Кто-то может помочь? Код для CvAVR приложил. Сам датчик полностью адекватный - кладу палец - температура повышается (кстати и влажность тоже  ), открываю окно (идёт холодный воздух) - понижается. подышу на него - влажность увеличивается. Снимаю эти воздействия - показания возвращаются обратно. Спасибо.
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
|
Nov 21 2016, 13:34
|
Группа: Участник
Сообщений: 13
Регистрация: 18-04-05
Пользователь №: 4 250

|
Я нe работал с SHT11, но когда-то изучал. Цитата И ещё вопрос. По стандарту I2C вначале положено передавать адрес девайса. В некоторых примерах под ардуину я видел передачу этого адреса. Цитата из DataSheet-а: "The sensor cannot be addressed by I2C protocol; however, the sensor can be connected to an I2C bus without interference with other devices connected to the bus. The controller must switch between the protocols." Цитата Я также не припаял pull-up резюки к ногам. На коротком расстоянии можно пользоваться внутреннюю подтяжку на линии потра АВР, но надеяться на неё не стоит, и лучше подтянуть резистром в 10КОм.
|
|
|
|
|
Nov 21 2016, 14:39
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980

|
Цитата(Obam @ Nov 21 2016, 16:25)  Вот чуток инфы с we.easyelectronix.ru
SHTxx_Design_Guide.zip ( 1.69 мегабайт )
Кол-во скачиваний: 88лишней думаю не будет. Да, спасибо. я видел кое-где упоминания этой доки, но все ссылки были битые  Цитата(ivn @ Nov 21 2016, 16:34)  На коротком расстоянии можно пользоваться внутреннюю подтяжку на линии потра АВР, но надеяться на неё не стоит, и лучше подтянуть резистром в 10КОм. Резюки припаяю ... хз. У меня расстояние между датчиком и процом максимум 5 см (если мерять по длине проводка).
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
|
Nov 27 2016, 17:01
|

Местный
  
Группа: Свой
Сообщений: 397
Регистрация: 3-12-09
Из: Россия, Москва
Пользователь №: 54 040

|
Цитата(hd44780 @ Nov 21 2016, 14:14)  Но у меня нет доверия к ардуино-примерам, т.к. там значения из датчика везде делят на 65535, хотя по доке на SHT21 там разрешения 16 бит нигде нет, для температуры максимум 14 бит, для влажности - 12. ну если ардуинам не верите, то даташит Вы читали?  там пишут, что датчик отдаёт данные всегда в 16-битном формате, только, к примеру, для 12-битного разрешения младшие 4 бита не считаются (и лучше их после приёма принудительно сбросить, так бит 1 указывает на тип данных 0 - температура, 1 - влажность). и формула из даташита H = -6 + 125*<16-bits_data>/65536 немного не совпадает с тем, что у Вас в исходниках: return -6.0F + 125.0F*(float)hum_raw/4096.0F;
|
|
|
|
|
Nov 27 2016, 17:41
|

Частый гость
 
Группа: Свой
Сообщений: 158
Регистрация: 15-10-07
Из: Й-Ола
Пользователь №: 31 376

|
Цитата(hd44780 @ Nov 21 2016, 14:14)  Датчик запустился в общем-то без проблем, данные с него приходят исправно, но, на мой взгляд, немного странные. Если данные более-менее адекватные, значит с ПО все в порядке, а далее начинается "магия". Любой датчик температуры (влажности) показывает температуру (влажность) самого себя и уже ваша проблема заставить его показывать температуру (влажность) среды, которую вы хотите  .
|
|
|
|
|
Nov 28 2016, 12:49
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980

|
Цитата(RabidRabbit @ Nov 27 2016, 20:01)  ну если ардуинам не верите, то даташит Вы читали?  там пишут, что датчик отдаёт данные всегда в 16-битном формате, только, к примеру, для 12-битного разрешения младшие 4 бита не считаются (и лучше их после приёма принудительно сбросить, так бит 1 указывает на тип данных 0 - температура, 1 - влажность). и формула из даташита H = -6 + 125*<16-bits_data>/65536 немного не совпадает с тем, что у Вас в исходниках: return -6.0F + 125.0F*(float)hum_raw/4096.0F; ну ДШ я читал  Но там тоже, извините, лажа. В разделе 6, в формулах (!) указано 16 бит, в разделе 5.6 - 12 и 14 бит, в разделе 9, самая последняя страница - вообще 2^RES Я пытался писать формулы из расчёта RES=16, получил температуру типа -86 градусов в комнате, и такую же ахинейскую влажность. Кстати RES=16 -- брал из ардуины. интересно, как оно там работает? Когда вписал 12 и 14 -значения стали более-менее правдоподобные. А из датчика я всегда 2 байта забираю. M_Andrey, а как же рассказы про заводскую калибровку? Все врут, все врут ...
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
|
Nov 28 2016, 16:08
|

Частый гость
 
Группа: Свой
Сообщений: 158
Регистрация: 15-10-07
Из: Й-Ола
Пользователь №: 31 376

|
А при чем тут калибровка. Может у вас датчик что-то греет. Цитата(hd44780 @ Nov 21 2016, 14:14)  Замеры раз в секунду. В 30 см от него лежит DS18B20, показывает ~22 градуса. Если долго держать включённым, температура медленнно но повышается. это нормально? А вот влажность какая-то пониженная. Может сама схема, а может горячий воздух из ноута, например  .
|
|
|
|
|
Dec 14 2016, 14:25
|
Частый гость
 
Группа: Свой
Сообщений: 119
Регистрация: 21-09-09
Из: Москва
Пользователь №: 52 501

|
Цитата А вот влажность какая-то пониженная. Эталона у меня, правда, нет, но когда HIH-3610 был в норме, он 30% даже в жару не показывал... Зимой в помещениях с отоплением влажность всегда ниже чем это бывает в теплое время года. Вам ещё повезло, что целых 28-29%. У меня на работе всего 15-17% (на улице -10°C) в лучше случае, если верить AM2302. Могу скинуть свои логи, на которых хорошо видно как проседает влажность, когда кто-то запускает воздух с улицы в комнату, даже после того как температура восстановится до номинальной. Цитата Если долго держать включённым, температура медленнно но повышается. это нормально? В каком диапазоне меняется температура? Даже если у вас датчик находится внутри изолированной термокамеры - температура может спокойно плавать в небольшом диапазоне. Ну и конечно - может быть саморазогрев чипа .
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|