超毅電子
超毅電子
超毅電子 資訊熱線: 4008-800-932
當(dāng)前位置:首頁 » 資訊中心 » 解決方案 » 紅外感應(yīng)原理知識普及

紅外感應(yīng)原理知識普及

目錄:解決方案星級:3星級人氣:-發(fā)表時間:2013-05-10 09:30:00
RSS訂閱 文章出處:光敏二極管網(wǎng)責(zé)任編輯:紅外發(fā)光二極管作者:Alex

 

紅外感應(yīng)原理基礎(chǔ)知識包括:紅外感應(yīng)開關(guān)原理、去除環(huán)境光的干擾、解決感應(yīng)波動問題、增大感應(yīng)距離、提升抗干擾能力。本文主圍繞著紅外線發(fā)光二極管,光敏二極管展開解說:

所謂的紅外感應(yīng)開關(guān),只是利用了人眼看不到的紅外線來感應(yīng)物體的,感應(yīng)開關(guān)的核心元器件就是紅外反射傳感器了。紅外反射傳感器包括一個紅外線發(fā)光二極管和一個紅外線光敏二極管,它們兩個都朝著一個方向,被封裝在一個塑料外殼里。使用的時候,紅外線發(fā)光二極管點亮,發(fā)出一道人眼看不見的紅外光。如果傳感器的前方?jīng)]有物體,那么這道紅外光就以每秒299792458 米的速度(光速)消散在宇宙空間。但如果傳感器前方有不透明的物體時,紅外光就會被反射回來,照在自己也照在旁邊的紅外線光敏二極管身上。紅外線光敏二極管收到紅外光時,其輸出引腳的電阻值就會產(chǎn)生變化。判斷紅外線光敏二極管的阻值變化,就可以感應(yīng)前方物體,控制電器開關(guān)了。

下圖主要原理把紅外線發(fā)光二極管以某一頻率進(jìn)行調(diào)制,即讓它以一定的頻率閃爍。在紅外線光敏二極管一端則設(shè)計一個電路,讓接收端可以篩選出這一頻率的紅外光源。因為環(huán)境里的紅外光要么是沒有頻率的,要么就是有著自己固定的頻率。像收音機(jī)一樣,傳感器只要以自己的頻率發(fā)射,再以自己的頻率接收就可以過濾其他頻率光源的干擾了,而且由于接收管膠體也對可見光的波段光源進(jìn)行過濾,所以在室內(nèi)使用的情況下是沒有問題的。

 

 

不過,當(dāng)強(qiáng)光照進(jìn)室內(nèi),感應(yīng)開關(guān)受強(qiáng)光的影響而處在不穩(wěn)定的狀態(tài),自行的開關(guān),或是對反射物體沒有反應(yīng)。家里常用的電視機(jī)紅外線遙控器也會讓感應(yīng)開關(guān)失靈。即使把它放在陰暗的角落也會出現(xiàn)一個討厭的問題,當(dāng)反射物體處在某一個臨界距離時,感應(yīng)開關(guān)就會不斷的開關(guān),繼電器的吸合很快,好像一臺電報機(jī)。這是因為反射物體正好處在了感應(yīng)區(qū)的臨界點上,也就是“感應(yīng)到”和“感應(yīng)不到”的分界線上,物體微微靠近或離開就會產(chǎn)生開關(guān)狀態(tài)的改變。所以一般現(xiàn)都會通過單片機(jī)對光干擾進(jìn)行軟件上的處理,而且電路比用硬件來做簡單得多。具體電路如下所示:

 

 

 

 

 

對于設(shè)計中存在的一些問題:

1. 如何去除環(huán)境光的干擾?

與之前的硬件調(diào)制解調(diào)的方式不同,在使用ADC 功能之后,另一種解決方案會讓測試更有效率。那就是使用雙重檢測的方法,前提條件是單片機(jī)可以控制紅外發(fā)光二極管的開關(guān)。首先大家要制作ADC 功能可以讀出接在ADC 接口上電壓的模擬量,數(shù)值從0 255(十進(jìn)制)。紅外光敏二極管接收的紅外光線強(qiáng)時,ADC讀出的數(shù)值就大,反之就小。我們要做的就是控制紅外發(fā)光二極管在發(fā)光時讀一次ADC的數(shù)值,然后再讓紅外發(fā)光二極管熄滅,再讀一次ADC 的數(shù)值。我們先假設(shè)沒有其他紅外光源的干擾,當(dāng)紅外發(fā)光二極管熄滅時,紅外光敏二極管應(yīng)該檢測不到光源,ADC讀出的數(shù)值也應(yīng)該為0;當(dāng)紅外發(fā)光二極管點亮,且沒有反射物理時,ADC讀出的值也應(yīng)該很小,接近于為0;當(dāng)有反射物理時,紅外光敏二極管檢測到光源,ADC 讀出的數(shù)值會變大。如果存在其他光源的干擾,那么當(dāng)紅外發(fā)光二極管熄滅時也會讀到較大的數(shù)值,雙重檢測讀出的數(shù)值的差距越大,表示干擾光源越弱,反之則越強(qiáng)。我們通過這種雙重檢測就可以判斷接收到的紅外光是不是發(fā)射端發(fā)出來的了,兩次檢測的數(shù)值之差就是我們需要的最終數(shù)值。最終數(shù)值將參與下面的算法處理,也是我們判斷、處理的關(guān)鍵數(shù)據(jù)。單片機(jī)需要控制紅外發(fā)光二極管高速開關(guān),以便更快的采集數(shù)據(jù)。

 

最終數(shù)值 = 紅外發(fā)光二極管點亮?xí)rADC讀出的數(shù)值 - 紅外發(fā)光二極管熄滅時ADC讀出的數(shù)值

 

2. 如何解決臨界點的感應(yīng)波動問題?

微微向前一點就觸發(fā),微微向后一點就關(guān)斷,這是臨界點問題的困擾。問題的根源在于觸發(fā)的臨界點和關(guān)斷的臨界點是同一個距離。只要在基于單片機(jī)系統(tǒng)中把這兩個臨界點分開,就可以解決這個問題了。我們知道了,單片機(jī)需要處理的數(shù)據(jù)是“最終數(shù)值”,它是紅外發(fā)光二極管開、關(guān)狀態(tài)時ADC讀出的數(shù)值之差。最終數(shù)值也是一個從0 255 之間不斷變化的變量,反射物理離傳感器越近,“最終數(shù)值”就越大。如果我們在程序里設(shè)置當(dāng)“最終數(shù)值”大于某一值時(例如200)就觸發(fā)開關(guān),小于這一值時就關(guān)斷開關(guān)。這樣編程的效果就是單一臨界點的不穩(wěn)定開關(guān),單片機(jī)既然都可以模仿不穩(wěn)定的開關(guān),自然也很容易創(chuàng)造穩(wěn)定的開關(guān)了!只要寫一下程序的設(shè)置就可以很輕松的讓它變得穩(wěn)定。雙臨界點的設(shè)計只需要兩個數(shù)值的條件判斷:當(dāng)“最終數(shù)值”大于某一值時(例如200)就觸發(fā)開關(guān),當(dāng)“最終數(shù)值”小于另一個數(shù)值時(例如150)就關(guān)斷開關(guān)。這樣一來,在150 200 之間就會創(chuàng)建一塊中間區(qū)域。當(dāng)反射物理在這個區(qū)域前后移動時,開關(guān)仍保持其原來的狀態(tài),或判斷、或觸發(fā)。這種雙臨界點的設(shè)計,其實是給反射物體一個活動空間,對反射物體的穩(wěn)定性要求降低了,系統(tǒng)狀態(tài)就自然穩(wěn)定了下來。在實際調(diào)試過程中可以根據(jù)應(yīng)用的需要修改雙臨界點的兩個數(shù)值。比如做自動手龍頭,手的移動范圍較大,所以應(yīng)該

留出較大的活動區(qū)域。如果是做自動尋跡小車的傳感器,則可以用較小的活動區(qū)域,甚至改用單臨界點來實現(xiàn)。雙臨界點的設(shè)計是有啟發(fā)性的,你可以利用此設(shè)計來做更多的事情,或者用在其他傳感器的穩(wěn)定性設(shè)計之中。如下圖所示:

 

 

 

 

 

 

3. 如何增加感應(yīng)的成功率和可靠性?

“最終數(shù)值”處理和雙臨界點設(shè)計都可以增加系統(tǒng)的穩(wěn)定性,可以如果檢測出錯、或者出現(xiàn)誤差,在多

次數(shù)據(jù)采集中出現(xiàn)幾次失敗和誤差是很正常的事情,但如果這些誤差左右了開關(guān)的狀態(tài),給采集到的數(shù)據(jù)把關(guān)。一旦出現(xiàn)錯誤就放棄當(dāng)前的數(shù)據(jù),重新采集,這種設(shè)計就是一種冗余。所以設(shè)計了一段循環(huán)檢測語句,連續(xù)20 次檢測和判斷采集到的數(shù)據(jù),如果20 次中有1次誤差就馬上放棄當(dāng)前的所有數(shù)據(jù),重新檢測。連續(xù)20 次檢測已經(jīng)算是很穩(wěn)定的了,當(dāng)然你也可以為了更穩(wěn)定而改用連續(xù)50 次、100 次的檢測,但是系統(tǒng)的反應(yīng)速度會慢,靈敏度下降。靈敏度和穩(wěn)定度之間的矛盾是剛性的,在實際測試中找到適合目標(biāo)系統(tǒng)的檢測次數(shù)就可以了。“最終數(shù)值”、雙臨界點和20 次連續(xù)檢測聽上去好像是很復(fù)雜的事情,可是在程序里面卻是很簡單的幾條語句。設(shè)計的重點不在于程序的復(fù)雜性,而是整個系統(tǒng)的設(shè)計思路。下面列出一段關(guān)鍵程序部分與大家分享,這個簡單的程序包含了以上講到的3種抗干擾設(shè)計。

 

RAM_H = Read_ADC; //讀出LED亮?xí)rADC端口的值

RAM_L = Read_ADC; //讀出LED 滅時ADC端口的值

RAM_H = RAM_H - RAM_L; //2次檢測值之差,避開環(huán)境光干擾

if(RAM_H > 0x06)

{ //開啟時的距離(應(yīng)該小于關(guān)閉時的距離)

CON++; //計數(shù)加1

CON2 = 0;

if(CON > 20)

{ //連續(xù)20 次檢測,以避開干擾

CON = 0;

LED_Y = 0; //LED 指示燈點亮

}

}

if(RAM_H < 0x03)

{ //關(guān)閉時的距離

CON2++;

CON = 0;

if(CON2 > 20)

{

CON2 = 0;

LED_Y = 1; //LED 指示燈熄滅

}

}

 

“最終數(shù)值”、雙臨界點和20次連續(xù)檢測的程序部分

 

4. 如何增大感應(yīng)距離?

基于單片機(jī)的紅外傳感器的感應(yīng)距離和單片機(jī)的ADC 精度、雙臨界點數(shù)值、紅外發(fā)光二極管的功率、紅外光敏二極管的靈敏度和反射物理的反光效果有關(guān),一般的感應(yīng)距離不會超過20CM。不過對于開關(guān)感應(yīng)開關(guān)的設(shè)計已經(jīng)是足夠了。要想增加感應(yīng)距離可以改進(jìn)以下幾方面。不過更遠(yuǎn)的感應(yīng)距離反而會讓系統(tǒng)產(chǎn)生許多不確定因素,效果反而不佳。具體的一些設(shè)計要求如下:

1、 提高ADC精度,例如將8ADC換成10 位或12 ADC。

2、 將雙臨界點的數(shù)值設(shè)置得更小。

3、 LED驅(qū)動電路提高紅外發(fā)光二極管的功率(即提高亮度),或是多個紅外發(fā)射管來增加功率。

4 為紅外光敏二極管一端加裝信號放大電路,或是增加透鏡來增加感光面積來提高靈敏度。

5、 盡量使用反光效果好的反射物體(如白紙、鏡面)

 

5. 如何進(jìn)一步提升搞干擾能力?

最后一個問題是同頻環(huán)境光的干擾,所謂的同頻干擾,就是假設(shè)紅外感應(yīng)開關(guān)的周圍正好存在這么一個紅外光源,它也按一定的頻率點亮和熄滅,而已這一頻率正好和紅外感應(yīng)開關(guān)中紅外發(fā)光二極管的亮、滅頻率一致,且周期相同。這種巧合并不只是彩票頭獎的幸運觀眾才能遇見的,當(dāng)多個紅外感應(yīng)開關(guān)在較近的距離內(nèi)同時使用,問題就自然會出現(xiàn)。如果它們之間的距離不能改變,那就只有用跳頻的方法來解決了。跳頻技術(shù)在移動電話和無繩電話機(jī)上已經(jīng)成為必備的功能,為了防止竊聽或當(dāng)某一頻道被占用時,電話機(jī)會自動切換到別的頻道,讓通信更穩(wěn)定、可靠。對于紅外感應(yīng)開關(guān)來說,跳頻并沒有那么復(fù)雜,只要在程序中不斷改變紅外發(fā)光二極管的亮、滅時間,用不同的頻率去檢測,其他干擾光源也以相同頻率跳變的機(jī)會就少之又少了,再加上前面介紹的20 次連續(xù)檢測功能,再遇見干擾的可能性幾乎為0了。

 

 

 

此文關(guān)鍵字:紅外發(fā)光二極管 光敏二極管
正在加載...

關(guān)于“紅外發(fā)光二極管 光敏二極管 ”的相關(guān)資訊

我要評論:
內(nèi)  容:
驗證碼: (內(nèi)容最多500個漢字,1000個字符) 看不清?!
 
 
請注意:
 

1.尊重網(wǎng)上道德,遵守中華人民共和國的各項有關(guān)法律法規(guī),不發(fā)表攻擊性言論。

2.承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任。

3.新聞留言板管理人員有權(quán)保留或刪除其管轄留言中的任意內(nèi)容。