基于傳感器和PIC微控制器的相對濕度計
我們周?chē)目諝馐且环N混合氣體,空氣中含有水蒸氣,空氣的干濕程度跟空氣中含有的水蒸氣的多少有關(guān),而空氣的干濕程度又跟我們的生活和生產(chǎn)密切相關(guān),因此知道并掌握這方面的一些知識很有必要.
(一)空氣的濕度
空氣的濕度可通俗地理解為空氣的潮濕程度.它有絕對濕度和相對濕度之分.
1、絕對濕度:空氣中水蒸氣的壓強p叫做空氣的絕對濕度.
空氣的濕度可以用空氣中所含水蒸汽的密度,即單位體積的空氣中所含水蒸汽的質(zhì)量來(lái)表示.由于直接測量空氣中水蒸氣的密度比較困難,而水蒸氣的壓強隨水蒸氣密度的增大而增大,所以通常用空氣中水蒸氣的壓強來(lái)表示空氣的濕度,這就是空氣的絕對濕度.
2、相對濕度
(1)概念的引入:為了表示空氣中水蒸氣離飽和狀態(tài)的遠近而引入相對濕度的概念.
(2)相對濕度B:某溫度時(shí)空氣的絕對濕度p跟同一溫度下水的飽和汽壓ps的百分比叫做這時(shí)空氣的相對濕度.
?、俨煌瑴囟认滤娘柡推麎嚎梢圆楸淼玫?/P>
?、谠诮^對濕度p不變而降低溫度時(shí),由于水的飽和汽壓減小而使空氣的相對濕度增大.
?、劬邮业南鄬穸纫?0%~70%較適宜.
(二)露點(diǎn)
1、露點(diǎn):使空氣里的水蒸氣剛好達到飽和時(shí)的溫度叫做露點(diǎn).
(1)露點(diǎn)溫度時(shí)水的飽和汽壓就是空氣的絕對濕度.
(2)根據露點(diǎn)和氣溫的差值,可大致判斷出相對濕度大小,差值越大,相對濕度越小.
2、露點(diǎn)可以測定.
3、根據測定的露點(diǎn)可確定空氣的相對濕度.從水的飽和汽壓表中查出露點(diǎn)時(shí)的飽和汽壓(等于空氣在原來(lái)溫度時(shí)的絕對濕度)再查出原來(lái)溫度下飽和汽壓,就可求出.
(三)濕度計
1、濕度計的構成:濕度計由兩只完全相同的溫度計構成.其中一只溫度計為干泡溫度計,另一只為濕泡溫度計.
2、濕度計測量完全相對濕度的原理:由于濕泡溫度計的感溫泡包著(zhù)棉紗,棉紗的下端浸在水中,水的蒸發(fā)而使濕泡溫度計的溫度示數總是低于干泡溫度計的溫度示數(氣溫)這一溫度差值跟水蒸發(fā)快慢(即當時(shí)的相對濕度)有關(guān).根據兩溫度計的讀數,從表或曲線(xiàn)上可查出空氣的相對濕度.
二.如圖所示,用一個(gè)具有容性響應的傳感器和一只PIC微控制器(MCU)就可以構成一個(gè)相對濕度計。
其中Humirel公司提供的HS1101型傳感器的電容取值范圍為162 ~202pF。
使用一個(gè)TLC555 CMOS 定時(shí)器作為振蕩器,完成從電容到頻率的轉換,定時(shí)器的頻率等式如下:F = 1.44/(RA + 2RB)×CX這里電阻RA和RB分別等于421 kΩ和42.4 kΩ,CX為傳感器電容。接到定時(shí)器控制電壓輸入端的1MΩ電阻用來(lái)使與傳感器溫度系數相匹配的定時(shí)器內部溫度系數失衡。
MCU測量輸入信號周期,并將其轉換為相對濕度數字讀數。這通過(guò)MCU內部計數器(TMR1)和捕獲/比較/脈寬調制模塊(CCP)來(lái)實(shí)現的。
因為傳感器的電容范圍非常窄,信號的周期范圍也會(huì )非常小,因此使用一個(gè)8.000MHz的晶振來(lái)獲得0.5μs的指令周期。
另外,CCP模塊被配置成將輸入電壓分為4部分,這樣就可以在由TLC555提供的不同周期中增加計數脈沖范圍。PIC的CCP模塊可以檢測每4個(gè)或16個(gè)脈沖的上升或下降沿。
在這種情況下,CCP模塊是按4個(gè)上升沿配置的。此檢測事件存儲在寄存器PIR1的CCP1IF標志位。當檢測到第一個(gè)上升沿時(shí)此標志位被置位,通過(guò)軟件使能TMR1開(kāi)始計數。
隨后該標志位必須被清除,等待檢測第四個(gè)上升沿,然后停止定時(shí)器?,F在必須將代表一個(gè)周期的總計數從存儲器TMR1L和TMR1H分別轉存到存儲器CCPR1L和CCPR1H。
利用該數據,我們進(jìn)一步從結果周期數中減去對應于濕度0%的周期數(在本例中,取十進(jìn)制數62(3EH)) 以完成從周期數到相對濕度的轉換。對應于濕度0%的周期數可以由制造商提供的等式和TLC555定時(shí)器產(chǎn)生的頻率計算確定。
16位減法是通過(guò)首先對上述數值進(jìn)行二進(jìn)制補運算,然后將結果加到由TMR1得到的數據而實(shí)現的,這個(gè)算術(shù)運算的結果即對應于相對濕度。最后由MCU完成從二進(jìn)制數到BCD碼的轉換。
二進(jìn)制到BCD的轉換使用三個(gè)外存儲器:個(gè)、十、百位存儲器,相對濕度(濕度百分比)被送到個(gè)位存儲器,然后減10,由累加器W保存此運算結果。
通過(guò)測試狀態(tài)寄存器的進(jìn)位,我們可以知道運算結果是否大于10。如果小于10,則運算結果只有個(gè)位,不需要繼續進(jìn)行更多的比較運算,這樣轉換就僅限于于個(gè)位存儲器。
如果運算結果大于10,十位存儲器加1,十位存儲器加1時(shí)個(gè)位存儲器必須進(jìn)行同樣的減10運算。
當十位存儲器等于10時(shí),百位存儲器加1。同樣的運算處理一直進(jìn)行下去,直到個(gè)位存儲器的數小于10。轉換結束時(shí),每個(gè)存儲器的結果便是BCD碼,BCD碼到七段數碼的轉換由子程序OPTABLE完成。
轉換電路有一個(gè)四位多路共陰極LED顯示器,要求采用一個(gè)多路轉換程序來(lái)正確地顯示讀數。多路轉換通過(guò)以200Hz的頻率切換三個(gè)2N2222晶體管,一次激發(fā)一個(gè)顯示單元的方式來(lái)實(shí)現。
傳感器相關(guān)文章:傳感器工作原理
評論