本實驗將製做一個(ge) 簡單的被動式紅外線防盜報警器。該報警器由紅外線發射、接收、蜂鳴器和LED指示燈組成。正常情況下,綠色的LED常爍,表示監控區域正常。一旦監控區域有人闖入,綠色LED熄滅,紅色的LED快速閃爍,同時蜂鳴器立即報警。
實驗器材
需要準備的器材:Atmega8、紅色LED一隻、綠色LED一隻、萬(wan) 能實驗板一塊、5V電源、電阻、TTL0038或者其他類似38KHZ的紅外接收頭、5V長鳴型蜂鳴器。
線路圖:
實驗電路圖及工作原理
該電路工作原理非常簡單,Atmega8的PD0端口輸出經過調製的38KHZ的方波信號,然後經Q2驅動紅外線發射管LED0發出紅外線信號。TL0038是集紅外線信號接收放大為(wei) 一體(ti) 的接收器。其中心接收頻率為(wei) 38KZH,輸出為(wei) TTL電平,平時輸出高電平,當收到碼信號後,輸出低電平。
BELL為(wei) 長鳴蜂鳴器,兩(liang) 個(ge) 引腳分別為(wei) 正負極,當正負極兩(liang) 端加上5V電壓後,蜂鳴器發出響聲。注意,該蜂鳴器兩(liang) 腳不能接反,否則蜂鳴器會(hui) 燒毀。
電路工作後,正常情況下TL0038接收不到紅外信號,而輸出高電平。當有物體(ti) 出現在發射管前方時,TTL0038會(hui) 接收到從(cong) 物體(ti) 上反射回來的紅外光信號,然後輸出低電平通知MCU打開蜂鳴器報警。
程序設計思路
本實驗的程序主要要完成三大功能:38KHZ載波信號的產(chan) 生、紅外接收頭TL0038輸出電平的檢測、LED和蜂鳴器的驅動。
本程序使用8位定時計數器T/C0溢出中斷使PD0產(chan) 生38KHZ的方波信號,然後驅動紅外線發射管。T/C0計數器是單一向上計數器,其計數值TCNT0一旦計數到0XFF後,T/C0馬上產(chan) 生溢出中斷。因此,我們(men) 可以通過設置TCNT0的初始值來調整中斷產(chan) 生的頻率。每產(chan) 生一次中斷就改變一次PD0的電平狀態,從(cong) 而在PD0口產(chan) 生38KHZ的方波信號。本實驗MCU采用內(nei) 部8MHZ的RC時鍾信號,T/C0的時鍾源采用係統時鍾8分頻,即每計一個(ge) 數(TCNT0增加1)需要1us的時間。38KZH的時鍾周期大約為(wei) 26us左右,因此,半周期需要計數13次左右,即TCNT0初始值為(wei) 256-13=243。另外,我們(men) 還需要在38KHZ的載波信號上調製上一個(ge) 碼信號,也就是說38KHZ的載波信號不是一直在產(chan) 生,而是間斷的發射。如下圖所示:
同時,程序通過不斷地讀取
PC5腳的電平值來判斷TL0038是否接收到紅外信號。一旦連續檢測到N次PC5為(wei) 低電平,則立即打開蜂鳴器和紅色的LED。之所以要連續檢測N次,主要是防止TL0038上產(chan) 生雜波信號而誤告警。