数字温湿度传感器应用 第2页 4应用说明
4.1运行条件
测量量程以外的温度会使湿度信号暂时地偏移+3%。然后传感器会慢慢返回到校准条件。若将芯片在湿度小于5%环境下加热24小时到90℃,芯片就会迅速恢复高相对湿度、高温度环境的影响,但是,延长强度条件会加速芯片的老化。
4.2安装注意事项
由于大气的相对湿度与温度的关系比较密切,因此,测量大气温度时的要点是将传感器与大气保持同一温度,如果传感器线路板上有发热元件,SHT11应与热源保持良好的通风,为减少SHT11和PCB之间的热传导,应使铜导线最细并在其中加上窄缝,同时应避免使传感器在强光或UV下曝晒。
传感器在布线时,SCK和DATA信号平行且相互接近,或信号线长于10cm时,均会产生干扰信息,此时应在两组信号之间放置VDD或GND。
5具体应用
图5是AT89C2051单片机与SHT11的接口电路。由于AT89C2051不具备I2C总线接口,故使用单片机通用I/O口线来虚拟I2C总线,并利用P1.0来虚拟数据线DATA,利用P1.1口线来虚拟时钟线,并在DATA端接入一只4.7kΩ的上拉电阻,同时,在VDD及GND端接入一只0.1μF的去耦电容。下面给出与上述硬件电路配套的C51应用程序。
#defineDATAP1_1
#defineSCKP1_0
#defineACK1
#definenoACK0
#defineMEASURE_TEMP0x03//测量温度命令
#defineMEASURE_HUMI0x05//测量湿度命令
//读温湿度数据
chars-measure(unsignedchar*p-value,un-signedchar*p_checksum,unsignedcharmode)
{
unsignedcharerror=0;
unsignedinti;
s_transstart();//传输开始
switch(mode){
case
TEMP:error+=s_write_byte(measure_temp);
break;
case
HUMI:error+=s_write_byte(measure_humi);break;
default:break;
}
for(i=0;i<65535;i++)if(DATA==0)break;
if(DATA)reeor+=1;
*(p_value)=s_read_byte(ACK);
*(p_value+1)=s_read_byte(ACK);
*p_checksum=s_read_byte(noACK);
returnerror;
}
//温湿度值标度变换及温度补偿
voidcalc_sth15(float*p_humidity,float*p_tempera-ture)
{
constfloatc1=-4.0;
constfloatc2=0.0405;
constfloatc3=-0.0000028;
constfloatt1=-0.01;
constfloatt2=0.00008;
floatrh=×p_humidity;
floatt=×p_temperature;
floatrh_lin;
floatth_ture;
floatt_c;
t_c=t×0.01-40;
rh_lin=c3×rh×rh+c2×rh+c1;
trh_ture=(t_c-25)×(t1+t2×rh)+rh_lin;
×p_temperature=t-c;
×p_humidity=rh_ture;
}
//从相对温度和湿度计算露点
charcalc_dewpoint(floath,floatt)
{floatlogex,dew_point;
logex=0.66077+7.5×t/(237.3+t)+[log10(h)-2];
dew_point=(logex-0.66077)×237.3/(0.66077+7.5-logex);
returndew_point;
}
限于篇幅,上述程序中未给出传输开始、写字节数据、读字节数据函数。
6结束语
SHT11数字式温湿度传感器由于将温度传感器、湿度传感器、信号调理、模/数转换器、标定参数及I2C总线接口全部集成到传感器内部,因此,既提高了传感器的性能,又降低了成本、减少了体积,同时也非常便于和微控制器接口,由此可见,该传感器是嵌入式系统温湿度测试的理想选择。ImgLoad(document.getElementById("BodyLabel"));
上一页 [1] [2]
数字温湿度传感器应用 第2页下载如图片无法显示或论文不完整,请联系qq752018766