引言 随着时代的发展,数字化家居控制系统的出现使得人们可以通过手机或者互联网在任何时候、任意地点对家中的任意电器进行远程控制,同时也可以对室内的空气温度、湿度、质量进行监测和调节。 在常规的环境参数检测中,湿度是最难准确测量的一个参数。这是因为测量湿度要比测量温度复杂得多,温度是个独立的被测量,而湿度却受其他因素(大气压强、温度)的影响。本文选用一种具有独特工艺设计、价格较低廉的、高精度、极好的线性输出的HSll01做为湿度传感器.较好的实现了对空气湿度的测量。并予以显示。
1 HSl 101简介 HSll01是法国Humirel公司推出的一款电容式相对湿度传感器。该传感器可广泛应用于办公室、家庭、
汽车驾驶室、和工业过程控制系统等,对空气湿度进行检测。与其他产品相比,有着显著的优点: ◆无需校准的完全互换性: ◆长期饱和状态,瞬间脱湿: ◆适应自动装配过程,包括波峰焊接、回流焊接等; ◆具有高可靠性和长期稳定性: ◆特有的固态聚合物结构: ◆适用于线性电压输出和线性频率输出两种电路; ◆响应时间快。 1.1基本参数 基本参数如表l所示。默认测量温度‘rct=25~C,测量时HSll01工作频率为10Khzo
1.2特性曲线 如图1。测量温度Tα=25。C,测量时HSll01工作频率为10Khzo
从特性曲线曲线图上我们可以看出,HSll01具有极好的线性输出。可以近似看成相对湿度值与电容值成比例。因此在测量过程中,采集电容值即可。
2测量电路 2.1湿度定义 湿度指的是相对湿度。用%RH表示。即气体中(通常为空气中)所含水蒸气量(水蒸气压)与其空气在相同情况下饱和水蒸气量(饱和水蒸气压)的百分比。 2.2测量原理 HSll00湿度传感器是一种基于电容原理的湿度传感器,相对湿度的变化和电容值呈线性规律。在自动测试系统中,电容值随着空气湿度的变化而变化,因此将电容值的变化转换成电压或频率的变化,才能进行有效地数据采集。用555集成电路组成振荡电路,HSl 100湿度传感器充当振荡电容,从而完成湿度到频率的转换。 2.3测量方法 HSll01湿敏传感器是采用侧面开放式封装,只有两个引脚,有线性电压输出和线性频率输出两种电路。在使用时,将2脚接地,这里选用频率输出电路。该传感器采用电容构成材料,不允许直流方式供电。所以我们使用555定时器电路组成单稳态电路。具体电路分析如下。
电源电压工作范围是UCC=+3.5~+12V。利用一片CMOS定时器TLC555.配上HSll01和电阻R2、R4构成单稳态电路,将相对湿度值变化转换成频率信号输出。输出频率范围是7351-6033Hz,所对应的相对湿度为0~100%。当RH=55%时,f=6660Hz。输出的频率信号可送至数字频率计或控制系统,经整理后送显示。R3为输出端的限流电阻,起保护作用。通电后.电源沿着Uc→R4→R2→C对HSl 101充电。经过t1时间后湿敏电容的压降Uc就被充电到TI~C555的高触发电平(Uh=0.67Ucc),使内部比较器翻转,OUT的输出变成低电平。然后C开始放电,放电回路为C→R2→D→内部放电管地。经过t2时间后,Uc降到低触发电平(Ul=0.33Ucc),内部比较器再次翻转,使OUT端的输出变成高电平。这样周而复始的进行充、放电,形成了振荡。充电、放电时间计算公式分别为:tl=C(R2+R4)ln2;t2=CR21n2;输出波形的频率(f)和占空比(D)的计算公式如下:f=1/T=1/(t1+t2)=1/C(2R2+R4)ln2;D=tl/T=t1/t1+t2=R2+R4/(2R2+R4);通常取R4《R2,使D≈50%,输出接近于方波。例如,取人R2=567kQ,R4=49.9kΩ。 湿度传感器只是保证传感探头的精度,在实际使用中,综合精度除了与湿度传感器本身元件有关,还与外围电路的器件选择相关。为了与HSll01温度系数相匹配,Rl数值应取为1%精度,且最大温漂不超过100ppm(ppm:百万分之一,表示当温度变化1℃,所对应的电阻相对变化量)。为了保证达到6660Hz/55%,R2与555电路选取参照如下表: 当RH=55%、TA=+25℃时,典型输出方波频率与相对湿度的数据对照见表3。
2.4与微处理器IPC2132接口 LPC2132是一种支持实时仿真和跟踪的16/32位基于ARM7TDMI-S内核的CPU,并带有64KB嵌入的高速FLASH存储器。LPC2132的实时仿真和跟踪功能方便了代码调试,降低了开发成本。并且I/O口能够接受5V容限。整个湿度传感器由于采用频率输出电路,接口简单,可直接与LPC2132普通I/0对接,这里选用PO.6脚做为频率测量接口。
3软件设计 软件设计主要完成对HSl 101在单位时间内的频率测量。软件设计采用端口扫描方式,间隔8S开始测量,测量时间为1S。统计单位时间内脉冲的个数,与表3对照,确定湿度值的范围,并将湿度值通过LCD显示。为了保证测量精度,可以取3次以上测量数据,求平均值后,作为最终送显示数据。微处理器工作晶体选用12.000MHz。程序代码采用嵌入式C语言编写,经在ADSl.2编译环境中进行编译后,移植到微处理器内执行。软件主要测量代码如下,并给出了详细注释。 Do { IODIR0=10DIROIRO&OXOfffffbf: //p0.6设置成输入 d0 //读IO口寄存器 { if((IOPIN0&(1<<0
x06))==0
x00000000) break: //检测0电平 } while(1); Do { if((IOPIN0&(1<<0
x06))!=Ox00000000) break: //检测l电平 }while(1); fdat++: //累积1S时间内脉冲个数 } while(pt8s%8==0); //间隔8S测量一次 fdat——; time(1); //延时必须保留 if((fdat>6033)&(fdat<6187))rhb=90; //将测量数值转换为对应百分比,1%一100% if((fdat>6186)&(fdat<6331))rhb=80; if((fdat>6330)&(fdat<6469))rhb=70; if((fdat>6468)&(fdat<6601))rhb=60; if((fdat>6600)&(fdat<6729))rhb=50; if((fdat>6728)&(fdat<6854))rhb=40; if((fdat>6853)&(fdat<6977))rhb=30; if((fdat>6976)&(fdat<7101))rhb=20; if((fdat>7100)&(fdat<7225))rhb=10; if(fdat>7224)rhb=00: lhb=fdat%100: //对测量数值取低两位 time(1); //处理需要等待一段时间,否则lhb=0 if((rhb==60)(rhb==70)(rhb==90))lhb=lhb/13: //对低两位数值取个位, else if(rhb==80)lhb=lhb/1 4; else lhb=lhb/12; time(1); rhb=rhb+lhb; //将数据合成一起,送显示 fdat=Ox00000000;//清0,为下次准备 }
4结语 由于HSll01采用独特的电容式单元设计,具有响应速度快、体积小、线性度好、较稳定等优点,我们将HSll01用在智能家居控制系统中,完成对空气湿度的测量,经长期应用,性能达到了稳定可靠,同时也实现了对低成本的要求。