劉志鶴
遼寧錦州渤海大學工學院
基于單片機的遙控防盜窗簾設計
劉志鶴
遼寧錦州渤海大學工學院
本設計是在8位的STC89C51單片機基礎上來設計的遙控防盜窗簾。通過無線遙控模板中的SC2272和SC2262編碼解碼芯片組成無線傳送接收模塊;直流電機的正轉或者反轉可以控制窗簾的開關,需要兩個繼電器的狀態來調節實現;智能模式和手動模式的切換,只要按下遙控板上的切換按鍵就可以實現;為了防止窗簾超過正常運行的長度,手動觸動行程開關以此實現窗簾停止;當人體感應模塊檢測到紅外線時,蜂鳴器發聲報警。
STC89C51 直流電機 遙控窗簾
隨著社會的進步和經濟的不斷增長,人民生活水平也越來越高,人們也在追求著更好更舒適的生活環境,窗簾作為人們生活的必備家居設備,自然也在人們追求的范圍之內,因此一種智能的遙控防盜窗簾越來越受到人們的歡迎與需求。
但在傳統上,窗簾需要手動去拉動,每天早晚需要開關兩次,尤其是那些笨重的,特別長的在別墅之類里的窗簾。遙控防盜窗簾只要遙控器輕輕地按下去,遙控窗簾就自動開關。實際中很方便,并且這種窗簾可以實現防盜報警的功能。因此本次設計,我們主要設計的是基于單片機的遙控防盜窗簾。
本文主要是以STC89C51單片機為核心,實現遙控防盜窗簾的功能。包括限位開關部分、復位按鍵模塊、無線遙控模塊、人體感應模塊、直流電機控制模塊、蜂鳴器報警模塊、光敏檢測自動控制功能模塊、LED指示燈模塊和單片機最小系統等模塊。下面介紹系統設計中的部分主要模塊。
2.1 系統框圖
本次設計的系統框圖如圖1所示:

圖1 系統框圖
此次設計采用8位的STC89C51單片機做控制器。依據光敏電阻來感應識別光線,智能地實現白天升起窗簾、黑夜降落窗簾。無線遙控是由SC2272或者SC2262編碼解碼芯片構成的無線發送接收模塊,再使用SC2272接收輸出端得D0、D1、D2、D3傳遞信號進而控制單片機。接著,依據直流電機的正反轉來控制窗簾的升降,LED指示燈兩種顏色分別代表著直流電機正反轉。為了防止窗簾超過正常運行的長度,手動觸動行程開關以此實現窗簾停止。當感應到有人入侵報警提示,可以撤防報警。
2.2 單片機最小系統
能夠使單片機正常工作而用到最少的器件的電路就是所謂的單片機最小系統。一般來說,一個正常工作的單片機需要一個復位電路來使單片機能夠恢復到初始狀態,同時它也需要一個晶振電路來給單片機一個初始的工作頻率。
晶振電路是每個單片機必須要的,因為單片機需要一個初始的頻率來使它能夠正常的工作。一般都使用一個12MHz的晶振和兩個30uf電容連接到單片機的XTAL1和XTAL2來實現。在使用振蕩器時,芯片中的引腳XTAL1是作為輸入端、XTAL2為對應的輸出端。應用系統調試時,首先保證單片機的時鐘系統能夠正常工作。當晶振電路、電源電路和復位電路正常時,在ALE引腳可以觀察到穩定的脈沖信號,其頻率為:晶振頻率/6。
2.3 無線遙控模塊
無線遙控模塊的主要參數如下:
①工作電壓:直流電壓5~12V
②發射功率:≤500MW
③發射電流:3~50MA
④頻率穩定度:±75KHZ
⑤工作頻率:315MHZ/433MHZ
⑥靜態電流:≤0.1UA
⑦通訊方式:調幅AM
無線遙控有兩種:其一是紅外線無線遙控,其二是電磁波無線遙控。常用的是紅外線無線遙控,其遙控的距離不遠,并且是直線方向遙控。
2.4 遙控電路
本設計是以sc2262/sc2272為紅外線遙控核心芯片的遙控和接收。其遙控電路如圖2所示:

圖2 遙控電路
12伏電壓供電在遙控器上,當按下按鈕后,電池的+端就會與發射模塊的電源端以及芯片相接,而且傳遞出信號,這種設計可以保持電池很長時間的工作狀態。
2.5 光線檢測模塊
光敏電阻是利用內光電效應的原理制成的,而且大部分是由半導體材料構成。光敏電阻感光是光照強度檢測的采集部分,通過光敏電阻感光測量電壓來實現判斷光的強弱功能。光敏電阻的優點是:適用范圍廣,容易購買,種類繁多。
本系統采用光敏電阻器,主要是其電阻值可以根據外界環境光線強弱的變化而發生相應的變化。光敏電阻的工作特性:光線變陰暗的時候,電機發轉代表著窗簾降落。光線變明亮的時候,電機正傳代表著窗簾升起。這種依據光敏電阻特性的原理是:光敏電阻的工作特性主要根據光線的變化。當光線顯示白天的時候,此時三極管的基極電壓值由于電阻值變大接近于零,導致三極管不導通。并且發射極輸出低電平。當光線顯示黑夜的時候,三極管的基極電壓由于電阻值變得很小此時變得非常高,導致三極管導通,并且發射極輸出高電平。光線傳感器原理如圖3所示:

圖3 光線傳感器原理圖
2.6 蜂鳴器報警模塊
本系統的報警模塊用的是蜂鳴器,LED燈作為報警顯示,蜂鳴器主要由電阻、PNP三極管和發生器組成。常見的蜂鳴器具有以下兩種形式,一種是有源蜂鳴器,另一種是無源蜂鳴器。有源和無源的區別在于蜂鳴器內部是否有振蕩源。有源濾波器內置有振蕩源,只需要給其供電即可發出聲音,而無源蜂鳴器內部沒有振蕩源,因此需要給驅動脈沖才能夠發出一定頻率的聲音。在本設計中蜂鳴器采用的就是有源蜂鳴器,只要單片機IO口輸出低電平就能夠驅動蜂鳴器發出聲音。
由于單片機的I/O口驅動能力有限,不能讓蜂鳴器發出聲音,所以加一個三極管做驅動放大。當輸出高電平時,三極管導通,集電極電流通過蜂鳴器形成一個回路,讓蜂鳴器發出聲音,當輸出低電平時,三極管截止,沒有電流流過蜂鳴器,蜂鳴器就不會發出聲音。這就是它的工作原理。而LED燈的報警顯示就簡單的多,它只有一個發光二極管組成,二極管的正極接電源Vcc,負極接單片機的I/O口即可,當二極管的負極為低電平時,LED亮,當二極管的正極為高電平時,LED熄滅。
3.1 程序設計
本次系統軟件設計采用C語言編程是本設計軟件部分的核心,主要應用了if、while等判斷語句,當遙控器上按下按鍵時,無線發射模塊發出信號,接收模塊解碼后響應相應功能,當限位開關閉合時,這意味著窗簾已經到達指定位置,此時電動機停止轉動。系統程序流圖如圖4所示:

圖4 程序流程圖
3.2 系統調試
單片機硬件系統設計中排除故障,需要硬軟件結合進一步排除故障。硬件調試決定著軟件是否持續進行下去,硬件調試達不到要求,軟件就不必調試了,有時候硬件引腳位置等等也需要注意。所以硬件調試是關鍵,是軟件調試先決條件。
插入5V電源,開機自動默認智能模式,遙控窗簾開始工作。通過模式切換按鍵,可以選擇手動或者智能模式。首先我們選擇智能模式,藍燈亮,電機正轉檢測正常。光敏電阻檢測到白天,電機正轉,當我們手動按下限位開關模擬窗簾到達頂部時,此時,蜂鳴器響三下,燈亮三下,電動機停下了,說明這個功能是正確的。然后我們遮住光敏電阻,檢測到黑夜,此時電機反轉,意味著窗簾降落,我們在手動按下限位開關模擬窗簾到達底部時,蜂鳴器響三下,燈亮三下,此時電動機停下。
之后我們便要調試手動模式下窗簾的工作情況。與之智能相反的是,手動多了兩個按鈕,分別代表著窗簾升起和降落,實現的功能相同,此時,電路也正常工作,調試成功。遙控窗簾有防盜功能,開啟防盜功能,此時計數30s,30s之后,人體檢測模塊檢測到人體,蜂鳴器發出報警功能,此時調試成功。
本設計是在STC89C51單片機基礎上來設計的遙控防盜窗簾系統,系統的實際操作性強,動作準確,價格低廉,并且達到了預期設計的要求。直流電機的正轉或者反轉可以控制窗簾的開關,需要兩個繼電器的狀態來調節實現,完成了智能模式和手動模式的切換及報警功能。
[1]王志鵬,智能遙控窗簾設計.第2版.南京:南京航空航天大學出版社,2005
[2]李正軍,計算機控制系統.北京:機械工業出版社,2005
[3]張倫譯,單片機微機原理及應用.第3版.上海:電子工業出版社,2004
[4]李廣飛,單片機與家用電器智能化技術.北京:電子工業出本社,2004
[5]郭兆正,于鵬,于震.基于有限狀態機建模的單片機編程方法研究[J].渤海大學學報(自然科學版)2016,37(3):266一270