您的位置 首页 测评

I2C总线数字式温湿度传感器SHT11及其在单片机体系的使用

摘要:SHT11是瑞士Sensirion公司生产的具有I2C总线接口的单片全校准数字式相对湿度和温度传感器。该传感器采用独特的CMOSens TM技术,具有数字式输出、免调试、免标定、免外围电路及全

摘要:SHT11是瑞士Sensirion公司出产的具有I2C总线接口的单片全校准数字式相对湿度和温度传感器。该传感器选用共同的CMOSens TM技能,具有数字式输出、免调试、免标定、免外围电路及全交换的特色。文中对传感器的功用特色、接口时序与指令进行了详细的论述,给出了SHT11单片机的接口电路及相应程序。 关键词:数字式;温湿度传感器;I2C总线;单片机 1 概述 温湿度的丈量在仓储办理、出产制作、气象观测、科学研究以及日常日子中被广泛运用,传统的模拟式湿度传感器一般都要规划信号调度电路并需求经过杂乱的校准和标定进程,因而丈量精度难以确保,且在线性度、重复性、交换性、一致性等方面往往不尽人意。SHT11是瑞士Sensirion公司推出的根据CMOSensTM技能的新式温湿度传感器。该传感器将CMOS芯片技能与传感器技能结合起来,然后发挥出它们强壮的优势互补效果。 2 功用特色

1.png

SHT11温湿度传感器的首要特性如下: ●将温湿度传感器、信号扩大调度、A/D转化、I2C总线接口悉数集成于一芯片(CMOSensTM技能); ●可给出全校准相对湿度及温度值输出; ●带有工业规范的I2C总线数字输出接口; ●具有露点值核算输出功用; ●具有杰出的长时刻稳定性; ●湿度值输出分辨率为14位,温度值输出分辨率为12位,并可编程为12位和8位; ●小体积(7.65%26;#215;5.08%26;#215;23.5mm),可外表贴装; ●具有牢靠的CRC数据传输校验功用; ●片内装载的校准系数可确保100%交换性; ●电源电压规模为2.4~5.5V; ●电流耗费,丈量时为550μA,平均为28μA,休眠时为3μA。

2.png

SHT11温湿度传感器选用SMD(LCC)外表贴片封装方法,管脚摆放如图1所示,其引脚阐明如下: (1)GND:接地端; (2)DATA:双向串行数据线; (3)SCK:串行时钟输入; (4)VDD电源端:0.4~5.5V电源端; (5~8)NC:空管脚。 3 作业原理 SHT11的湿度检测运用电容式结构,并选用具有不同维护的“微型结构”检测电极体系与聚合物覆盖层来组成传感器芯片的电容,除坚持电容式湿敏器材的原有特性外,还可抵挡来自外界的影响。因为它将温度传感器与湿度传感器结合在一起而构成了一个单一的个别,因而丈量精度较高且可准确得出露点,一起不会发生因为温度与湿度传感器之间随温度梯度改变引起的差错。CMOSensTM技能不只将温湿度传感器结合在一起,并且还将信号扩大器、模/数转化器、校准数据存储器、规范I2C总线等电路悉数集成在一个芯片内。SHT11传感器的内部结构框图如图2所示。 SHT11的每一个传感器都是在极为准确的湿度室中校准的。SHT11传感器的校准系数预先存在OTP内存中。经校准的相对湿度和温度传感器与一个14位的A/D转化器相连,可将转化后的数字温湿度值送给二线I2C总线器材,然后将数字信号转化为契合I2C总线协议的串行数字信号。

3.png

因为将传感器与电路部分结合在一起,因而,该传感器具有比其它类型的湿度传感器优胜得多的功用。首要是传感器信号强度的添加增强了传感器的抗搅扰功用,确保了传感器的长时刻稳定性,而A/D转化的一起完结,则降低了传感器对搅扰噪声的灵敏程度。其次在传感器芯片内装载的校准数据确保了每一只湿度传感器都具有相同的功用,即具有100%的交换性。最终,传感器可直接经过I2C总线与任何类型的微处理器、微控制器体系衔接,然后削减了接口电路的硬件本钱,简化了接口方法。 3.1 输出特性 (1)湿度值输出 SHT11可经过I2C总线直接输出数字量湿度值,其相对湿度数字输出特性曲线如图3所示。由图3可看出,SHT11的输出特性呈必定的非线性,为了补偿湿度传感器的非线性,可按如下公式批改湿度值: RHlinear=c1+c2SORH+c3SORH2 式中,SORH为传感器相对湿度丈量值,系数取值如下: 12位:SORH:c1=-4,c2=0.0405,c3=-2.8%26;#215;10-6 8位:SORH:c1=-4,c2=0.648,c3=-7.2%26;#215;10-4 (2)温度值输出 因为SHT11温度传感器的线性十分好,故可用下列公式将温度数字输出转化成实践温度值: T=d1+d2SOT 当电源电压为5V,且温度传感器的分辨率为14位时,d1=-40d2=0.01,当温度传感器的分辨率为12位时,d1=-40d2=0.04。 (3)露点核算 空气的露点值可根据相对湿度和温度值来得出,详细的核算公式如下: LogEW=(0.66077+7.5T/(237.3+T)+[log10(RH)-2] Dp=[(0.66077-logEW)%26;#215;237.3]/(logEW-8.16077) 3.2 指令与接口时序 SHT11传感器共有5条用户指令,详细指令格局见表1所列。下面介绍一下详细的指令次序及指令时序。 表1 SHT11传感器指令列表 命 令编 码 说 明 丈量温度 00011 温度丈量 丈量湿度 00101 湿度丈量 读寄存器状况 00111 “读”状况寄存器 写寄存器状况 00110 “写”状况寄存器 软发动 11110 重启芯片,铲除状况记载器的过错记载11毫秒后进入下一个指令(1)传输开端 初始化传输时,应首要宣布“传输开端”指令,该指令可在SCK为高时使DATA由高电平变为低电平,并在下一个SCK为高时将DATA升高。 接下来的指令次序包括三个地址位(现在只支撑“000”)和5个指令位,当DATA脚的ack位处于低电位时,标明SHT11正确收到指令。 (2)衔接复位次序 假如与SHT11传感器的通讯中止,下列信号次序会使串口复位:即当DATA线处于高电平时,触发SCK 9次以上(含9次),尔后应接着发一个“传输开端”指令。 表2 SHT11状况寄存器类型及阐明 位类型说 明缺 省  7  保存 0   6 读工检限(低电压查看) X   5  保存 0   4  保存 0   3  只用于实验,不能够运用 0   2 读/写加热 0 关 1 读/写不从OTP重下载 0 重下载 0 读/写 1=8位相对湿度,12位温度分辨率。0=12位相对湿度,14位湿度分辨率 0 12位相对湿度,14位湿度(3)温湿度丈量时序 当宣布了温(湿)度丈量指令后,控制器就要比及丈量完结。运用8/12/14位的分辨率丈量别离需求大约11/55/210ms的时刻。为标明丈量完结,SHT11会使数据线为低,此刻控制器有必要从头发动SCK,然后传送两字节的丈量数据与1字节CRC校验和。控制器有必要经过使DATA为低来承认每一个字节,一切的量均从右算,MSB列于第一位。通讯在承认CRC数据位后中止。假如没有用CRC-8校验和,则控制器就会在丈量数据LSB后坚持ack为高来中止通讯,SHT11在丈量和通讯完结后会主动回来睡觉形式。需求留意的是:为使SHT11的温升低于0.1℃此刻的作业频率不能大于标定值的15%(如:12位准确度时,每秒最多进行3次丈量)。丈量温度和湿度指令所对应的时序如图4所示。 图4 3.3 寄存器装备 SHT11传感器中的一些高档功用是经过状况寄存器来完成的,寄存器各位的类型及阐明见表2所列。下面临寄存器相关位的功用阐明: (1)加热 使芯片中的加热开关接通后,传感器温度大约添加5℃,然后使功耗添加至8mA@5V。加热用处如下: ●经过对发动加热器前后的温、湿度进行比较,能够正确地差异传感器的功用; ●在相对湿度较高的环境下,传感器可经过加热来防止冷凝。 (2)低电压检测 SHT11作业时能够自行检测VDD电压是否低于2.45V,准确度为%26;#177;0.1V。 (3)下载校准系数 为了节约能量并提高速度,OTP在每次丈量前都要从头下载校准系数,然后使每一次丈量节约8.2ms的时刻。 (4)丈量分辨率设定 将丈量分辨率从14位(温度)和12位(湿度)别离减到12位和8位可运用于高速或低功耗场合。

4.png

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运用程序。 #define DATA P1_1 #define SCK P1_0 #define ACK 1 #define noACK 0 #define MEASURE_TEMP 0x03 //丈量温度指令 #define MEASURE_HUMI 0x05 //丈量湿度指令 //读温湿度数据 char s-measure(unsigned char *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;i65535;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=%26;#215;p_humidity; float t=%26;#215;p_temperature; float rh_lin; float th_ture; float t_c; t_c=t%26;#215;0.01-40; rh_lin=c3%26;#215;rh%26;#215;rh+c2%26;#215;rh+c1; trh_ture=(t_c-25)%26;#215;(t1+t2%26;#215;rh)+rh_lin; %26;#215;p_temperature=t-c; %26;#215;p_humidity=rh_ture; } //从相对温度和湿度核算露点 char calc_dewpoint(float h,float t) {float logex,dew_point; logex=0.66077+7.5%26;#215;t/(237.3+t)+[log10(h)-2]; dew_point=(logex-0.66077)%26;#215;237.3/(0.66077+7.5-logex); return dew_point; } 限于篇幅,上述程序中未给出传输开端、写字节数据、读字节数据函数。 6 结束语 SHT11数字式温湿度传感器因为将温度传感器、湿度传感器、信号调度、模/数转化器、标定参数及I2C总线接口悉数集成到传感器内部,因而,既提高了传感器的功用,又降低了本钱、削减了体积,一起也十分便于和微控制器接口,由此可见,该传感器是嵌入式体系温湿度测验的抱负挑选。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/292304.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部