微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 数字式温湿度传感器SHT11在51单片机系统的应用

数字式温湿度传感器SHT11在51单片机系统的应用

时间:12-28 来源:互联网 点击:

r *p- value, un-signed char *p_checksum, unsigned char mode)

{

unsigned char error=0;

unsigned int i;

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);

return error;

}

//温湿度值标度变换及温度补偿

void calc_sth15(float *p_humidity,float *p_tempera-ture)

{

const float c1=-4.0;

const float c2=0.0405;

const float c3=-0.0000028;

const float t1=-0.01;

const float t2=0.00008;

float rh=×p_humidity;

float t=×p_temperature;

float rh_lin;

float th_ture;

float t_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;

}

//从相对温度和湿度计算露点

char calc_dewpoint(float h,float t)

{float logex,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);

return dew_point;

}

限于篇幅,上述程序中未给出传输开始、写字节数据、读字节数据函数。

6 结束语

SHT11数字式温湿度传感器由于将温度传感器、湿度传感器、信号调理、模/数转换器、标定参数及I2C总线接口全部集成到传感器内部,因此,既提高了传感器的性能,又降低了成本、减少了体积,同时也非常便于和微控制器接口,由此可见,该传感器是嵌入式系统温湿度测试的理想选择。

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

网站地图

Top