Страница 1 из 1
Применение семпла SHT21
Добавлено: Сб окт 01, 2011 00:41:22
myx
Статья тут
http://radiokot.ru/konkurs/21/
Температуру отображает вроде нормально. Но не корректно показывает влажность. До 68% показывает как попало, а потом при повышении влажности начинает показывать в обратную сторону.
С датчиком все в порядке - проверено. Проблема в программе.
Re: Применение семпла SHT21
Добавлено: Сб окт 01, 2011 09:03:12
NickNI
Может датчик надо подержать "в бане", как описано здесь:
http://we.easyelectronics.ru/part/datch ... sht21.html 
Re: Применение семпла SHT21
Добавлено: Сб окт 01, 2011 09:07:26
11VETAL
Если есть желание могу выложить свой переделанный код, но под ЖКИ. В бане не выдерживал, но показывает правильно.
В исходнике ошибки.
Re: Применение семпла SHT21
Добавлено: Сб окт 01, 2011 09:16:44
NickNI
Да уж... Честно отдал за эту работу пять лап...

А не начал собирать, т.к. "халява" не пришла.

Re: Применение семпла SHT21
Добавлено: Сб окт 01, 2011 11:37:46
myx
Дело не в выдерживании. Если не подождать некоторое время, то датчик незначительно брешет, что проходит через несколько часов.
Я датчик отключаю от этого проекта и сразу подключаю к другому, в котором все нормально показывает.
С железом все в порядке. Проблема в прошивке!
Re: Применение семпла SHT21
Добавлено: Сб окт 01, 2011 11:39:40
myx
11VETAL писал(а):Если есть желание могу выложить свой переделанный код, но под ЖКИ. В бане не выдерживал, но показывает правильно.
В исходнике ошибки.
Может этот немного исправить?
Re: Применение семпла SHT21
Добавлено: Сб окт 01, 2011 12:01:23
11VETAL
тогда разбирайся сам. Вот моя функция измерения влажности:
void humm(void)
{ unsigned int h_1;
float h;
char rh=0;
char drob_rh=0;
i2c_start();
i2c_write(0x80); //команда записи
i2c_write(0xE5); //режим HOLD для влажности
i2c_start();
i2c_write(0x81); //команда чтения
delay_ms(40);
h_1=i2c_read(1); // read msb
h_1=h_1<<8; //сдвигаем считаный байт на 8 бит
h_1|=i2c_read(0); // read lsb и выполняем побитное или со значением h_1
//присваиваем полученное значение h_1
i2c_stop();
h_1&= ~0x0003; //очищаем последние 2 бита
h= (-6+(h_1/524.288));
rh=abs(h);
drob_rh=abs((h-rh)*10);
sprintf(lcd_buffer,"RH=%+2u.%u%% ",rh,drob_rh); //записуемв масив для экрана
lcd_gotoxy (0,1);
__print_lcd(lcd_buffer); //выводим масив на LCD
}
Re: Применение семпла SHT21
Добавлено: Вс окт 09, 2011 23:06:45
myx
Кроме проекта с сайта we.easyelectronics.ru/part/datchik-temperatury-i-vlazhnosti-sht21.html (вариант подключения к компу) к сожалению, не видел еще нормально работающего проекта на SHT21.
Re: Применение семпла SHT21
Добавлено: Вс окт 09, 2011 23:24:41
11VETAL
myx писал(а):Кроме проекта с сайта we.easyelectronics.ru/part/datchik-temperatury-i-vlazhnosti-sht21.html (вариант подключения к компу) к сожалению, не видел еще нормально работающего проекта на SHT21.
Кто мешает. Сделай сам.

Я же предлагал свой вариант. Тебе не нужен.

Re: Применение семпла SHT21
Добавлено: Пн окт 24, 2011 08:52:33
Rombor
Собрал, работает. Температуру врет на +3 градуса, влажность на -20%.
Просьба к автору ввести кнопочку коррекции
Re: Применение семпла SHT21
Добавлено: Пн окт 24, 2011 12:49:03
Tugarin
А эту схемку измерителя на SHT21 -
http://radiokot.ru/konkurs/11/ никто не собирал?
Как-то странно что оказалось очень похожих две одинаковые работы может их нужно было объединить в одну?
Re: Применение семпла SHT21
Добавлено: Пт ноя 18, 2011 20:53:02
ewgeny7
Что-то не сложилось у меня до сих пор заглянуть сюда.
Отвечаю сразу всем:
У меня показывает нормально и температуру, и влажность. Благо, работаю на фармацевтике и приборов там достаточно.
Я сравнил формулу рачета влажности свою и 11VETAL, разницы НИКАКОЙ, что нетрудно увидеть по исходникам.
Касательно температуры - я не сразу допёр, почему у меня показывал завышенную температуру. Оказалось, не стОит ставить стабилизатор на ту же платку, где и SHT21 чалится. Убрал стаб в корпус, показания стали много лучше. Но, еще одно НО. Для точных показаний датчик не должен быть в "стоячем" воздухе, он, гад такой, все равно нагревается (хоть и на доли градуса). Разместив свой девайс неподалеку от вентиляционной вытяжки, я таки увидел точные показания температуры. Сравнивал с промышленным термометром и термометром на 18В20.
Вот такая ботва.
Возможно, хорошим решением будет подавать на датчик не 3,3, а несколько меньшее напряжение. Например, 3.0. Надо пробовать.
Re: Применение семпла SHT21
Добавлено: Чт дек 08, 2011 23:27:04
foxit
11VETAL писал(а):Если есть желание могу выложить свой переделанный код, но под ЖКИ. В бане не выдерживал, но показывает правильно.
Выложите исходник если не можно.
Re: Применение семпла SHT21
Добавлено: Вс фев 12, 2012 08:57:47
nkrk
Уважаемые пожалуйста подскажите как проверить работоспособность датчика sht21
Пишу код на ATmega8 под winavr
пример кода >>
Код: Выделить всё
unsigned char ret1 = 0, ret2 = 0;
s = i2c_start(0x80); // set device address and write mode
if ( s ) {
/* failed to issue start condition, possibly no device found */
i2c_stop();
}else {
/* issuing start condition ok, device accessible */
i2c_write(0xF5); // получить влажность
i2c_stop(); // set stop conditon = release bus
s = i2c_start( 0x81 ); // set device address and read mode
_delay_ms(100);
i2c_rep_start( 0x81 ); // set device address and read mode
ret1 = i2c_readAck(); // read one byte
ret2 = i2c_readAck(); // read one byte
i2c_readNak(); // read one byte
i2c_stop();
ret = ret1;
}
return ret;
в итоге с датчика ничего не возвращается даже если пытаюсь прочитать регистр настроек