外设驱动库开发笔记9:SHT1x系列温湿度传感器驱动

本文详细介绍了SHT1x系列温湿度传感器的驱动设计与实现,包括对象定义、初始化、操作方法,以及如何获取温湿度数据。通过实际应用验证了驱动的有效性。

在我们的产品中,经常需要检测温湿度数据。有很多检测温湿度的方法和模块,其中SHT1x系列温湿度传感器就是一种成本较低使用方便的温湿度检测模块。下面我们就来说一说如何实现SHT1x系列温湿度传感器的驱动。

1、功能概述

SHT1x包括 SHT10 SHT11 SHT15 属于Sensirion温湿度传感器家族中的贴片封装系列。传感器将传感元件和信号处理电路集成在一块微型电路板上,输出完全标定的数字信号。

1.1、硬件描述

SHT1x传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与14 位的A/D 转换器以及串行接口电路实现无缝连接。其引脚定义如下:

SHT1x温湿度传感器使用的2线通讯,类似于I2C总线,但并不相同,使用普通的GPIO就可实现通讯。此次采用STM32F103VET6来操作SHT15,具体的连接方式如下:

SCK 用于微处理器与SHT1x 之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SCK 频率。

DATA 引脚为三态结构,用于读取传感器数据 . 当向传感器发送命令时, DATA SCK 上升沿有效且在 SCK 高电平时必须保持稳定。 DATA SCK 下降沿之后改变。为避免信号冲突,微处理器应驱动DATA 在低电平。需要一个外部的上拉电阻(例如:10kΩ)将信号提拉至高电平。上拉电阻通常已包含在微处理器的I/O 电路中。

1.2、数据通讯

选择供电电压后将传感器通电,上电速率不能低于1V/ms。通电后传感器需要11ms 进入休眠状态,在此之前不允许对传感器发送任何命令。

SHT1x温湿度传感器采用一组启动传输时序,来完成数据传输的初始化。而后续命令包含三个地址位(目前只支持000”),和五个命令位。SHT1x 会以下述方式表示已正确地接收到指令:在第8 SCK 时钟的下降沿之后,将DATA 下拉为低电平(ACK 位)。在第9 SCK 时钟的下降沿之后,释放DATA(恢复高电平)。SHT1x温湿度传感器的指令表如下:

后续我们开发SHT1x温湿度传感器的驱动时,就是通过这些操作命令来实现不同的操作。

1.3、数据计算

湿度的测量数据并不是一个线性变化的过程湿度的非线性,为获得更为精确的测量数据,我们一般要采用非线性补偿公式进行信号转换。湿度的非线性补偿公式及参数如下:

一般来说,传感器湿度的校准都是在一定的参考温度下进行的,但在我们的使用过程中,实际温度与测试参考温度25℃ (~77℉)明显是不同的,所以我们需要对实际的湿度数据进行补偿。湿度的温度补偿公式及系数如下:

SHT1x系列温湿度传感器的温度传感器采用的能隙材料PTAT。而能隙材料PTAT一般与绝对温度存在正比关系,因而温度传感器具有极好的线性。可用如下公式将数字输出(SOT)转换为温度值,温度转换系数如下:

SHT1x 并不直接进行露点测量,但露点可以通过温度和湿度读数计算得到.。由于温度和湿度在同一块集成电路上测量,SHT1x可测量露点。露点的计算方法很多,绝大多数都很复杂。 对于-40 – 50°C 温度范围的测量,通过下面的的公式可得到较好的精度。

通过上述几个公式就可以计算出SHT1x

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值