Применение семпла SHT21
Применение семпла SHT21
Статья тут http://radiokot.ru/konkurs/21/
Температуру отображает вроде нормально. Но не корректно показывает влажность. До 68% показывает как попало, а потом при повышении влажности начинает показывать в обратную сторону.
С датчиком все в порядке - проверено. Проблема в программе.
Температуру отображает вроде нормально. Но не корректно показывает влажность. До 68% показывает как попало, а потом при повышении влажности начинает показывать в обратную сторону.
С датчиком все в порядке - проверено. Проблема в программе.
Re: Применение семпла SHT21
myx писал(а):Статья тут http://radiokot.ru/konkurs/21/
С датчиком все в порядке - проверено. Проблема в программе.
Может датчик надо подержать "в бане", как описано здесь:
http://we.easyelectronics.ru/part/datch ... sht21.html

Жизнь - цепь, а мелочи в ней звенья. Нельзя звену не придавать значения!
-
11VETAL
- Нашел транзистор. Понюхал.
- Сообщения: 191
- Зарегистрирован: Вт авг 30, 2011 09:59:12
- Откуда: ХАРЬКОВ
Re: Применение семпла SHT21
Если есть желание могу выложить свой переделанный код, но под ЖКИ. В бане не выдерживал, но показывает правильно.
В исходнике ошибки.
В исходнике ошибки.
Re: Применение семпла SHT21
Да уж... Честно отдал за эту работу пять лап...
А не начал собирать, т.к. "халява" не пришла. 
Жизнь - цепь, а мелочи в ней звенья. Нельзя звену не придавать значения!
Re: Применение семпла SHT21
NickNI писал(а):myx писал(а):Статья тут http://radiokot.ru/konkurs/21/
С датчиком все в порядке - проверено. Проблема в программе.
Может датчик надо подержать "в бане", как описано здесь:
http://we.easyelectronics.ru/part/datch ... sht21.html
Дело не в выдерживании. Если не подождать некоторое время, то датчик незначительно брешет, что проходит через несколько часов.
Я датчик отключаю от этого проекта и сразу подключаю к другому, в котором все нормально показывает.
С железом все в порядке. Проблема в прошивке!
Re: Применение семпла SHT21
11VETAL писал(а):Если есть желание могу выложить свой переделанный код, но под ЖКИ. В бане не выдерживал, но показывает правильно.
В исходнике ошибки.
Может этот немного исправить?
-
11VETAL
- Нашел транзистор. Понюхал.
- Сообщения: 191
- Зарегистрирован: Вт авг 30, 2011 09:59:12
- Откуда: ХАРЬКОВ
Re: Применение семпла SHT21
тогда разбирайся сам. Вот моя функция измерения влажности:
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
}
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
Кроме проекта с сайта we.easyelectronics.ru/part/datchik-temperatury-i-vlazhnosti-sht21.html (вариант подключения к компу) к сожалению, не видел еще нормально работающего проекта на SHT21.
-
11VETAL
- Нашел транзистор. Понюхал.
- Сообщения: 191
- Зарегистрирован: Вт авг 30, 2011 09:59:12
- Откуда: ХАРЬКОВ
Re: Применение семпла SHT21
myx писал(а):Кроме проекта с сайта we.easyelectronics.ru/part/datchik-temperatury-i-vlazhnosti-sht21.html (вариант подключения к компу) к сожалению, не видел еще нормально работающего проекта на SHT21.
Кто мешает. Сделай сам.
Re: Применение семпла SHT21
Собрал, работает. Температуру врет на +3 градуса, влажность на -20%.
Просьба к автору ввести кнопочку коррекции
Просьба к автору ввести кнопочку коррекции
Re: Применение семпла SHT21
А эту схемку измерителя на SHT21 - http://radiokot.ru/konkurs/11/ никто не собирал?
Как-то странно что оказалось очень похожих две одинаковые работы может их нужно было объединить в одну?
Как-то странно что оказалось очень похожих две одинаковые работы может их нужно было объединить в одну?
Re: Применение семпла SHT21
Что-то не сложилось у меня до сих пор заглянуть сюда.
Отвечаю сразу всем:
У меня показывает нормально и температуру, и влажность. Благо, работаю на фармацевтике и приборов там достаточно.
Я сравнил формулу рачета влажности свою и 11VETAL, разницы НИКАКОЙ, что нетрудно увидеть по исходникам.
Касательно температуры - я не сразу допёр, почему у меня показывал завышенную температуру. Оказалось, не стОит ставить стабилизатор на ту же платку, где и SHT21 чалится. Убрал стаб в корпус, показания стали много лучше. Но, еще одно НО. Для точных показаний датчик не должен быть в "стоячем" воздухе, он, гад такой, все равно нагревается (хоть и на доли градуса). Разместив свой девайс неподалеку от вентиляционной вытяжки, я таки увидел точные показания температуры. Сравнивал с промышленным термометром и термометром на 18В20.
Вот такая ботва.
Возможно, хорошим решением будет подавать на датчик не 3,3, а несколько меньшее напряжение. Например, 3.0. Надо пробовать.
Отвечаю сразу всем:
У меня показывает нормально и температуру, и влажность. Благо, работаю на фармацевтике и приборов там достаточно.
Я сравнил формулу рачета влажности свою и 11VETAL, разницы НИКАКОЙ, что нетрудно увидеть по исходникам.
Касательно температуры - я не сразу допёр, почему у меня показывал завышенную температуру. Оказалось, не стОит ставить стабилизатор на ту же платку, где и SHT21 чалится. Убрал стаб в корпус, показания стали много лучше. Но, еще одно НО. Для точных показаний датчик не должен быть в "стоячем" воздухе, он, гад такой, все равно нагревается (хоть и на доли градуса). Разместив свой девайс неподалеку от вентиляционной вытяжки, я таки увидел точные показания температуры. Сравнивал с промышленным термометром и термометром на 18В20.
Вот такая ботва.
Возможно, хорошим решением будет подавать на датчик не 3,3, а несколько меньшее напряжение. Например, 3.0. Надо пробовать.
КиберКот
Re: Применение семпла SHT21
11VETAL писал(а):Если есть желание могу выложить свой переделанный код, но под ЖКИ. В бане не выдерживал, но показывает правильно.
Выложите исходник если не можно.
Re: Применение семпла SHT21
Уважаемые пожалуйста подскажите как проверить работоспособность датчика sht21
Пишу код на ATmega8 под winavr
пример кода >>
в итоге с датчика ничего не возвращается даже если пытаюсь прочитать регистр настроек
Пишу код на 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;
в итоге с датчика ничего не возвращается даже если пытаюсь прочитать регистр настроек