DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术

和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC 测

温元件,并与一个高性能8 位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优

点。每个DHT11 传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP 内存中,传感器内

部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的

功耗,信号传输距离可达20 米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。

DHT11 数字温湿度传感器模块为3 针PH2.0 封装。连接方便。

性能描述

1. 供电电压:3-5.5V

2. 供电电流:最大2.5Ma

3. 温度范围:0-50℃ 误差±2℃

4. 湿度范围:20-90%RH 误差±5%RH

5. 响应时间: 1/e(63%) 6-30s

6. 测量分辨率分别为 8bit(温度)、8bit(湿度)

7. 采样周期间隔不得低于1 秒钟

8. 模块尺寸:30x20mm

传感器的时序

DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和

整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:

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

数据格式:

8bit湿度整数数据+8bit湿度小数数据

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

+8bit校验和

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

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

送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。

模块的使用

将 DHT11 模块接到Arduino 传感器扩展板的模拟口0

代码如下:

#define DHT11_PIN 0 // ADC0 接到模拟口0

byte read_dht11_dat()

{

byte i = 0;

byte result=0;

for(i=0; i< 8; i++){

while(!(PINC & _BV(DHT11_PIN))); // wait for 50us

delayMicroseconds(30);

if(PINC & _BV(DHT11_PIN))

result |=(1<

while((PINC & _BV(DHT11_PIN))); // wait '1' finish

}

return result;

}

void setup()

{

DDRC |= _BV(DHT11_PIN);

PORTC |= _BV(DHT11_PIN);

Serial.begin(19200);

Serial.println("Ready");

}

void loop()

{

byte dht11_dat[5];

byte dht11_in;

byte i;

// start condition

// 1. pull-down i/o pin from 18ms

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("dht11 start condition 1 not met");

return;

}

delayMicroseconds(80);

dht11_in = PINC & _BV(DHT11_PIN);

if(!dht11_in){

Serial.println("dht11 start condition 2 not met");

return;

}

delayMicroseconds(80);

// now ready for data reception

for (i=0; i<5; i++)

dht11_dat[i] = read_dht11_dat();

DDRC |= _BV(DHT11_PIN);

PORTC |= _BV(DHT11_PIN);

byte dht11_check_sum = dht11_dat[0]+dht11_dat[1]+dht11_dat[2]+dht11_dat[3];

// check check_sum

if(dht11_dat[4]!= dht11_check_sum)

{

Serial.println("DHT11 checksum error");

}

Serial.print("Current humdity = ");

Serial.print(dht11_dat[0], DEC);

Serial.print(".");

Serial.print(dht11_dat[1], DEC);

Serial.print("% ");

Serial.print("temperature = ");

Serial.print(dht11_dat[2], DEC);

Serial.print(".");

Serial.print(dht11_dat[3], DEC);

Serial.println("C ");

delay(2000);

}

编译代码后下载到Arduino 中,打开串口助手即可看见实际测量的温度与湿度。

标签:PIN,arduino,温湿度,笔记,dat,BV,Serial,dht11,DHT11

来源: https://blog.csdn.net/qq_37631068/article/details/100678556

arduino温湿度计库文件_arduino学习笔记八 温湿度计相关推荐

  1. arduino学习笔记八 温湿度计

    DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器.它应用专用的数字模块采集技术 和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性.传感器包括一个电阻式感湿元件和一 ...

  2. python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件? 当我们点开下载页时, 一 ...

  3. python3第三方库手册_python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑...

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件? 当我们点开下载页时, 一 ...

  4. 日志库 winston 的学习笔记 - logger.info 的实现原理单步调试

    按照这篇文章日志库 winston 的学习笔记 - 创建一个使用 winston 的 Node.js 应用里的代码,对下列方法进行单步调试: 因为我们调用的是 info 方法,所以生成的日志,leve ...

  5. 【opencv学习笔记八】创建TrackBar轨迹条

    createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...

  6. ROS学习笔记八:创建ROS msg和srv

    ROS学习笔记八:创建ROS msg和srv 本节主要讲述了如何创建和建立ROS msg和srv,同时使用命令行工具rosmsg.rossrv和roscp. msg和srv简介 msg:描述ROS m ...

  7. 黑马程序员_java自学学习笔记(八)----网络编程

    黑马程序员_java自学学习笔记(八)----网络编程 android培训. java培训.期待与您交流! 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无 ...

  8. ReactJS学习笔记八:动画

    ReactJS学习笔记八:动画 分类: react学习笔记 javascript2015-07-06 20:27 321人阅读 评论(0) 收藏 举报 react动画 目录(?)[+] 这里只讨论Re ...

  9. Halcon 学习笔记八:颜色识别

    Halcon 学习笔记八:颜色识别 一.图像处理需要的知识 二.图像处理的预处理和分割过程 二.颜色识别的方法 三.例子一 四.例子二 五.例子三 一.图像处理需要的知识 1.图像处理基础(rgb(h ...

最新文章

  1. tasklist 妙用
  2. 巧用rsyslog收集多套日志并做单套日志的过滤分离
  3. 富文本编辑器-Ueditor
  4. C++使用数组实现stack堆栈(附完整源码)
  5. [HIVE] shell调用hive客户端导致nohup后台进程stopped
  6. 先容Oracle中null的运用要领。
  7. Halcon算子学习:smooth_object_model_3d
  8. hp服务器 新增硬盘_HP服务器linux操作系统如何添加硬盘
  9. 解决df -h卡死问题
  10. 乱七八糟 Nodejs 系列一:试水
  11. DMG Canvas 3 for Mac 共享版 – 优秀的DMG安装包制作软件
  12. 云队友丨疯子李书福和狂人王传福
  13. exchange java_java中用Exchange
  14. 计算机开机后桌面放大,开机后桌面图标变大 桌面图标变大了怎么处理?
  15. java实现批量去除图片水印
  16. 真正免费的天气API,无需注册申请key
  17. Kubernetes单机开发环境部署记录
  18. mysql查询各专业人数_SQL统计各专业学生人数
  19. VS 点击页面自动定位到解决方案资源管理器目录位置
  20. 一些好用的手机软件分享

热门文章

  1. 史上最全MySQL锁机制
  2. 云和恩墨技术通讯:Oracle AMM自动内存管理引起数据库阻塞
  3. 存算分离架构的高斯Redis,用强一致提供可靠保障
  4. 想做测试工程师,这7件事你必须先知道
  5. 微服务架构下,DLI的部署和运维有何奥秘?
  6. 24岁的程序员,似乎已经看到了30岁后的自己
  7. 全新一代云服务器S6,重新定义性价比
  8. 计算机科学与技术在海南,2017年怀化学院计算机科学与技术专业在海南录取分数线...
  9. div固定在浏览器顶部_关于浏览器的兼容问题
  10. Kotlin学习笔记 第二章 类与对象 第一节类与继承(补)