打印
[研电赛技术支持]

GD32F450读取DHT11温湿度传感器

[复制链接]
599|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
项目的最后就是读取DHT11温湿度传感器的数值了。原本打算采用精度较高的DS18B20来进行温度检测,无奈DHT11采用跟DS18B20一样的单总线通信,将采集到的温湿度数据以串行通信的方式发送给单片机。

DHT11传输温度和湿度是以字节为单位的,即取值范围为-127~128,跨度如此大的数据,足以存储温度和湿度了(湿度取值范围是0~100)。但是DHT11有个缺点就是采集到的温湿度数据都是整数,不含小数,因此在精度方面比不上DS18B20。
    只需简单了解DHT11的工作时序,便可驱动单片机与其进行通信。DHT11的复位信号是主机发送持续20毫秒的低电平信号紧接着30微秒的高电平信号给从机,所有采集工作之前都必须复位DHT11。而DHT11的准备状态则是从机发送小于100微秒的高电平信号再紧接着小于100微秒的低电平信号,若这两个信号的持续时间其中有一个大于100微秒或两个都大于100微秒的话,则说明DHT11状态错误,需要重新复位。而DHT11传出一个位的信号即读出数据也是跟准备状态一样,以200微秒的脉冲作为标志,只要两个信号的持续时间其中有一个大于100微秒或两个都大于100微秒,则说明状态错误,两个数据位的时间间隔位40微秒。

   
了解了DHT11的机制之后通信就很简单了,直接上传工程文件
本文转载于GD32F450读取DHT11温湿度传感器
http://www.cirmall.com/bbs/thread-95852-1-1.html
(出处: http://www.cirmall.com/bbs/)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

90

帖子

0

粉丝