微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > HDC1080 湿度转化数值差别较大

HDC1080 湿度转化数值差别较大

时间:10-02 整理:3721RD 点击:

        我使用HDC1080测量温湿度,传感器放在了电路板的边缘,温度测量数值还基本可以,与其它标准仪表相差1度左右,但是湿度就比较离谱了。我在北京的室内,开着暖气和空调,使用HDC1080测量相对湿度只有3%左右,而victor 231仪表测量的湿度产不多15%,基本真实。用最哈一口气,HDC1080测量相对湿度达到99%。感觉湿度测量的不太正常啊。我们测试的10台设备全部如此,求帮助。

       我每次触发采集后50ms才开始读取数据,应该没有什么问题。下面是我的代码。

void Init_HDC1080()
{
u16 DA_W_DATA;
u8 i2c_array[4];
DA_W_DATA = 0x9000;//0x2000;
i2c_array[0] = (u8)(DA_W_DATA>>8);
i2c_array[1] = (u8)(DA_W_DATA);
SendData_2(0x80, 0x02, NON_H, i2c_array, 2);
_delay_ms(5);
DA_W_DATA = 0x3000;//0x2000;
i2c_array[0] = (u8)(DA_W_DATA>>8);
i2c_array[1] = (u8)(DA_W_DATA);
SendData_2(0x80, 0x02, NON_H, i2c_array, 2);
_delay_ms(5);
}

void Trigger_HDC1080()
{
u16 DA_W_DATA;
u8 i2c_array[4];
DA_W_DATA = 0x1000;
i2c_array[0] = 0x00;
Trigger_Humidity_Temperature(0x80, 0x00, NON_H, i2c_array, 1);
_delay_ms(200);
}

u16 Read_HDC1080()
{
u16 DA_W_DATA;
u8 i2c_array[4];
Read_Humidity_Temperature(0x80, 0x00, NON_H, i2c_array, 4);
Temp_float = ((float)(((u16)i2c_array[0]<<8)+i2c_array[1])/65535.0)*165.0 - 40.0;
Temp_uint16 = ((u16)i2c_array[0]<<8)+i2c_array[1];
Humidity_float = ((float)(((u16)i2c_array[2]<<8)+i2c_array[3])/65535.0)*100.0;
return 0;
}

推荐HDC1080测量湿度的范围为 10% ~ 70% RH,是不是没在这个范围之内导致误差较大?

你好! 本人最近也在调试HDC1080,但是初始化一直不成功,看了官方资料,发现上面写的有点模糊(可能我水平问题,不能很好的理解),能否用你的初始化作为参考?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top