DHT22使用笔记

线上DHT22与DHT11的性能对比:
DHT11:
在这里插入图片描述

DHT22:
在这里插入图片描述

对比可以发现,DHT22在分辨率和精度上都有很大的提升。

同时采样率也变成了每秒2次。
在这里插入图片描述

而且最重要的在于,通讯开始信号仅需要500us,与18us相差了接近20倍!
虽然获取的是上1次的的值,但是如果1秒采样两次,和11的同步性能是一样的。
在这里插入图片描述

由于精度提高,所以数据格式还是有变化的,相比于DHT11只用了整数部分,22的数据是全部用了的,直接是16bit数据,换算成16进制再乘以0.1就是实际的温度值和湿度值。
在这里插入图片描述

这里为了得到和DHT11相同的结果,我舍去小数值,同时复位时间也改成500us,代码如下:

void DHT11_Rst(void)	   
{                 
	DHT11_IO_OUT(); 	//SET OUTPUT
  	DHT11_DQ_OUT=0; 	//拉低DQ
	  delay_us(500);    //拉低至少18ms
 	 DHT11_DQ_OUT=1; 	//DQ=1 
	delay_us(30);     //主机拉高20~40us
}

u8 DHT11_Read_Data(u8 *temp,u8 *humi)    
{        
 	u8 buf[5];
	u8 i;
	DHT11_Rst();
	if(DHT11_Check()==0)
	{
		for(i=0;i<5;i++)//读取40位数据
		{
			buf[i]=DHT11_Read_Byte();
		}
		if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
		{
			*humi=(buf[0]*256+buf[1])/10;
			*temp=(buf[2]*256+buf[3])/10;
		}
	}else return 1;
	return 0;	    
}

显示结果如下:

using time:    4639 us    temperature:25    humidity:58
using time:    4686 us    temperature:25    humidity:58
using time:    4638 us    temperature:25    humidity:58
using time:    4638 us    temperature:25    humidity:58
using time:    4638 us    temperature:25    humidity:58
using time:    4639 us    temperature:25    humidity:58
using time:    4662 us    temperature:25    humidity:58
using time:    4637 us    temperature:25    humidity:58
using time:    4686 us    temperature:25    humidity:58
using time:    4732 us    temperature:25    humidity:58
using time:    4733 us    temperature:25    humidity:58
using time:    4734 us    temperature:25    humidity:58
using time:    4733 us    temperature:25    humidity:58
using time:    4733 us    temperature:25    humidity:58
using time:    4765 us    temperature:25    humidity:58
using time:    4637 us    temperature:25    humidity:58
using time:    4638 us    temperature:25    humidity:58
using time:    4638 us    temperature:25    humidity:58
using time:    4638 us    temperature:25    humidity:58
using time:    4639 us    temperature:25    humidity:58
using time:    4734 us    temperature:25    humidity:58
using time:    4733 us    temperature:25    humidity:58
using time:    4670 us    temperature:25    humidity:58
using time:    4686 us    temperature:25    humidity:58
using time:    4638 us    temperature:25    humidity:58

不到5ms时间就能完成采样,可以用于大部分对时序严格的通讯场合。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值