DHT11温湿度传感器

产品概述

1. DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,应用领域:暖通空调;汽车;消费品;气象站;湿度调节器;除湿器;家电;医疗;自动控制

2. 特点

·相对湿度和温度测量

·全部校准,数字输出

·长期稳定性

·超长的信号传输距离:20米

·超低能耗:休眠

·4 引脚安装:可以买封装好的完全互换 : 直接出结果,不用转化

接线

数据传送逻辑

只有一根数据线DATA,上官一号发送序列指令给DHT11模块,模块一次完整的数据传输为40bit,高位先出

数据格式

8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和

通讯过程时序图

3.单片机 检测模块是否存在

A : dht = 1

B :dht = 0延时30ms

C: dht = 1在60us后读d点,如果d点是低电平(被模块拉低),说明模块存在

为什么是60us呢?

因为C点到D点是20-40us,响应DHT信号的时间是80us,所以从20us~80us(0~100us)区间的60us可以判断DHT信号被拉低为低电平。

代码实现

复制代码
#include "reg52.h"
#include "intrins.h"

sbit ledOne = P3^7;
sbit dht    = P3^3;

void Delay1000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 8;
	j = 1;
	k = 243;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

void Delay30ms()		//@11.0592MHz
{
	unsigned char i, j;

	i = 54;
	j = 199;
	do
	{
		while (--j);
	} while (--i);
}

void Delay60us()		//@11.0592MHz
{
	unsigned char i;

	i = 25;
	while (--i);
}


void check_DHT()
{

	//a: dht = 1

	dht = 1;

	//b: dht = 0;

	dht = 0;
	
    //延迟30ms

	Delay30ms();
	//c: dht = 1
    
	dht = 1;
	
    //dht = 1在60us后读d点,如果d点是低电平(被模块拉低),说明模块存在

	Delay60us();
	if(dht == 0){
			ledOne = 0; //模块被拉低灯亮
	}

}


void main()
{
	ledOne = 1;
	Delay1000ms();
	Delay1000ms();
	
	
	check_DHT();
	while(1);
}

main()函数的bug:

由以下手册可得加延迟函数,while(1)函数如果不加,就会出现灯闪和灭的状态,因为没有while()函数,main函数会退出重新开始,导致忽闪忽灭的现象

DHT11传输0与1时序分析

DH11传输0的时序分析

DH11传输1的时序分析

通过手册我们可以知道DATA发送数据的原理

40bit = 5个 char

相关推荐
不做无法实现的梦~1 天前
86步进电机和DM860H驱动器的使用方法和记录
单片机·嵌入式硬件
Aaron15881 天前
RFSOC+VU13P/VU9P+GPU多通道同步一体化解决方案
人工智能·嵌入式硬件·算法·matlab·fpga开发·硬件架构·基带工程
所见即所得111111 天前
stm32烧录过程中串口问题(串口被占用无法使用)
stm32·单片机·嵌入式硬件
Freak嵌入式1 天前
WIZnet-EVB-Pico2开始,用MicroPython玩转以太网开发
arm开发·人工智能·python·嵌入式硬件·机器人·嵌入式·micropython
Ligocious1 天前
stm32---1.两种开发方式点亮LED
stm32·单片机
黑白园1 天前
STM32F103C8TC使用ST-Link下载
stm32·单片机·嵌入式硬件
时空自由民.1 天前
嵌入式MCU的中断系统工作流程及其原理
单片机·嵌入式硬件
LCG元1 天前
STM32实战:基于STM32F103的智慧教室环境监控系统(CO₂+光照+人数统计)
前端·stm32·嵌入式硬件
振南的单片机世界1 天前
推挽输出:上管推、下管拉,驱动强但不“合群”
arm开发·stm32·单片机·嵌入式硬件
森利威尔电子-1 天前
森利威尔SL7140|2.5–24V 宽压 / 10mA–2A / PWM 调光 线性 LED 恒流驱动
单片机·嵌入式硬件·集成电路·芯片·电源芯片