Arduino入门教程实验28DHT11温湿度实验

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

【蓝宙每日一讲】第75讲Arduino入门教程实验28DHT11温湿度实验1实验原理图5-28-1DHT11温湿度实物图DHT11数字温湿度传感器(图5-28-1)是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。DHT11数字温湿度传感器模块为3针PH2.0封装。连接方便。性能描述供电电压:3-5.5V供电电流:最大2.5Ma温度范围:0-50℃误差±2℃湿度范围:20-90%RH误差±5%RH响应时间:1/e(63%)6-30s测量分辨率分别为8bit(温度)、8bit(湿度)采样周期间隔不得低于1秒钟模块尺寸:30x20mm传感器的时序DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。2硬件电路遥控灯实验器件参考表5-28-2。实验器件数量landzoduino开发板1编程线1杜邦线若干面包板1DTH111图5-28-2遥控灯实验器件表遥控灯实验电路图参考图5-28-3。图5-28-3实验连接实物图3程序设计1.#defineDHT11_PIN0//ADC0接到模拟口02.byteread_dht11_dat()3.{4.bytei=0;5.byteresult=0;6.for(i=0;i8;i++){7.while(!(PINC&_BV(DHT11_PIN)));//waitfor50us8.delayMicroseconds(30);9.if(PINC&_BV(DHT11_PIN))10.result|=(1(7-i));11.while((PINC&_BV(DHT11_PIN)));//wait'1'finish12.}13.returnresult;14.}15.voidsetup()16.{17.DDRC|=_BV(DHT11_PIN);18.PORTC|=_BV(DHT11_PIN);19.Serial.begin(19200);20.Serial.println(Ready);21.}22.voidloop()23.{24.bytedht11_dat[5];25.bytedht11_in;26.bytei;27.//startcondition28.//1.pull-downi/opinfrom18ms29.PORTC&=~_BV(DHT11_PIN);30.delay(18);31.PORTC|=_BV(DHT11_PIN);32.delayMicroseconds(40);33.DDRC&=~_BV(DHT11_PIN);34.delayMicroseconds(40);35.dht11_in=PINC&_BV(DHT11_PIN);36.if(dht11_in){37.Serial.println(dht11startcondition1notmet);38.return;39.}40.delayMicroseconds(80);41.dht11_in=PINC&_BV(DHT11_PIN);42.if(!dht11_in){43.Serial.println(dht11startcondition2notmet);44.return;45.}46.delayMicroseconds(80);47.//nowreadyfordatareception48.for(i=0;i5;i++)49.dht11_dat=read_dht11_dat();50.DDRC|=_BV(DHT11_PIN);51.PORTC|=_BV(DHT11_PIN);52.bytedht11_check_sum=dht11_dat[0]+dht11_dat[1]+dht11_dat[2]+dht11_dat[3];53.//checkcheck_sum54.if(dht11_dat[4]!=dht11_check_sum)55.{56.Serial.println(DHT11checksumerror);57.}58.Serial.print(Currenthumdity=);59.Serial.print(dht11_dat[0],DEC);60.Serial.print(.);61.Serial.print(dht11_dat[1],DEC);62.Serial.print(%);63.Serial.print(temperature=);64.Serial.print(dht11_dat[2],DEC);65.Serial.print(.);66.Serial.print(dht11_dat[3],DEC);67.Serial.println(C);68.delay(2000);69.}复制代码4实验操作1)按照图5-28-3将电路连接到landzoduino开发板上。将DHT11模块接到Arduino传感器扩展板的模拟口0。2)插上编程线,把程序下载到Landzoduino控制板。3)观察运行情况。5实验结果编译代码后下载到Arduino中,打开串口助手即可看见实际测量的温度与湿度。6实验视频7资料内容王有才,如果您要查看本帖隐藏内容请回复8结束语到此,蓝宙每日一讲【蓝宙每日一讲】第75讲Arduino入门教程实验28DHT11温湿度实验一帖已经结束了。有什么疑问和问题欢迎在本帖留言,我们会及时回复您。另外,本讲的资料已经附在帖子中,欢迎下载。

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功