DHT11传感器接入单片机前为什么要加一个电阻?加多大的好?

DHT11传感器接入单片机前为什么要加一个电阻?加多大的好?,第1张

一般是上拉电阻。

这是当单片机引脚输出低电平的时候,外部电路提供电流给引脚。

单片机的灌电流能力比较强,你需要看一下你使用的单片机型号,然后灌电流最大是多少mA,然后根据电源电压进行计算,不要超过这个最大值就好了。

一、DHT11基础储备

DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,内部由一个 8 位单片机控制一个电阻式感湿元件和一个 NTC

测温元件。DHT11 虽然也是采用单总线协议,但是该协议与 DS18B20 的单总线协议稍微有些不同之处。

相比于 DS18B20 只能测量温度,DHT11 既能检测温度又能检测湿度,不过 DHT11 的精度和测量范围都要低于

DS18B20,其温度测量范围为 0~50℃,误差在±2℃湿度的测量范围为 20%~90%RH(Relative Humidity

相对湿度—指空气中水汽压与饱和水汽压的百分比),误差在±5%RH。DHT11 电路很简单,只需要将 Dout 引脚连接单片机的一个 I/O

即可,不过该引脚需要上拉一个 5K 的电阻,DHT11 的供电电压为 3~5.5V

在这里插入图片描述

二、协议及数据格式

DHT11 采用单总线协议与单片机通信,单片机发送一次复位信号后,DHT11 从低功耗模式转换到高速模式,等待主机复位结束后,DHT11

发送响应信号,并拉高总线准备传输数据。一次完整的数据为 40bit,按照高位在前,低位在后的顺序传输

数据格式为:8bit 湿度整数数据+8bit 湿度小数数据+8bit 温度整数数据+8bit 温度小数数据+8bit 校验和,一共 5

字节(40bit)数据。由于 DHT11 分辨率只能精确到个位,所以小数部分是数据全为 0。校验和为前 4

个字节数据相加,校验的目的是为了保证数据传输的准确性。

DHT11 只有在接收到开始信号后才触发一次温湿度采集,如果没有接收到主机发送复位信号,DHT11

不主动进行温湿度采集。当数据采集完毕且无开始信号后,DHT11 自动切换到低速模式。

注意:由于 DHT11 时序要求非常严格,所以在 *** 作时序的时候,为了防止中断干扰总线时序,先关闭总中断, *** 作完毕后再打开总中断。

三、 *** 作时序

1、 主机发送复位信号

DHT11 的初始化过程同样分为复位信号和响应信号。

首先主机拉低总线至少 18ms,然后再拉高总线,延时 20~40us,取中间值 30us,此时复位信号发送完毕。

在这里插入图片描述

2、DHT11 发送响应信号

DHT11 检测到复位信号后,触发一次采样,并拉低总线 80us 表示响应信号,告诉主机数据已经准备好了然后 DHT11 拉高总线

80us,之后开始传输数据。如果检测到响应信号为高电平,则 DHT11 初始化失败,请检查线路是否连接正常。

当复位信号发送完毕后,如果检测到总线被拉低,就每隔 1us 计数一次,直至总线拉高,计算低电平时间当总线被拉高后重新计数检测 80us

的高电平。如果检测到响应信号之后的80us 高电平,就准备开始接收数据。实际上 DHT11 的响应时间并不是标准的 80us,往往存在误差,当响应时间处于

20~100us 之间时就可以认定响应成功。

3、数据传输

DHT11 在拉高总线 80us 后开始传输数据。每 1bit 数据都以 50us 低电平时隙开始,告诉主机开始传输一位数据了。DHT11

以高电平的长短定义数据位是 0 还是 1,当 50us 低电平时隙过后拉高总线,高电平持续 26~28us 表示数据“0”持续 70us

表示数据“1”。

当 最后 1bit 数据传送完毕后,DHT11 拉低总线 50us,表示数据传输完毕,随后总线由上拉电阻拉高进入空闲状态。

在这里插入图片描述

4、区分数据0/1的巧法

还是像检测响应时间那样计算高电平持续时间那就太麻烦了!!!

数据“0”的高电平持续 26~28us,数据“1”的高电平持续70us,每一位数据前都有 50us 的起始时隙。如果我们取一个中间值 40us

来区分数据“0”和数据“1”的时隙。

当数据位之前的 50us 低电平时隙过后,总线肯定会拉高,此时延时 40us 后检测总线状态,如果为高,说明此时处于 70us

的时隙,则数据为“1”如果为低,说明此时处于下一位数据 50us 的开始时隙,那么上一位数据肯定是“0”。

为什么延时 40us?

由于误差的原因,数据“0”时隙并不是准确 26~28us,可能比这短,也可能比这长。

当数据“0”时隙大于 26~28us 时,

如果延时太短,无法判断当前处于数据“0”的时隙还是数据“1”的时隙

如果延时太长,则会错过下一位数据前的开始时隙,导致检测不到后面的数据

型号:DHT11

类别:数字温湿度传感器

供应商:拍明芯城

那个传感器很简单的,四条引角中有两条是电源引脚,有两条是输出数据的引脚,你只需要给他供上额定电压,然后再他的输出引脚采集信号就可以了,输出信号如果是模拟量的话,通过A/D芯片,将模拟量转换为数字信号,然后传送给单片机。

DHT11是数字传感器,所以不需要进行模数的转换,具体接口如下

引脚1: VDD 供电3-5.5VDC

引脚2: DATA 串行数据,单总线

引脚3:NC 空脚,请悬空

引脚4:GND 接地,电源负极

注意 引脚2在接单片机时,同时要在数据线接一上拉电阻,接到电源上。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11733280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存