×
嵌入式 > 集成电路 > 详情

基于传感器和PIC微控制器的相对湿度计

发布时间:2020-06-23 发布时间:
|
一.引言

  我们周围的空气是一种混合气体,空气中含有水蒸气,空气的干湿程度跟空气中含有的水蒸气的多少有关,而空气的干湿程度又跟我们的生活和生产密切相关,因此知道并掌握这方面的一些知识很有必要.

  (一)空气的湿度

  空气的湿度可通俗地理解为空气的潮湿程度.它有绝对湿度和相对湿度之分.

  1、绝对湿度:空气中水蒸气的压强p叫做空气的绝对湿度.

  空气的湿度可以用空气中所含水蒸汽的密度,即单位体积的空气中所含水蒸汽的质量来表示.由于直接测量空气中水蒸气的密度比较困难,而水蒸气的压强随水蒸气密度的增大而增大,所以通常用空气中水蒸气的压强来表示空气的湿度,这就是空气的绝对湿度.

  2、相对湿度

  (1)概念的引入:为了表示空气中水蒸气离饱和状态的远近而引入相对湿度的概念.

  (2)相对湿度B:某温度时空气的绝对湿度p跟同一温度下水的饱和汽压ps的百分比叫做这时空气的相对湿度.

  ①不同温度下水的饱和汽压可以查表得到

  ②在绝对湿度p不变而降低温度时,由于水的饱和汽压减小而使空气的相对湿度增大.

  ③居室的相对湿度以60%~70%较适宜.

  (二)露点

  1、露点:使空气里的水蒸气刚好达到饱和时的温度叫做露点.

  (1)露点温度时水的饱和汽压就是空气的绝对湿度.

  (2)根据露点和气温的差值,可大致判断出相对湿度大小,差值越大,相对湿度越小.

  2、露点可以测定.

  3、根据测定的露点可确定空气的相对湿度.从水的饱和汽压表中查出露点时的饱和汽压(等于空气在原来温度时的绝对湿度)再查出原来温度下饱和汽压,就可求出.

  (三)湿度计

  1、湿度计的构成:湿度计由两只完全相同的温度计构成.其中一只温度计为干泡温度计,另一只为湿泡温度计.

  2、湿度计测量完全相对湿度的原理:由于湿泡温度计的感温泡包着棉纱,棉纱的下端浸在水中,水的蒸发而使湿泡温度计的温度示数总是低于干泡温度计的温度示数(气温)这一温度差值跟水蒸发快慢(即当时的相对湿度)有关.根据两温度计的读数,从表或曲线上可查出空气的相对湿度.
二.如图所示,用一个具有容性响应的传感器和一只PIC微控制器(MCU)就可以构成一个相对湿度计

  其中Humirel公司提供的HS1101型传感器的电容取值范围为162 ~202pF。

  使用一个TLC555 CMOS 定时器作为振荡器,完成从电容到频率的转换,定时器的频率等式如下:F = 1.44/(RA + 2RB)×CX这里电阻RA和RB分别等于421 kΩ和42.4 kΩ,CX为传感器电容。接到定时器控制电压输入端的1MΩ电阻用来使与传感器温度系数相匹配的定时器内部温度系数失衡。

  MCU测量输入信号周期,并将其转换为相对湿度数字读数。这通过MCU内部计数器(TMR1)和捕获/比较/脉宽调制模块(CCP)来实现的。

  因为传感器的电容范围非常窄,信号的周期范围也会非常小,因此使用一个8.000MHz的晶振来获得0.5μs的指令周期。

  另外,CCP模块被配置成将输入电压分为4部分,这样就可以在由TLC555提供的不同周期中增加计数脉冲范围。PIC的CCP模块可以检测每4个或16个脉冲的上升或下降沿。

  在这种情况下,CCP模块是按4个上升沿配置的。此检测事件存储在寄存器PIR1的CCP1IF标志位。当检测到第一个上升沿时此标志位被置位,通过软件使能TMR1开始计数。

  随后该标志位必须被清除,等待检测第四个上升沿,然后停止定时器。现在必须将代表一个周期的总计数从存储器TMR1L和TMR1H分别转存到存储器CCPR1L和CCPR1H。

  利用该数据,我们进一步从结果周期数中减去对应于湿度0%的周期数(在本例中,取十进制数62(3EH)) 以完成从周期数到相对湿度的转换。对应于湿度0%的周期数可以由制造商提供的等式和TLC555定时器产生的频率计算确定。

  16位减法是通过首先对上述数值进行二进制补运算,然后将结果加到由TMR1得到的数据而实现的,这个算术运算的结果即对应于相对湿度。最后由MCU完成从二进制数到BCD码的转换。

  二进制到BCD的转换使用三个外存储器:个、十、百位存储器,相对湿度(湿度百分比)被送到个位存储器,然后减10,由累加器W保存此运算结果。

  通过测试状态寄存器的进位,我们可以知道运算结果是否大于10。如果小于10,则运算结果只有个位,不需要继续进行更多的比较运算,这样转换就仅限于于个位存储器。

  如果运算结果大于10,十位存储器加1,十位存储器加1时个位存储器必须进行同样的减10运算。

  当十位存储器等于10时,百位存储器加1。同样的运算处理一直进行下去,直到个位存储器的数小于10。转换结束时,每个存储器的结果便是BCD码,BCD码到七段数码的转换由子程序OPTABLE完成。

  转换电路有一个四位多路共阴极LED显示器,要求采用一个多路转换程序来正确地显示读数。多路转换通过以200Hz的频率切换三个2N2222晶体管,一次激发一个显示单元的方式来实现。




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
分析怎样提高LED照明的可靠性