I2C总线数字式温湿度传感器SHT11及其在单片机系统的应用
由于将传感器与电路部分结合在一起,因此,该传感器具有比其它类型的湿度传感器优越得多的性能。首先是传感器信号强度的增加增强了传感器的抗干扰性能,保证了传感器的长期稳定性,而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×10-6
8位:SORH:c1=-4,c2=0.648,c3=-7.2×10-4
(2)温度值输出
由于SHT11温度传感器的线性非常好,故可用下列公式将温度数字输出转换成实际温度值:
T=d1+d2SOT
当电源电压为5V,且温度传感器的分辨率为14位时,d1=-40?d2=0.01,当温度传感器的分辨率为12位时,d1=-40?d2=0.04。
(3)露点计算
空气的露点值可根据相对湿度和温度值来得出,具体的计算公式如下:
LogEW=(0.66077+7.5T/(237.3+T)+[log10(RH)-2]
Dp=[(0.66077-logEW)×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状态寄存器类型及说明