摘要
設計製作了一種智慧型檯燈,主要是以BISS0001和單片機組成的紅外感測控制電路。其特點是在有人時且外界光強較弱時能自動開燈,無人時關燈,節約能源;且能糾正坐姿,防止近視。
關鍵字:節能;糾正坐姿;BISS0001
引言
檯燈已是千家萬戶的必需生活用品,經常由於忘記關燈而造成巨大的能源浪費。當夜晚來臨時,人們又摸黑去開燈,非常不方便。在這裡設計了以人體紅外輻射(波長為9.5um)感測控制電路。當人體在檯燈的範圍內且環境光強較弱時,自動感應開燈;當人體太靠近桌面時,檯燈自動感應,警告糾正坐姿,若在一定時間內未離開桌面則自動熄滅。當人離開時則自動關燈,達到節約能源的目的。
系統組成及電路設計
1.系統組成部分
智慧型檯燈 |
本系統組成如圖一所示,主要由三部分組成:
1)感測器及信號處理部分:檢測人體輻射紅外信號及光強信號經過處理後變成可處理的數位訊號
2)以80C51組成的中央處理單元:處理信號並發出控制命令
3)提醒電路及燈光控制電路 :給出提醒信號並根據80C51給出的命令控制燈光
整個系統是以80C51控制下工作的。其工作過程為:當環境光比較強時,光敏電阻阻值比較小,信號處理電路檢測到低電平信號,禁止熱釋電紅外感測器工作,省去了80C51處理過程。當環境光比較弱時,光敏電阻阻值變大,信號處理電路接收到高電平,從而啟動熱釋電紅外感測器工作。熱釋電紅外感測器1探測比較遠的距離,當人體進入到感測器1的控測範圍內且光強較弱時,信號檢測電路處理信號,並向單片機傳送一個中斷,80C51啟動燈光控制電路,使燈慢慢變亮。當環境光比校弱時,且人體過於靠近桌面,熱釋電紅外感測器2檢測到信號,同時了在熱釋電紅外感測器1的控測範圍內,信號處理電路同時向80C51傳送信號,80C51處理信號根據優先權順序,禁止掉熱釋電紅外感測器1的信號,啟動延時電路,發出警報使人離開,若在設定的時間內未離開桌面,則啟動燈光控制電路,使燈慢慢熄滅。當人體離開熱釋電紅外感測器2的控測範圍且在熱釋電紅外感測器1的控測範圍內時,燈光又慢慢變亮。
2.電路設計部分
圖二是由紅熱釋電紅外感測器、光敏電阻、BISS0001組成的信號檢測及處理電路。紅熱釋電紅外感測器只對波長為10μm(人體輻射紅外線波長)左右的紅外輻射敏感,所以除人體以外的其他物體不會引發探頭動作。探頭內包含兩個互相串聯或並聯的熱釋電元,而且製成的兩個電極化方向正好相反,環境背景輻射對兩個熱釋元件幾乎具有相同的作用,使其產生釋電效應相互抵消,於是探測器無信號輸出。一旦人侵入探測區域內,人體紅外輻射通過部分鏡面聚焦,並被熱釋電元接收,但是兩片熱釋電元接收到的熱量不同,熱釋電也不同,不能抵消,於是輸出檢測信號。 BISS0001是由運算放大器、電壓比較器、狀態控制器、延遲時間定時器以及封鎖時間定時器等構成的數模混合專用積體電路。當外界光強較強時,光敏電阻阻值很小,BISS0001檢測到低電平,從而封鎖14腳,禁止感測器infare1的信號。當外界光強較弱時,光敏電阻阻值很大,BISS0001檢測到低電平,開啟14腳;infare1檢測到人體信號時,產生微弱的信號輸出,經R5、R1005、R4、C1、C6、C7組成的信號放大濾波電路。R1000、R1001、C1000和C1001組成的延時電路。信號經處理後從2腳輸出。
智慧型檯燈 |
圖三是由單片機組成的報警及燈光控制電路。當外部無任何中斷時,80C51控制74LS138的使能控制端,使後面電路不工作。當有中斷一產生時,80C51啟動74LS138,向P0腳低4位傳送信號,控制燈慢慢亮。當中斷1和中斷0同時產生時,80C51禁止掉中斷1,啟動74LS138向P0腳低四位傳送數據,使燈光慢慢變暗。這裡採用74LS138控制DC832可以節省80C51的管腳,有利於擴展,以便於控制多盞燈。由於采有DC0832可以有效地使燈實現階梯形的變化。
3.程式框圖:
智慧型檯燈 |
智慧型檯燈 |
程式框圖如圖四所示,程式開始後,對程式進行初始化。向P0腳寫入低電平,開啟所有中斷,啟動計數器。當中斷1來時,進入中斷1,設定R0為0,調用延時程式TIME0(延時10ms),判斷R0是否等於7,若不是,則加1,繼續傳送數據進入循環,直至R=7,即實現的是燈慢慢變亮的一個過程。當中斷0和中斷1同時產生時,根據優先權,禁止掉中斷1,開啟中斷0。調用延時程式TIME0(延時1分鐘),查詢中斷0控制位;防止人體不小心到達熱釋電探測器的探測範圍內,採用延時程式來排除干擾,防止誤判。若為0,則返回主程式;若為1,則向P0高四位傳送數據,使燈保持原來最亮狀態,調用延時程式TIME1,判斷R0是否等於0,若是則中斷返回,若不是,則R0減1,繼續循環,直至R0等到於0,此程式的目的是實現燈慢慢變暗。
三、實驗結果:
本系統的主要設計思想來源於生活。檯燈是一般家庭的生活必需品,但由於經常忘記關燈而造成巨大的能源浪費。全球這么多檯燈,估算一下,消耗能源可觀。另一個是作為一個必需品,當然要使生活變得更方便,省去了黑暗中開燈的麻煩,並且可以糾正坐姿。本系統在實驗室進行了實物實驗。熱釋電紅外探測器1的距離是4m左右(距離可調),主要是因為般來說是門離書桌的距離;以便黑暗中時人一到門口則啟動,省去了開燈的麻煩,用戶可以根據自己的實際情況進行距離調節。熱釋電紅外探測器1的距離是10cm左右(距離可調),主要考慮是當學習時,有時坐姿不正,引起身體離桌面太近,容易引起近視,此時檯燈發出警告,提醒注意,若在設定的時間內未離開,則強制熄滅。有時人學習累了,趴在桌子上睡覺,而忘了關燈,這時系統就會檢測到,從而啟動延時程式,一段時間過後,檯燈就會自動熄滅。
本系統的主要技術難點在於對人體紅外信號的採集及處理。由於採用的是熱釋電紅外感測器,當人體進入其感應範圍時,感測器就會產生幾mV信號,然後通過以BISS0001為中心的信號處理電路,對信號進行二次放大,並濾波,以防止外界的信號產生干擾。信號經過BISS0001後從而轉化為數位訊號輸出,便於用單片機進處理。
本系統製作的主要設計源泉來源於生活,因此創新之處也在於處理生活中一些比較常見的問題。以專門感應人體紅外信號的熱釋電紅外感測器為基礎,以BISS0001信號處理電路,利用單片機進行處理,以達到便於控制的目的。當房間亮度不夠時,且有人在附近時,檯燈便會自動點亮,省去了黑暗中摸開關的麻煩;當學習時由於靠桌面太近,造成坐姿不正,系統就會提示,以糾正坐姿,防止近視;當學習太累了時,趴在桌子上睡會兒時,檯燈就會自動熄滅;當無人在時,系統也會使檯燈自動熄滅,以達到節省能源的目的。除了硬體部分採用防干擾技術外,在軟體中也採用了防干擾技術,當中斷0產生時,並不立即執行,而是對其進行延時,防止由於不小心而進入到探測器2的範圍內,以免產生誤判。
雖然本系統以達到了使生活方便的目的,但是電路還是不夠簡單。因為當有多個熱釋電紅外感測器時,就需要相應的信號檢測電路。改進之處在於用一個信號處理電路同時控制多個感測器。還有一個不足之處在檯燈開啟時,產生的光強容易干擾光敏電阻對環境光強的判別,引起誤判,現在的處理方法是感測器部分與控制部分單獨分開放置。
參考文獻:
1)胡學海主編單片機原理及套用系統設計電子工業出版社北京2005年8月
2)趙繼文主編感測器與套用電路設計科學出版社北京2002年
3)黃繼昌主編電子元器件套用手冊人民郵電出版社北京2004年
實驗心得:
本系統的設計思想來源於生活,所以所具有的功能也是為生活的方便而設定的。因此就產生了製作智慧型檯燈的想法。首先在與老師的商討下,對項目進行了認證,確定了項目的可行性,列出了項目的主要難點及可能出現的問題,確定了以後的製作重點。接下來進行構思,列出大體的框架圖。然後根據框架圖用PROTEL畫出電路原理圖。
在對電路原理圖進行了嚴謹的認證後,便開始了焊接電路。由於主要對象是人,因此採用熱釋電紅外感測器,此感測器是專門用於接收人體產生的10um左右的信號,相應的利用BISS0001處理其所產生的信號並轉化為可處理的數位訊號。在焊接的過程中發現若用到兩個光敏電阻,則可能使單片機產生誤判。因此將兩個光敏電阻合到一塊,不僅簡化了電路,還提高了系統的穩定性。當信號檢測及處理部分完成後,便開始試檢,以確定電路焊接正確與否。在對電路進行調試的過程中,必須排除外界的干擾,尤其是附近熱源的紅外線干擾。首先將BISS0001設定成不可重複觸發方式,比較長延遲時間,以便得到穩定的輸出信號,並把接收光電池的引腳接成高電平,使BISS0001認為一直處於黑暗之中,便於觀測。在運行時,當人遠離時,BISS0001輸出低電平,符合要求;但是在人靠近後信號出現不規則的變化。利用示波器對BISS0001的各個管腳進行測量,發現信來源的主要不穩定因於感測器,因此,在目前沒有更好的更換下,只好採用目前的熱釋電感測器。
接下來做的是數字電路部分,主要80C51、74LS138、LM324、DAC0832組成。數字電路部分比較簡單,焊接完成後,編寫一個新程式,對各個連線埠進行掃描,從而顯示數字電路是可行的。
在對電路部分進行了初步的檢測後,解決了比較主要的問題;因此依據硬體編寫相應的程式,經過keil軟體仿真後,語法上無錯誤,各個連線埠的數據正是所需要的,最後是將軟體燒到單片機中,然後運行整個系統。
通過本次實驗,熟悉了電路的開發和製作及論文的編著寫。在實驗中也遇不少難題,但通過各種方法進行了解決。
附錄:
源程式:
ORG0000H
AJMP MAIN
ORG0003H
AJMPDET1;遠探測器
ORG0013H
AJMPDET0;近探測器
ORG0050H
MAIN: MOV P0,#00000001B;置初始值DET0,DET1可重複觸發,燈滅
MOVTMOD,#00000010B;方式2,8位自動重裝計數器
MOV TCON,#00010000B;開啟計數器T0
MOVIE,#10000111B;開啟所有中斷
SJMP$
;燈慢慢變亮
DET1:MOVP0,#00000001B
CALLTIME0;燈亮度延時10ms
MOVP0,#00000011B
CALLTIME0
MOVP0,#00000101B
CALLTIME0
MOVP0,#00000111B
CALLTIME0
MOVP0,#00001001B
CALLTIME0
MOVP0,#00001011B
CALLTIME0
MOVP0,#00001101B
CALLTIME0
MOVP0,#00001111B
CALLTIME1
RETI
;燈慢慢熄滅
DET0:CALLTIME1;延時1分鐘
MOVTCON,A
ANLA,#1
JZLOOP
MOVP0,#00001111B
CALLTIME0
MOVP0,#00001101B
CALLTIME0
MOVP0,#00001011B
CALLTIME0
MOVP0,#00001001B
CALLTIME0
MOVP0,#00000111B
CALLTIME0
MOVP0,#00000101B
CALLTIME0
MOVP0,#00000011B
CALLTIME0
MOVP0,#00000001B
RETI
LOOP:ret
;延時10ms
TIME0:SETBTR0
MOVR0,#250
MOVR1,#20
D_1:djnzR0,D_1
MOVR0,#250
DJNZR1,D_1
CLRTR0
RET
;延時1分鐘
TIME1:SETBTR0
MOVR0,#250
MOVR1,#200
MOVR2,#60
D_2 :DJNZR0,D_2
MOVR1,#200
DJNZR1,D_2
MOVR2,#60
DJNZR2,D_2
CLRTR0
RET
END