基于Atmega8的被動(dòng)式紅外線報(bào)警器實(shí)驗(yàn)
該報(bào)警器由紅外線發(fā)射、接收、蜂鳴器和LED指示燈組成。正常情況下,綠色的LED常爍,表示監(jiān)控區(qū)域正常。一旦監(jiān)控區(qū)域有人闖入,綠色LED熄滅,紅色的LED快速閃爍,同時(shí)蜂鳴器立即報(bào)警。
本文引用地址:http://cafeforensic.com/article/268649.htm實(shí)驗(yàn)器材
需要準(zhǔn)備的器材:Atmega8、紅色LED一只、綠色LED一只、萬能實(shí)驗(yàn)板一塊、5V電源、電阻、TTL0038或者其他類似38KHZ的紅外接收頭、5V長(zhǎng)鳴型蜂鳴器。
線路圖:
實(shí)驗(yàn)電路圖及工作原理
該電路工作原理非常簡(jiǎn)單,Atmega8的PD0端口輸出經(jīng)過調(diào)制的38KHZ的方波信號(hào),然后經(jīng)Q2驅(qū)動(dòng)紅外線發(fā)射管LED0發(fā)出紅外線信號(hào)。TL0038是集紅外線信號(hào)接收放大為一體的接收器。其中心接收頻率為38KZH,輸出為TTL電平,平時(shí)輸出高電平,當(dāng)收到碼信號(hào)后,輸出低電平。
BELL為長(zhǎng)鳴蜂鳴器,兩個(gè)引腳分別為正負(fù)極,當(dāng)正負(fù)極兩端加上5V電壓后,蜂鳴器發(fā)出響聲。注意,該蜂鳴器兩腳不能接反,否則蜂鳴器會(huì)燒毀。
電路工作后,正常情況下TL0038接收不到紅外信號(hào),而輸出高電平。當(dāng)有物體出現(xiàn)在發(fā)射管前方時(shí),TTL0038會(huì)接收到從物體上反射回來的紅外光信號(hào),然后輸出低電平通知MCU打開蜂鳴器報(bào)警。
程序設(shè)計(jì)思路
本實(shí)驗(yàn)的程序主要要完成三大功能:38KHZ載波信號(hào)的產(chǎn)生、紅外接收頭TL0038輸出電平的檢測(cè)、LED和蜂鳴器的驅(qū)動(dòng)。
本程序使用8位定時(shí)計(jì)數(shù)器T/C0溢出中斷使PD0產(chǎn)生38KHZ的方波信號(hào),然后驅(qū)動(dòng)紅外線發(fā)射管。T/C0計(jì)數(shù)器是單一向上計(jì)數(shù)器,其計(jì)數(shù)值TCNT0一旦計(jì)數(shù)到0XFF后,T/C0馬上產(chǎn)生溢出中斷。因此,我們可以通過設(shè)置TCNT0的初始值來調(diào)整中斷產(chǎn)生的頻率。每產(chǎn)生一次中斷就改變一次PD0的電平狀態(tài),從而在PD0口產(chǎn)生38KHZ的方波信號(hào)。
本實(shí)驗(yàn)MCU采用內(nèi)部8MHZ的RC時(shí)鐘信號(hào),T/C0的時(shí)鐘源采用系統(tǒng)時(shí)鐘8分頻,即每計(jì)一個(gè)數(shù)(TCNT0增加1)需要1us的時(shí)間。38KZH的時(shí)鐘周期大約為26us左右,因此,半周期需要計(jì)數(shù)13次左右,即TCNT0初始值為256-13=243。另外,我們還需要在38KHZ的載波信號(hào)上調(diào)制上一個(gè)碼信號(hào),也就是說38KHZ的載波信號(hào)不是一直在產(chǎn)生,而是間斷的發(fā)射。如下圖所示:
同時(shí),程序通過不斷地讀取PC5腳的電平值來判斷TL0038是否接收到紅外信號(hào)。一旦連續(xù)檢測(cè)到N次PC5為低電平,則立即打開蜂鳴器和紅色的LED。之所以要連續(xù)檢測(cè)N次,主要是防止TL0038上產(chǎn)生雜波信號(hào)而誤告警。
蜂鳴器相關(guān)文章:蜂鳴器原理
評(píng)論