#申请原创#
本次测试计划是尝试做一个多功能时钟,显示当前的温湿度是其中的一项辅助功能,传感器就选用最常见的DHT11,尽管这款传感器的测量范围和精度都有限,但对于家庭使用来说还是绰绰有余的。下图是传感器的介绍资料:
这是一些基本的指标:
这是传感器的性能指标:
这款传感器是单总线数据传输方式,收到主机发出的启动信号后,返回4字节的温温度数据和1字节的校验码:
下面是数据信号的时序要求:
通过高电平持续时间的长短来确定数字0或数字1:
这是封装信息:
传感器的驱动代码借鉴了dql2015大侠的帖子(https://bbs.21ic.com/icview-3119748-1-1.html),下面是测试过程的照片,测试时与我的另一块温湿度传感器评估板进行了比较,差别不大,作为家庭使用精度是绰绰有余的。
下面是我用逻辑分析仪抓取的数据时序图,当主机发出大于20ms的低电平信号后再拉高约20us,传感器便发回测量数据:
这是测量数据的分析:
下面的动画是我用电吹风进行测试,当用电吹风加热传感器时,测得的湿度数值会降低,而温度数值则会增大:
这是DHT11的驱动代码,我是直接通过全局变量数组来传递数据的:
在测试时发现一个问题:我将读取一个字节的函数代码合并在读取数值函数中,读取的数值便会出错,非得独立出一个函数,然后再去调用,才能读取正确的数据,反复测试多次均是如此,具体原因尚不清楚。
|