欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    DHT22-数字温湿度-传感器-AM2302温湿度模块(带说明).doc

    • 资源ID:12062027       资源大小:366.50KB        全文页数:11页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    DHT22-数字温湿度-传感器-AM2302温湿度模块(带说明).doc

    AM2302温湿度传感器C程序(测试可以用)2017-8-13说明:DHT22与DHT11程序基本相同,DHT11起始信号拉低18ms,DHT22起始信号拉低是800us,用户主机(MCU)发送一次起始信号(把数据总线SDA拉低至少800µs)后,AM2302从休眠模式转换到高速模式。待主机开始信号结束后,AM2302发送响应信号,从数据总线SDA串行送出40Bit 的数据,先发送字节的高位;发送的数据依次为湿度高位、湿度低位、温度高位、温度低位、校验位,发送数据结束触发一次信息采集,采集结束传感器自动转入休眠模式,直到下一次通信来临。注意事项:与DHT11相同,一次采集8个位数据,循环4次采集完成所有数据,40位采集完成后,校验数据,如果数据正确,将高8位左移8位与低8位相或,再保存到一个16位变量中,就可以得到一个整数值。默认采集的数据是实际值的10倍,例如当前实际温度是32.7度,采集到的数据是327,目的是为了编程时方便分离数据。(详细见后面说明书)0000 0010 1000 1100 0000 0001 0101 1111 1110 1110 湿度数据 温度数据 校验和 湿度高8位+湿度低8位+温度高8位+温度低8位=的末8位=校验和如果需要处理零下值,16位的最高位为1表示负数,温度最大量程:-2080度,分辨率:0.1度。如果用数据码管显示且有中断,采集数据开始需要关中断,采集结束开中断,否则在采集数据过程中,中断会打断DHT22时序,造成采集数据不正确。每次采集间隔大于1秒,否则采集数据不准确。C程序 :为了方便程序阅读,其它器件的初始化及定义都删除掉了,以下代码纯DHT22代码,使用时直接调用RH函数即可。由于程序多次修改,可能有多余的变量,大家自己清理下。RH函数调用后,以下四个变量会得相应的数据:R_H湿度高8位R_L湿度低8位(包含小数)T_H温度高8位T_L湿度低8位(包含小数)如果采集的数据是:0000 0010 1000 1100 0000 0001 0101 1111由上面四个变量是16位,采集数据是8位,分四次采完,8位放在16位里面应该是这样:R_H= 00000000 00000010R_L= 00000000 10001100所以R_H左移8个位或上R_L才是我们要的数据。R_H =R_H & R_L以上采集数据湿度为652,湿度为351,再除以10就是实际温湿度值。推荐精选#include <reg52.h>#include <intrins.h>typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */typedef signed char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 无符号16位整型变量 */typedef signed int S16; /* defined for signed 16-bits integer variable 有符号16位整型变量 */typedef unsigned long U32; /* defined for unsigned 32-bits integer variable 无符号32位整型变量 */typedef signed long S32; /* defined for signed 32-bits integer variable 有符号32位整型变量 */typedef float F32; /* single precision floating point variable (32bits) 单精度浮点数(32位长度) */typedef double F64; /* double precision floating point variable (64bits) 双精度浮点数(64位长度) */#define uchar unsigned char#define uint unsigned int#define Data_0_time 4/-/-IO口定义区-/-/sbit P2_0 = P32 ;/-/-定义区-/-/U8 U8FLAG,k;U8 U8count,U8temp;U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;U8 U8comdata;U8 outdata5; /定义发送的字节数 U8 indata5;U8 count, count_r=0;U8 str5="RS232"U16 U16temp1,U16temp2;U16 R_H,R_L,T_H,T_L; void Delay(U16 j) U8 i; for(;j>0;j-) for(i=0;i<27;i+);推荐精选 void Delay_10us(void) U8 i; i-; i-; i-; i-; i-; i-; void COM(void) U8 i; for(i=0;i<8;i+) U8FLAG=2; while(!P2_0)&&U8FLAG+);Delay_10us(); Delay_10us();Delay_10us(); U8temp=0; if(P2_0)U8temp=1; U8FLAG=2; while(P2_0)&&U8FLAG+); /超时则跳出for循环 if(U8FLAG=1)break; /判断数据位是0还是1 / 如果高电平高过预定0高电平值则数据位为 1 U8comdata<<=1; U8comdata|=U8temp; /0 /rof/-/-湿度读取子程序 -/-/-以下变量均为全局变量-/-温度高8位= U8T_data_H-/-温度低8位= U8T_data_L-/-湿度高8位= U8RH_data_H-/-湿度低8位= U8RH_data_L-/-校验 8位 = U8checkdata-/-调用相关子程序如下-/- Delay();, Delay_10us();,COM(); /-推荐精选void RH(void) /主机拉低18ms P2_0=0; Delay(18); P2_0=1; /总线由上拉电阻拉高 主机延时20usEA=0; Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); /主机设为输入 判断从机响应信号 P2_0=1; /判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行 if(!P2_0) /T ! U8FLAG=2; /判断从机是否发出 80us 的低电平响应信号是否结束 while(!P2_0)&&U8FLAG+); U8FLAG=2; /判断从机是否发出 80us 的高电平,如发出则进入数据接收状态 while(P2_0)&&U8FLAG+); /数据接收状态 COM(); U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; P2_0=1; /数据校验 U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp); if(U8temp=U8checkdata_temp) R_H=U8RH_data_H_temp; R_L=U8RH_data_L_temp;T_H=U8T_data_H_temp; T_L=U8T_data_L_temp; U8checkdata=U8checkdata_temp; 推荐精选EA=1;说明书:数字温湿度传感器AM2302 小体积AM2302 相对湿度和温度测量 全部校准,数字输出 卓越的长期稳定性 无需额外部件 超长的信号传输距离 超低能耗 4 引脚安装完全互换 AM2302产品概述AM2302数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个AM2302传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。应用领域推荐精选暖通空调 测试及检测设备汽车 数据记录器消费品 自动控制气象站 家电湿度调节器 医疗1、传感器性能说明参数条件MinTypMax单位湿度分辨率0.1%RH16Bit重复性±0.3%RH精度25±2%RH-2080±2%RH互换性可完全互换采样周期2S响应时间1/e(63%)25,1m/s 空气<5S迟滞<±0.3%RH长期稳定性典型值<±0.5%RH/yr温度分辨率0.116Bit重复性±0.2精度<±0.5量程范围-4080响应时间1/e(63%)620S2、 采样周期不得低于最小值,否则会引起错误3、 接口说明 建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻 AM2302的接线图如下图所示。推荐精选 3、电源引脚AM2302的供电电压为3.3-6V。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。4、单总线接口 DATA 用于微处理器与 AM2302之间的通讯和同步,采用单总线数据格式,一次通讯时间5ms左右 ,具体格式在下面说明,当前数据传输为40bit,高位先出。数据格式: 40bit数据=16bit湿度数据+16bit温度数据+8bit校验和例子: 接收40bit数据如下: 0000 0010 1000 1100 0000 0001 0101 1111 1110 1110 湿度数据 温度数据 校验和 湿度高8位+湿度低8位+温度高8位+温度低8位=的末8位=校验和 例如:0000 0010+1000 1100+0000 0001+0101 1111=1110 1110 湿度=65.2RH 温度=35.1 当温度低于0时温度数据的最高位置1。 例如:-10.1表示为1000 0000 0110 0101 用户主机(MCU)发送一次开始信号后,AM2302从低功耗模式转换到高速模式,等待主机开始信号结束后,AM2302发送响应信号,送出40bit的数据,并触发一次信号采集。(注:主机从AM2302读取的温湿度数据总是前一次的测量值,如两次测量间隔时间很长,请连续读两次以获得实时的温湿度值)图1 空闲时总线为高电平,通讯开始时主机(MCU)拉低总线110ms后释放总线,延时20-40us后主机开始检测从机(AM2302)的响应信号。推荐精选 从机的响应信号是一个80us左右的低电平,随后从机在拉高总线80us左右代表即将进入数据传送。 图2 高电平后就是数据位,每1bit数据都是由一个低电平时隙和一个高电平组成。低电平时隙就是一个50us左右的低电平,它代表数据位的起始,其后的高电平的长度决定数据位所代表的数值,较长的高电平代表1,较短的高电平代表0。共40bit数据,当最后一Bit数据传送完毕后,从机将再次拉低总线50us左右,随后释放总线,由上拉电阻拉高。数字1信号表示方法如图4所示 图4数字0信号表示方法.如图5所示 图55、 测量分辨率推荐精选测量分辨率分别为 16bit(温度)、16bit(湿度)。6、电气特性VDD=5V,T = 25,除非特殊标注参数条件mintypmax单位供电 DC3.36V供电电流测量11.5mA待机4050uA采样周期秒2次注:采样周期间隔不得低于2秒钟(建议2秒以上)。7、应用信息7.1工作与贮存条件超出建议的工作范围可能导致高达3%RH的临时性漂移信号。返回正常工作条后,传感器会缓慢地向校准状态恢复。要加速恢复进程/可参阅7.3小节的“恢复处理”。在非正常工作条件下长时间使用会加速产品的老化过程。7.2暴露在化学物质中电容式湿度传感器的感湿层会受到化学蒸汽的干扰,化学物质在感应层中的扩散可能导致测量值漂移和灵敏度下降。在一个纯净的环境中,污染物质会缓慢地释放出去。下文所述的恢复处理将加速实现这一过程。高浓度的化学污染会导致传感器感应层的彻底损坏。7.3恢复处理置于极限工作条件下或化学蒸汽中的传感器,通过如下处理程序,可使其恢复到校准时的状态。在50-60和< 10%RH的湿度条件下保持2 小时(烘干);随后在20-30和>70%RH的湿度条件下保持 5小时以上。7.4温度影响气体的相对湿度,在很大程度上依赖于温度。因此在测量湿度时,应尽可能保证湿度传感器在同一温度下工作。如果与释放热量的电子元件共用一个印刷线路板,在安装时应尽可能将DHT22远离发热电子元件,并安装在热源下方,同时保持外壳的良好通风。7.5光线长时间暴露在太阳光下或强烈的紫外线辐射中,会使性能降低。7.6配线注意事项DATA信号线材质量会影响通讯距离和通讯质量,推荐使用高质量屏蔽线。8、 封装信息小体积封装推荐精选引脚号:从左到右顺序为 1、2、3、4.DHT22小体积封装引脚说明Pin名称注释1VDD供电 3.36VDC2DATA串行数据,单总线3NC空脚,请悬空4GND接地,电源负极带电路板安装壳封装DHT22带电路板安装壳封装引脚说明,大封装:Pin名称注释1VDD供电 3.3-6V DC2DATA串行数据,单总线3GND接地,电源负极4NC空脚,请悬空(不要接Vcc或Gnd)推荐精选 (注:可编辑下载,若有不当之处,请指正,谢谢!) 推荐精选

    注意事项

    本文(DHT22-数字温湿度-传感器-AM2302温湿度模块(带说明).doc)为本站会员(scccc)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开