一.DHT11介绍
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,采用专用的数字模块采集技术和温湿度传感技术,无需复杂的电路处理。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
二.DHT11主要参数
(1)湿度分辨率为8bit,测量精度为±4%RH(25℃),最大的测量范围为20~90%RH,响应时间为6-16秒;
(2)温度分辨率为8bit,测量精度为±1℃,测量范围为050℃,响应时间为630秒。
(3)传感器工作电压范围为35V,工作电流为0.52.5mA,采样周期为1s(即每次刷新温湿度数据时间至少1s以上)。
三.DHT11电路图
电路如图,Pin1接至VDD,Pin2接至单片机引脚,Pin3悬空,Pin4接至GND。DHT11与MCU的连接线长度短于20米时,DATA引脚需外接5K上拉电阻至VDD。
四.DHT11数据格式
DHT11每读取一次完整的数据为40bit的数据,需要根据以下格式将湿度和温度数据解析出来。
数据格式:8bit湿度整数数据+8bit湿度小数数据 +8bi温度整数数据+8bit温度小数数据+8bit校验和;
其中,高位在前,低位在后;校验和为前4个字节的累加和的末8位。
五.DHT11操作时序
1.复位时序
总线空闲状态为高电平,MCU引脚设置为输出状态,把引脚设置为低电平,延时19ms,然后延时30us,并将引脚设置为输入状态,等待DHT11响应;从时序看,MCU需要保持引脚低电平必须大于18ms,保证DHT11能检测到起始信号。
根据时序进行编程代码如下:
void dht11_reset(void)
{
// DHT11设置为输出模式
dht11_gpio_output();
DHT11_OUT_L;
delay_us(19000);
DHT11_OUT_H;
delay_us(30);
dht11_gpio_input();
}
DHT11接收到MCU的开始信号后, 等待MCU开始信号结束,然后发送80us低电平响应信号。MCU发送开始信号结束后,延时等待20-40us后;然后MCU读取DHT11的响应信号(即DHT11信号置低电平80us后,置为高电平80us);确认DHT11响应信号有效后,MCU进入数据读取模式。
u16 dht11_read_data(u8 buffer[5])
{
u16 i = 0;
u8 checksum;
dht11_reset();
if (dht11_scan() == RESET)
{
//MCU读取DHT11响应信号
while (dht11_scan() == RESET);
while (dht11_scan() == SET);
//确认DHT11发出响应信号后,进入数据读取模式
for (i = 0; i < 5; i++)
{
buffer[i] = dht11_read_byte();
}
while (dht11_scan() == RESET);
dht11_gpio_output();
DHT11_OUT_H;
checksum = buffer[0] + buffer[1] + buffer[2] + buffer[3];
if (checksum != buffer[4])
{
// checksum error
return 1;
}
}
return 0;
}
MCU读取完5个字节数据后,确认DHT11信号是否置为低电平,如果是,此次数据读取完毕;单片机引脚切换到输出模式,并将引脚电平拉高,释放总线。
完整的数据通信时序如图:
2.读取数据时序
MCU进入数据读取模式时,判断数据位为0或者为1是通过高电平的时间来判断。时序如图:
数据线低电平50us后,拉至高电平,高电平时间为26us-28us内,数据位为0;高电平时间为28us-70us内,数据位为1;
数据位为‘0’
数据位为‘1’
读数据位程序:程序通过在DHT11数据线拉至高电平时,延时40us,判断此时数据位引脚的状态,如果为高电平,则高电平状态在28us-70us内,数据位为‘1’;否则为‘0’。
u16 dht11_read_bit(void)
{
while (DHT11_IN == RESET);
delay_us(40);
if (DHT11_IN == SET)
{
while (DHT11_IN == SET);
return 1;
}
else
{
return 0;
}
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
电阻
+关注
关注
86文章
5501浏览量
171874 -
单片机
+关注
关注
6034文章
44547浏览量
634375 -
DHT11湿度传感器
+关注
关注
0文章
13浏览量
4779 -
测温元件
+关注
关注
0文章
8浏览量
2671
发布评论请先 登录
相关推荐
基于arduino的dht11温湿度传感器的使用
本文介绍了DHT11温湿度传感器电气特性、DHT11封装形式及接口说明与典型应用电路,其次介绍了DHT11
发表于 01-22 15:50
•4.5w次阅读
DHT11数字温湿度传感器的相关资料推荐
main.clcd1602.clcd1602.hdelay.cdelay.h项目展示DHT11温湿度相关介绍DHT11产品概述DHT11数字
发表于 11-19 07:33
dht11温湿度传感器中文资料(dht11工作原理特性参数及应用电路)
本文主要介绍了dht11温湿度传感器中文资料(dht11工作原理特性参数及应用电路)。
发表于 03-16 10:16
•39.3w次阅读
评论