传感器学习——DHT11

本文介绍了DHT11传感器的工作电压、电流、测量范围和精度等技术参数,并详细阐述了其数据格式和通信方式,包括开始信号、数据响应和数据位的解读。此外,还提及了DHT11的程序源码文件dht11.c和dht11.h。
摘要由CSDN通过智能技术生成

DHT11简介

DHT11 与单片机之间能采用简单的单总线进行通信,仅仅需要一个 I/O 口。
传感器内部湿度和温度数据 40Bit 的数据一次性传给单片机
DHT11 的技术参数如下:
 工作电压范围: 3.3V-5.5V
 工作电流 :平均 0.5mA
 输出:单总线数字信号
 测量范围: 湿度 20~90%RH,温度 0~50℃
 精度 :湿度±5%,温度±2℃
 分辨率 :湿度 1%,温度 1℃

DHT11数据格式

首先主机发送开始信号,即:拉低数据线,保持 t1(至少 18ms)时间,然后拉高数据线 t2(20~40us)时间,然后读取 DHT11 的响应,正常的话, DHT11 会拉低数据线,保持 t3(40~50us)时间,作为响应信号,然后 DHT11 拉高数据线,保持 t4(40~50us)时间后,开始输出数据。

在这里插入图片描述
湿度= byte4 . byte3=45.0 (%RH)
温度= byte2 . byte1=28.0 ( ℃)
校验= byte4+ byte3+ byte2+ byte1=73(=湿度+温度)

DHT11发送顺序为从低位到高位,Byte是先湿度后温度,先整数后小数,最后校验和。

DHT11通信方式

首先主机发送开始信号,即:拉低数据线,保持 t1(至少 18ms)时间,然后拉高数据线 t2(20~40us)时间,然后读取 DHT11 的响应,正常的话, DHT11 会拉低数据线,保持 t3(40~50us)时间,作为响应信号,然后 DHT11 拉高数据线,保持 t4(40~50us)时间后,开始输出数据。
在这里插入图片描述
DHT11发送的数据不是传统的“高电平就是1,低电平就是0”,而是在每发送一个bit前,拉低电平 12 ~14us。数据是体现在拉高电平时间的长短,拉高电平26 ~28us,就为0,拉高电平116 ~118us就为1。
在这里插入图片描述在这里插入图片描述

程序源码

dht11.c

#include "dht11.h"
#include "delay.h"

//复位 DHT11 
void DHT11_Rst(void)    
{
                    
 DHT11_IO_OUT();   //SET OUTPUT 
  DHT11_DQ_OUT=0;  //拉低 DQ 
  delay_ms(20);    //拉低至少 18ms 
  DHT11_DQ_OUT=1;  //DQ=1 
 delay_us(30);      //主机拉高 20~40us 
}
//等待 DHT11 的回应 
//返回 1:未检测到 DHT11 的存在 
//返回 0:存在 
u8 DHT11_Check(void
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值