dht11硬件原理图
 
 
dht11工作原理:
 
当主机没有和dht11交互时,总线处于空闲状态,在上拉电阻的作用下,处于高电平
当主机和dht11交互时,总线处于通信状态,完整通信过程如下:
(时序图)
 
    1.主机将总线I/O配置为输出模式,准备向dht11发送数据。
    2.主机将总线拉低至少18ms,以此作为起始信号。再将总线拉高并延时20-40us,以此表示起始信号的结束。
    3.主机将总线I/O配置为输入模式,准备接收dht11的数据
    4.当dht11检测到起始信号后,开始应答,回传采集到的传感器数据。
        (dht11先将总线拉低80us作为对主机的应答(ACK),然后将总线拉高80us,准备回传采集到的温湿度数据。温湿度数据以固定的帧格式发送)
一帧40个bit,每一个bit传输时序逻辑:dht11将总线拉低50us,输出高电平,持续26-28us则为逻辑0,70us则为逻辑1
 
    5.一帧数据完成后,dht11释放总线,总线在上拉电阻作用下恢复高电平
 
 
程序设计在采集到40bit数据后,检验校验位
校验可参考: https://www.cnblogs.com/fqhy/p/7978763.html
 
参考博客(整理思路鉴于此): https://www.cnblogs.com/lulipro/p/10815338.html
(arduino实现代码可参考上述博客)
 
posted on 2022-08-02 16:27  Jolyne123  阅读(343)  评论(0编辑  收藏  举报