基礎(chǔ)知識(shí)之無源紅外傳感器
1. 什么是無源紅外傳感器?
PIR全稱為Passive Infra-Red,稱作被動(dòng)紅外傳感器(又被稱為Pyroelectric Infrared——熱釋電紅外線傳感器)是近年來發(fā)展起來的一種新型高靈敏度探測元件,是一種能檢測人體發(fā)射的紅外線而輸出電信號(hào)的傳感器。它能組成防入侵報(bào)警器或各種自動(dòng)化節(jié)能裝置。它能以非接觸形式檢測出人體輻射的紅外線能量的變化,并將其轉(zhuǎn)換成電壓信號(hào)輸出。將這個(gè)電壓信號(hào)加以放大,便可驅(qū)動(dòng)各種控制電路,如作電源開關(guān)控制、防盜防火報(bào)警等。
本文引用地址:http://2s4d.com/article/202402/455694.htm紅外線傳感器是將紅外輻射能轉(zhuǎn)換成電能的一種光敏元件,通常將紅外線傳感器分為熱型和光子型兩種。熱釋電紅外傳感器是利用紅外輻射的熱輻射作用引起元件本身的溫度變化,其探測率、響應(yīng)速度都不如光子型傳感器。但由于熱釋電型傳感器可在室溫下使用,靈敏度與波長無關(guān),所以應(yīng)用領(lǐng)域廣。通用性好的熱型傳感器有熱電堆、熱敏電阻測輻射熱計(jì)、高萊管等。其中,利用鐵電體熱釋電效應(yīng)的熱釋電型紅外傳感器(PIR)靈敏度高,可以廣泛地用于民用領(lǐng)域。
2. 無源紅外傳感器是如何工作的?
PIR傳感器的工作原理是熱釋電效應(yīng)。當(dāng)一些晶體受熱時(shí),在晶體兩端將會(huì)產(chǎn)生數(shù)量相等而符號(hào)相反的電荷,這種由于熱變化產(chǎn)生的電極化現(xiàn)象,被稱為熱釋電效應(yīng)。通常,晶體自發(fā)極化所產(chǎn)生的束縛電荷被來自空氣中附著在晶體表面的自由電子所中和,其自發(fā)極化電矩不能表現(xiàn)出來。當(dāng)溫度變化時(shí),晶體結(jié)構(gòu)中的正負(fù)電荷重心相對(duì)移位,自發(fā)極化發(fā)生變化,晶體表面就會(huì)產(chǎn)生電荷耗盡,電荷耗盡的狀況正比于極化程度。下圖表示了熱釋電效應(yīng)形成的原理。
熱釋電傳感器利用的正是熱釋電效應(yīng),是一種溫度敏感傳感器。它由陶瓷氧化物或壓電晶體元件組成,元件兩個(gè)表面做成電極,當(dāng)傳感器監(jiān)測范圍內(nèi)溫度有ΔT的變化時(shí),熱釋電效應(yīng)會(huì)在兩個(gè)電極上會(huì)產(chǎn)生電荷ΔQ,即在兩電極之間產(chǎn)生一微弱電壓ΔV。由于它的輸出阻抗極高,所以傳感器中有一個(gè)場效應(yīng)管進(jìn)行阻抗變換。熱釋電效應(yīng)所產(chǎn)生的電荷ΔQ會(huì)跟空氣中的離子所結(jié)合而消失,當(dāng)環(huán)境溫度穩(wěn)定不變時(shí),ΔT=0,傳感器無輸出。當(dāng)人體進(jìn)入檢測區(qū)時(shí),因人體溫度與環(huán)境溫度有差別,產(chǎn)生ΔT,則有信號(hào)輸出;若人體進(jìn)入檢測區(qū)后不動(dòng),則溫度沒有變化,傳感器也沒有輸出,所以這種傳感器能檢測人體或者動(dòng)物的活動(dòng)。
人體溫度大約為36°-37°,輻射出的波長在一定范圍。濾光片可以只讓這個(gè)波長范圍的紅外線通過,使得 PIR傳感器只對(duì)人體敏感,而不受太陽、燈光等其它熱源影響,上圖2為PIR傳感器結(jié)構(gòu)與簡易內(nèi)部電路。
由于PIR只能檢測到距離有限。如果在外面加上一個(gè)菲涅爾透鏡(下圖),把外部的光線會(huì)聚到 PIR 上,增加進(jìn)光量,則可大大增加 PIR 的檢測距離和角度。同時(shí),通過控制菲涅耳透鏡內(nèi)部的角度,可以控制焦距,制作出檢測距離不同.的 PIR。做完這些工作之后,有了一定的檢測距離和角度。但是人體必須經(jīng)過整個(gè)檢測區(qū)域才能產(chǎn)生兩次變化(進(jìn)入檢測區(qū)和離開檢測區(qū))。我們希望能夠檢測到更小幅度的移動(dòng),捕獲更多的變化信號(hào)。在菲涅爾透鏡上做點(diǎn)變化,把檢測區(qū)分成若干個(gè)小格,間隔的區(qū)域會(huì)把光反射出去。這樣整個(gè)檢測區(qū)就變成若干個(gè)相鄰的靈敏區(qū)和盲區(qū)。當(dāng)人體移動(dòng)時(shí),會(huì)經(jīng)過一個(gè)靈敏區(qū),又進(jìn)入一個(gè)盲區(qū)…… 最后產(chǎn)生連續(xù)的脈沖信號(hào)。
菲涅爾透鏡可以聚光,為傳感器提供更大范圍的紅外光。
好了,現(xiàn)在我們有了一個(gè)更大的范圍。但是實(shí)際上我們有兩個(gè)傳感器,更重要的是,我們不需要兩個(gè)非常大的感應(yīng)區(qū)域矩形,而是需要分散的多個(gè)小區(qū)域。因此,我們要做的是將透鏡分成多個(gè)部分,每個(gè)部分都是菲涅爾透鏡。
上面這張微距照片展示了每個(gè)切面上不同的菲涅爾透鏡;
由上文可知,人體都有恒定的體溫,一般在37°C左右,會(huì)發(fā)出10 um左右特定波長的紅外線,被動(dòng)式紅外探頭就是靠探測人體發(fā)射的紅外線而進(jìn)行工作的。紅外線通過菲涅耳濾光片增強(qiáng)后聚集到熱釋電元件,這種元件在接收到人體紅外輻射變化時(shí)就會(huì)失去電荷平衡,向外釋放電荷,后經(jīng)檢測處理后就能產(chǎn)生報(bào)警信號(hào)。被動(dòng)紅外探頭,其傳感器包含兩個(gè)互相串聯(lián)或并聯(lián)的熱釋電元件,而且制成的兩個(gè)電極化方向正好相反(如下圖所示),環(huán)境背景輻射對(duì)兩個(gè)熱釋元件幾乎具有相同的作用,使其產(chǎn)生釋電效應(yīng)相互抵消,于是探測器無信號(hào)輸出。
3. 如何應(yīng)用無源紅外傳感器?
由于PIR傳感器收集到的數(shù)據(jù)經(jīng)過電路的輸出的電壓信號(hào)太微弱,需經(jīng)過放大電路,過濾掉噪聲干擾,提取有用的信號(hào)放大。后級(jí)放大電路包括:帶通濾波、兩級(jí)高增益放大、比較電路。下圖為PIR前置放大電路設(shè)計(jì)圖
上圖中熱釋電傳感器D端和5V電源間串聯(lián)10kΩ電阻,用于降低射頻干擾,G端接地,S端接47 kΩ負(fù)載電阻,偏置電壓約為1 V。傳感器輸出直接耦合到低噪聲運(yùn)放(LM324構(gòu)成的帶通濾波和第一級(jí)放大電路的反向輸入端,再由電阻R6、電容C8耦合到第二級(jí)反向放大電路進(jìn)行進(jìn)一步濾波、放大。 熱釋電紅外傳感器的應(yīng)用很廣,大體可分為定性測量和定量測量兩類。 定量測量是測量紅外光源的溫度T,是一種非接觸的測定溫度的方法。它的基本依據(jù)如下,首先輻射能流密度ωλ可表示為:
式中, ωλ為輻射率,相當(dāng)于對(duì)絕對(duì)黑體的修正,是一個(gè)小于等于1的數(shù);h為普朗克常數(shù);λ為波長,c為光速;k為波爾茲曼常數(shù);T為絕對(duì)溫度。
由上圖可知,無源紅外報(bào)警器裝置的工作流程是:物體射出的紅外線先通過菲涅爾透鏡,然后到達(dá)熱釋電紅外探測器。這時(shí),熱釋電紅外探測器將輸出脈沖信號(hào),脈沖信號(hào)經(jīng)放大和濾波后,由電壓比較器將其與基準(zhǔn)值進(jìn)行比較,當(dāng)輸出信號(hào)達(dá)到一定值時(shí),報(bào)警電路發(fā)出警報(bào)。 熱釋電紅外傳感器和少量外接元器件構(gòu)成被動(dòng)式的熱釋電紅外開關(guān)。在民用領(lǐng)域中可廣泛應(yīng)用??勺鰹榘谉霟?、熒光燈、蜂鳴器、自動(dòng)門、電風(fēng)扇、烘干機(jī)和自動(dòng)洗手池等裝置的自動(dòng)快速開啟的自動(dòng)感應(yīng)開關(guān),特別適用于企業(yè)、賓館、商場、庫房及家庭的過道、走廊等敏感區(qū)域,或用于安全區(qū)域的自動(dòng)燈光、照明和報(bào)警系統(tǒng)。
TCRT1000是一種常見的紅外反射傳感器,它由發(fā)射裝置和接收裝置組成。以下是TCRT1000傳感器的具體介紹:
工作原理: 當(dāng)發(fā)射裝置發(fā)送紅外光束時(shí),如果有物體遮擋在傳感器前方,紅外光束會(huì)被物體反射回傳感器的接收裝置。接收裝置接收到反射的紅外光信號(hào)后會(huì)產(chǎn)生電信號(hào)輸出。
功能特點(diǎn):
技術(shù)參數(shù):
目前PIR傳感器有以下的用處:
4. 主要的無源紅外傳感器供應(yīng)商
5. 參考案列
針對(duì)與本次無源紅外傳感器,我們采用了GY——906無源紅外溫度傳感器(基本原理與PIR傳感器沒有太大差別)與基于RP2040的邏輯/協(xié)議/信號(hào)調(diào)試助手——十二指神探進(jìn)行聯(lián)接,通過micropython語言來編譯相關(guān)代碼,實(shí)現(xiàn)其功能:
代碼如下:
from machine import Pin, I2C import time
i2c = I2C(1, scl=Pin(23), sda=Pin(22)) address = 0x5A
while True:
i2c.writeto(address, bytearray([0x07])
time.sleep_ms(500)
# 讀取溫度數(shù)據(jù)
data = i2c.readfrom(address, 3)
temp_raw = (data[0] << 8) + data[1]
temp_celsius = (temp_raw * 0.02) - 273.15
temp_fahrenheit = (temp_celsius * 9 / 5) + 32
print("Temperature: {:.2f}°C / {:.2f}°F".format(temp_celsius, temp_fahrenheit))
time.sleep(1)
評(píng)論