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