Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Пн сен 11, 2017 13:20:10
Доброго дня, помогите пожалуйста, собираю термометр на SHT21,при повышении температуры, влажность падает. Наверное надо учитывать температуру при расчетах влажности.
Подскажите как убрать зависимость показаний влажности от колебаний .
Такое впечатление, что чем большая влажность фактичиске - тем менше показивает датчик. (в комнате показывает 60, во влажной банке с водой - 38)
вот функции расчетов:
char tmp, tmp1,drob,hum,hum1
void get_humidity(void)
{
float h;
hum=0;
while (hum==0) {hum=i2c_start();}
i2c_write(0x80);
i2c_write(0xF5);
i2c_stop();
delay_ms(100);
i2c_start();
i2c_write(0x81);
hum=i2c_read(1);
hum1=i2c_read(1);
i2c_read(0);
i2c_stop();
#pragma warn-
h=(tmp*256)+tmp1;
h=(t/65536)*125-6;
#pragma warn+
tmp=abs(t);
}
void _temp(void)
{
float t;
tmp=0;
while (tmp==0) tmp=i2c_start();
i2c_write(0x80);
i2c_write(0xF3);
i2c_stop();
delay_ms(100);
i2c_start();
i2c_write(0x81);
tmp=i2c_read(1);
tmp1=i2c_read(1);
i2c_read(0);
i2c_stop();
#pragma warn-
t=(tmp*256)+tmp1;
t=(t/65536)*175.72-46.85;
#pragma warn+
tmp=abs(t);
drob=abs((t-tmp)*10);
}