模块的作用和特点
模块的作用和特点
模块的作用是测量环境的温度,相对湿度,特点如下:
(1)测量湿度的范围:20%~95%,误差±5%
(2)测量温度的范围:0~50℃,误差±2℃
(3)工作电压:3.3~5.5V
(4)输出形式:数字输出
(5)模块的引脚: VCC、 GND、 DO
(6)模块图片如下:
2、通信方式以及通信过程
(1).与单片机的通信采用的是单总线通信方式,即只用一根数据线就可以实现数据的双向传输,模块的数据引脚是DO引脚。
通信过程:从时序图就可以清晰的看出模块与单片机的通信过程,时序图如下:
过程:主机发送起始信号--->DHT11 检测到并 发送响应信号--->DHT11 发送 40 位数据(高位先出)--->DHT11 发送结束信号。
(2).各个阶段所需时间:
(3) .数字0和数字1的表示
每一位数据都是以50us低电平开始,高电平的时间长短决定了该位表示0还是表示1.
数字0时序如下:
数字1时序如下:
3、数据格式
传感器一次性会给单片机发送40位数据,高位先发,数据格式如下:
湿度高 8 位,湿度低 8 位,温度高 8 位,温度低 8 位,8 位校验位。湿度的高 8 位是测量湿度的整数,湿度的低 8 位是测量湿度的小数(湿度的小数部分为 0);温度的高 8 位是测量温度的 整数,温度的低8 位是测量温度的小数;8 位校验和 = 湿度高 8 位 + 湿度低 8 位 + 温度高 8 位 + 温度低 8位。
4、怎样读到实时数据?
需要注意的是:如果测量间隔时间较长(超过 5S),就需要连续读取两次值,然后以第二次读取的值为实时温湿度值,因为主机从 DHT11 读取的温湿度数据总是前一次的测量值。
5、单片机数据通信引脚的配置。
(1) . 思路:利用定时器的捕获功能,对输入的每一个周期的电平进行计数(TIM2x>CCRx的值,当检测到ICx信号上相应的边沿后,计数器的当前值被锁存到捕获/比较寄存器(TIMx_CCRx)中 ),再把这个值转换成时间,就能得到输入的是数字0,还是数字1.
(2) 引脚配置:数据引脚与定时器的某个捕获输入引脚(TIMx_CHx)相连,另外因为是单总线通信,所以这个引脚在不同的时间段需要分别配置输出模式和输入模式:
输出模式:推挽输出 GPIO_Mode_Out_PP
输入模式:浮空输入 GPIO_Mode_IN_FLOATING,因为浮空输入的IO电平状态时不确定的,完全由外部输入决定