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

相关推荐
米饭不加菜15 分钟前
C51 语言参考手册
经验分享·笔记·单片机·嵌入式硬件
深圳市宝华视联29 分钟前
院感约束下,手术室音视频布线与设备摆放实施注意事项
嵌入式硬件·音视频·实时音视频·视频编解码·嵌入式实时数据库
科芯创展32 分钟前
2.7VIN,5VOUT,360KHz,电荷泵升压芯片,XZ3120
单片机
dozenyaoyida1 小时前
LittleFS 嵌入式文件系统机制拆解与某 RISC-V MCU 实测配置
单片机·嵌入式·文件系统·risc-v·littlefs·flash存储
方芯半导体1 小时前
EtherCAT 从站方案中 MAC、PHY 与 MII 的层级关系与实现解析
网络·人工智能·单片机·macos·ethercat
Black_Rock_br1 小时前
ARM服务器固件FVP仿真开发流程深度解析实战指南
arm开发·人工智能·嵌入式硬件·硬件工程
智购科技无人售货机工厂1 小时前
2026自动售货机触摸屏驱动开发:从I2C协议到多点触控校准的工程实践~YH
android·驱动开发·python·单片机·云原生·django
天空'之城2 小时前
单片机基础核心知识点汇总(十四)
单片机·嵌入式硬件
DevHub2 小时前
STM32 USB HID 教程:TinyUSB 实现键盘设备,从描述符到枚举
arm开发·stm32·单片机·嵌入式硬件·mcu·计算机外设
泛凡(Linyongui)3 小时前
第三篇、生命的bug分两种:一种是Flash坏了,一种是RAM乱了
人工智能·单片机·程序人生