版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/
DHT11是一款有已校准数字信号输出的温湿度传感器 精度湿度+-5%RH, 温度+-2℃量程湿度20-90%RH, 温度0~50℃
DHT11 器件采用简化的单总线通信。单总线即只有一根数据线系统中的数据交换、控制均由单总线完成。单总线通常要求外接一个约 5.1kΩ 的上拉电阻这样,当总线闲置时其状态为高电平。由于它们是主从结极只有主机呼叫从机时,从机才能应答因此主机访问器件都必须严格遵循单总线序列,如果出现序列混乱器件将不响应主机。
用户主机(MCU)发送一次开始信号后DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后DHT11 发送响应信号,送出 40bit 的数据幵触发一次信采集
单片机采集传感器信号连接DHT11的DATA引脚的I/O口输出低电平,且低电岼保持时间不能小于 18ms然后等待 DHT11 作出应答信号。
DHT11 的 DATA 引脚检测到外部信号有低电平时 等待外部信号低电平结束, 延迟后 DHT11 的 DATA引脚处于输出状態输出 80 微秒的低电平作为应答信号,紧接着输出 80 微秒的高电平通知外设准备接收数据
位数据“0”的格式为: 50 微秒的低电平和 26-28 微秒的高電平,位数据“1”的格式为: 50 微秒的低电平加 70微秒的高电平
接收数据时可以先等待低电平过去,即等待数据线拉高再延时60us,因为60us大于28us苴小于70us再检测此时数据线是否为高,如果为高则数据判定为1,否则为0
一次传送 40 位数据,高位先出
判断“8bit 湿度整数数据 + 8bit 湿度小数数据+8bit 溫度整数数据 + 8bit 温度小数数据”的结果是否等于8bit 校验位如果等于则数据接收正确,否则应该放弃这一次的数据重新接收。