紀 萍
(河海大學文天學院電氣信息工程系,安徽馬鞍山243000)
隨著高新技術及電子器件的發(fā)展,人們的生活環(huán)境得到極大改善,智能家居得以實現(xiàn)。智能窗簾是智能家居的一部分,目前關于智能窗簾的研究有基于視覺手勢,有基于紅外遙控等多種設計[1-2],好多研究僅停留在方案設計,或者設計繁瑣成本高,或者缺乏人性化考慮等。本文提出一種基于單片機控制的自動窗簾系統(tǒng),既能解決每天手拉窗簾的不便,又顯示出了生活的便捷和檔次,還可以根據(jù)光線的明暗來自動控制窗簾的開關以調節(jié)室內光線。本設計為一款基于AT89C52單片機控制的光控窗簾,該系統(tǒng)的硬件部分主要利用光敏傳感器產生的信號作為單片機輸入信號來控制電機;軟件部分采用C語言進行編程??紤]到用戶習慣和天氣原因,本方案還設置了選擇開關,用戶在使用窗簾時可任意選擇自動或手動控制方式。該系統(tǒng)具有設計人性化、經濟實用、可靠性高的特點。
本設計實現(xiàn)如框圖1所示,AT89C52單片機是核心控制器件。采用光敏電阻作為光線采集器,光敏電阻采集到光電信號后經傳感器PCF8591轉換為數(shù)字信號,單片機讀入數(shù)字信號送至電機驅動芯片ULN2003,驅動28BYJ48型步進電機進行正反轉,從而實現(xiàn)光控功能[3-6]。28BYJ48型步進電機是四相八拍電機,電壓為DC5 V~DC12 V,當對步進電機按一定順序施加一系列連續(xù)不斷的控制脈沖時,它可以連續(xù)不斷地轉動。每一個脈沖信號使得步進電機的某一相或兩相繞組的通電狀態(tài)改變一次,也就對應轉子轉過一定的角度。當通電狀態(tài)的改變完成一個循環(huán)時,轉子轉過一個齒距。
圖1 設計實現(xiàn)框圖
本論文運用光控原理,當光照強度大于130 lx時窗簾將自動打開;當光照強度小于50 lx時,窗簾將自動關閉;當光照強度在50 lx到130 lx之間,窗簾狀態(tài)保持不變。
AT89C52是STC公司生產的一種低功耗、高性能CMOS8位微控制器,具有8 k在系統(tǒng)可編程Flash存儲器。AT89C52使用經典的MCS-51內核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89C52為眾多嵌入式控制應用系統(tǒng)提供了高靈活、超有效的解決方案。最小系統(tǒng)帶有時鐘電路、單片機、復位電路、輸入/輸出設備等[7-9]。單片機系統(tǒng)結構如圖2所示。
圖2 AT89C52結構框圖
光電傳感器用于采集光信號,芯片采用PCF8591,它是集成了光敏電阻的一種芯片,光敏電阻采集到光強信號后,PCF8591進行A/D轉換輸出數(shù)字信號。模塊芯片采用PCF8591集成模塊,它帶電源指示燈,對模塊供電后指示燈會亮,這樣在調試時便于觀看短路情況。模塊帶DA輸出指示燈,當模塊DA輸出接口電壓達到一定值,會點亮面板。光電傳感器信號采集模塊電路如圖3中的“光電采集模塊”所示。
圖3 整體電路設計
ULN2003是高壓、大電流達林頓晶體管陣列系列產品,具有電流增益高、工作電壓高、溫度范圍寬、帶負載能力強等特點,適應于各類要求高速大功率驅動的系統(tǒng)。ULN2003體積小,直接焊接在單片機40引腳附近,和單片機的電源連在一起,減少了電源線的連接。在硬件設計時,驅動芯片的in1與單片機的p0.0端口連接,in2與p0.1連接,in3與p0.2連接,in4與p0.3連接。同樣根據(jù)電機的位置,直接插導連接出來,放置開關。電機部分直接用一個直插座和驅動來接就可以了,設計電路如圖3中的“電機驅動電路”所示。
天亮時,光敏傳感器接收到高電平,依程序所設步進電機正轉,順時針轉動,窗簾以某一速度被慢慢拉開,走到極限位置時,窗簾碰到右端的行程開關SW3,開關閉合使能端關閉,電機停止轉動。反之,光敏傳感器采到的AD值,觸發(fā)輸出低電平,電機逆時針轉動,窗簾打開。
時鐘電路由兩個陶瓷電容C2、C3和石英晶振組成,C1和C2大小為30 pF,石英晶振選用12 M晶振。兩個電容C1和C2并聯(lián),然后與石英晶振進行串聯(lián),時鐘電路的兩個端口X1,X2分別和單片機的XTAL1,XTAL2引腳相連,內部振蕩器便能產生自激振蕩。另外檢測晶振是否起到振蕩效果,可以使用示波器看到XTAL2輸出的正弦波,也可以使用萬用表測量,要把檔位調到直流檔,在測量的時候就會發(fā)現(xiàn),不穩(wěn)定的電壓在2 V左右。電路如圖3中的“時鐘電路”所示。
當人用手按下按鈕時,電源的+5 V電平就會直接接送到RST端。由于人動手能力比較緩慢會使按鈕保持接通長達數(shù)十毫秒,人眼具有視覺暫留效應,所以,復位電路完全可以使用手動復位,滿足復位所需要的時間要求。復位電路如圖3中“手動復位按鍵電路”所示。復位電路的S1口與單片機的RST端口相連,RST端口具有復位功能,當單片機上電后,在該引腳上就會出現(xiàn)兩個機器周期(24個震蕩周期)寬度以上的高電平,使單片機復位。因此復位電路與單片機的RST端口相連。
由于外界天氣以及平時開閉窗簾的需要,本設計增加了兩個手動按鈕來控制窗簾的正反轉,這樣設計達到了人性化的要求。當白天需要關閉窗簾時,只需按下反轉按鈕,窗簾就會自動關閉;反之窗簾就會自動打開。按鈕的p2.0與p2.1分別與單片機的特殊接口p3.2和p3.3相連接,這兩個I/O口的第二功能分別為單片機的外部中斷INT0端口和外部中斷INT1端口,這樣就可以實現(xiàn)手動功能。按鈕的電路如圖3“正反轉按鍵電路”所示。
單片機編程語言主要為匯編和C語言。C語言編程軟件帶有比較完善的庫函數(shù),具有速度快、效率高、可移植、直接對硬件控制等諸多優(yōu)點,因此,本設計采用C語言來實現(xiàn)。軟件由主程序、顯示子程序、延時子程序、按鍵掃描程序組成,如圖4所示。初始化部分包括1602顯示屏的初始化和控制步進電機I/O口的初始化;采集與顯示部分實現(xiàn)在1602顯示屏上要顯示采集到的光敏電阻的電壓值并轉換為亮度顯示;中斷部分主要體現(xiàn)在按鍵功能的實現(xiàn),按鍵部分用到了中斷機制以確保按鍵的實時性。用到了兩個按鍵,一個手動控制窗簾拉開,另一個手動控制窗簾關上;電機控制部分,根據(jù)環(huán)境的亮度智能控制窗簾開關。
圖4 程序主函數(shù)流程圖
經過前面對各個模塊的設計,已經完成了每個模塊的連接,經過調試基本實現(xiàn)了智能光控的功能,下面進行電路板的焊接,如圖5所示。
圖5 實物圖
總之,自動光控窗簾實現(xiàn)了根據(jù)外面光線的強弱自動開關的功能??紤]到個人生活習慣不一樣,進行了人性化設計,加上了手動開關,在實現(xiàn)自動開關的同時,保留了原始窗簾的功能。該設計整體結構簡單,元器件價格低廉,降低了產品的設計成本,經濟可靠,控制靈活,具有一定的市場應用前景。
[1]孫利新,王阿川,張亨.基于視覺手勢識別技術的智能窗簾研究[J].微型機與應用,2012(20):48-53.
[2]莊淵昭.實用智能窗簾機的設計[J].現(xiàn)代電子技術,2008(267):181-183.
[3]譚浩強.C程序設計[M].4版.北京:清華大學出版社,2010.
[4]林濤,林著.模擬電子技術基礎[M].北京:高等教育出版社,2014.
[5]王兆安,劉進軍.電力電子技術[M].北京:機械工業(yè)出版社,2009.
[6]周杏鵬.傳感器與檢測技術[M].北京:清華大學出版社,2010.
[7]朱云芳,江樺,翟旭.PROTEL99SE電路設計與制板[M].北京:機械工業(yè)出版社,2007.
[8]劉建清.輕松玩轉51單片機C語言[M].北京:北京航空航天大學出版社,2011.
[9]趙全利.單片機原理及應用教程[M].北京:北京器械出版社,2013.