温湿度传感器原理.docVIP

  • 1
  • 0
  • 约3.14千字
  • 约 13页
  • 2024-07-17 发布于江苏
  • 举报
概述本教程将介绍一种名为“温湿度传感器”的新技术该传感器由一个小型的电子元件组成,通过检测室内的湿度来测量温度实验设计将包括硬件设备设置以及实验程序编写通过实践,我们希望能帮助读者更好地理解和应用这一新技术实验准备1实验环境准备首先,我们将配备一个运行Arduino软件的计算机,以便进行实验操作同时,我们需要准备至少一套传感器的硬件,并确保所有的元件都正常工作2实验所需知识点准备我们将在每个环节详细列出实验步骤,包括如何连接到传感器,如何设定数据输出以

温湿度传感器原理

课程名称:_传感器原理与应用_项目名称:_温湿度传感器的使用_

实验准备注:1、实验准备部分包括实验环境准备和实验所需知识点准备。2、若是单人单组实验,同组成员填无。

注:1、实验准备部分包括实验环境准备和实验所需知识点准备。

2、若是单人单组实验,同组成员填无。

实验目的:了解并掌握对温湿度传感器的使用

实验环境、知识点准备:

实验环境:一台运行Arduino软件的计算机

知识点准备:

1、传感器性能说明

参数

条件

Min

Typ

Max

单位

湿度

分辨率

1

1

1

%RH

16

Bit

重复性

±1

%RH

精度

25℃

±4

%RH

0-50℃

±5

%RH

互换性

可完全互换

量程范围

0℃

30

90

%RH

25℃

20

90

%RH

50℃

20

80

%RH

响应时间

1/e(63%)25℃,1m/s空气

6

10

15

S

迟滞

±1

%RH

长期稳定性

典型值

±1

%RH/yr

温度

分辨率

1

1

1

16

16

16

Bit

重复性

±1

精度

±1

±2

量程范围

0

50

响应时间

1/e(63%)

6

30

S

接口说明

建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻

3、 电源引脚

DHT11的供电电压为 3-5.5V。传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。

4、串行接口(单线双向)

DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:

一次完整的数据传输为40bit,高位先出。

数据格式:8bit湿度整数数据+8bit湿度小数数据

+8bi温度整数数据+8bit温度小数数据

+8bit校验和

数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。

用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开

1234

9、DHT11引脚说明

Pin

名称

注释

1

VDD

供电3-5.5VDC

2

DATA

串行数据,单总线

3

NC

空脚,请悬空

4

GND

接地,电源负极

10、焊接信息

手动焊接,在最高260℃的温度条件下接触时间须少于10秒。

11、注意事项

(1)避免结露情况下使用。

(2)长期保存条件:温度10-40℃,湿度60%以下。

实验过程记录注:实验过程记录要包含实验步骤,页码不够可自行添加。

注:实验过程记录要包含实验步骤,页码不够可自行添加。

Arduino源程序

#defineDHT11_PIN0//ADC0接到模拟口0

byteread_dht11_dat()

{

bytei=0;

byteresult=0;

for(i=0;i8;i++){

while(!(PINC_BV(DHT11_PIN)));//waitfor50us

delayMicroseconds(30);

if(PINC_BV(DHT11_PIN))

result|=(1(7-i));

while((PINC_BV(DHT11_PIN)));//wait1finish

}

returnresult;

}

voidsetup()

{

DDRC|=_BV(DHT11_PIN);

PORTC|=_BV(DHT11_PIN);

Serial.begin(19200);

Serial.println(Ready);

}

voidloop()

{

bytedht11_dat[5];

bytedht11_in;

bytei;

//startcondition

//1.pull-downi/opinfrom18ms

PORTC=~_BV(DHT11_PIN);

delay(18);

PORTC|=_BV(DHT11_PIN);

delayMicroseconds(40);

DDRC=~_BV(DHT11_PIN);

delayMicroseconds(40);

dht11_in=PINC_BV(DHT11_PIN);

if(dht11_in){

Serial.println(dht11start

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档