解啟松 聶志剛
摘要:該文闡述了自動光控起閉窗簾的整個設(shè)計流程,具體描述了在整個制作過程中硬件電路的設(shè)計以及它們實現(xiàn)的功能和軟件語言的驅(qū)動。這套系統(tǒng)可分為電子自動控制和機械傳動兩部分,前者使用STC89C52單片機為核CPU,集多種傳感器于一體從而實現(xiàn)監(jiān)測控制;后者計劃設(shè)計在窗戶上安裝步進電機,從而實現(xiàn)窗簾在不同光照條件下的打開和關(guān)閉,包括在某些特殊情況下通過手動或遙控使得窗簾開啟或關(guān)閉。
關(guān)鍵詞:自動控制;光控;單片機;窗簾
中圖分類號:TP273.5 文獻標識碼:A 文章編號:1009-3044(2018)30-0190-03
Abstract: This paper describes the whole design process of automatic light control curtain, and describes the design of hardware circuit and the function and the driving of software language. The system is divided into two parts: the electronic automatic control part and the mechanical drive part. The electronic control part USES STC89C52 microcontroller as the core CPU, and integrates various sensors to realize monitoring and control. The mechanical drive part is designed to install a stepping motor on the Windows to precisely control the opening of Windows and curtains.
Through this design, the curtain is opened and closed under different light, as well as manual or remote control of the curtain in special circumstances.
Key words: automatic control; optically controlled; single chip microcomputer; the curtain
1 背景
進入二十一世紀后,隨著各類科技的不斷發(fā)展,理論知識與生活實際的結(jié)合越來越密切,人們的生活水平不斷提高,與此同時,應用越來越廣泛的科技智能化也使得人們的隱私安全受到了很大的侵犯,所以人們對自身隱私的安全與否也愈加重視,而作為家庭住所中必備的窗簾,它對保護居民隱私與遮擋外部光線十分有用。現(xiàn)在市面上大部分的傳統(tǒng)窗簾都需要手動開關(guān),這樣不僅吃力,而且還有可能錯過最佳光照時間,所以窗簾的智能控制就顯得十分重要且有效了。
2 設(shè)計方案和內(nèi)容
該設(shè)計主要是實現(xiàn)光控窗簾系統(tǒng),其中包括光控、定時和手動三種功能。因此需用借助各種接口和MCU連接這些控制元。應用AT89C52系列單片機設(shè)計系統(tǒng),安裝ADC0832芯片、VS1838b、ULN2003芯片等,控制窗簾在不同光照下的打開或是關(guān)閉。按鍵掃描模塊、紅外遙控模塊、光敏電阻、步進電機、AT89C52共同構(gòu)成此次的設(shè)計系統(tǒng)。應用光敏電阻采集模擬信號通過模數(shù)轉(zhuǎn)換A/D電路將其轉(zhuǎn)換成數(shù)字信息,并以此來操控步進電機順時針旋轉(zhuǎn)或是逆時針旋轉(zhuǎn)來模擬窗簾的起閉。
自動光控起閉窗簾運用的是光控的原理來完成的,當外部的光線強度到達系統(tǒng)內(nèi)部預設(shè)值上限時,窗簾被打開;當外部的光線強度到達系統(tǒng)內(nèi)部預設(shè)值下限時,窗簾被關(guān)閉。基于以上工作原理,設(shè)計系統(tǒng)的實現(xiàn)不僅成本低,而且還方便快捷,實現(xiàn)的結(jié)原理圖如圖1:
除此之外,窗簾的自動起閉還可以通過時間來預先設(shè)置或是直接通過按鍵來啟動關(guān)閉窗簾。該系統(tǒng)優(yōu)點較多,結(jié)構(gòu)較單一,系統(tǒng)穩(wěn)定,不易受外部環(huán)境的干擾。
3 系統(tǒng)硬件部分設(shè)計
3.1 主程序模塊
該系統(tǒng)采用AT89C52單片機晶振電路,所謂的石英晶體振蕩器即是單片機電路中的晶振。晶振通常是一個電容和電阻并聯(lián)之后再串聯(lián)上一個電容,存在兩個諧振點,諧振串聯(lián)在一起是低頻率的;諧振并聯(lián)在一起是高頻率的。晶體振蕩器可以給單片機提供脈沖信號,也即單片機的工作速度。晶體振蕩器會和單片機引腳中的X1、X2引腳相連接,此時這個電路會引生諧波,而諧波的存在會使得振蕩器的穩(wěn)定性受到影響。為了解決這個問題,我們在晶振引腳處接入瓷片電容,這個電容一般選擇在10到50 pF,需要接地。此次設(shè)計使用的晶振是12MHz的石英晶體。
3.2 按鍵模塊
該次設(shè)計中按鍵模塊的功能是在自動光照窗簾之外,能夠通過按鍵來定時使窗簾關(guān)閉或是直接用按鍵來控制窗簾的打開或是關(guān)閉。此次設(shè)計需要用到5個獨立按鍵。它們分別實現(xiàn)的功能有設(shè)定鍵(設(shè)定自動光控窗簾的啟閉時間);數(shù)字值加鍵;數(shù)字值減鍵;啟動窗簾按鍵(按下此鍵后窗簾被打開);關(guān)閉窗簾鍵(按下此鍵后窗簾被關(guān)閉)。
如上圖3所示,該模塊中,S1鍵與P2.7 口相連,是主功能鍵;S2鍵與P2.6 口相連,按下此鍵后時間值或是光照預設(shè)值加一;S3鍵與P2.5 口相連,按下此鍵后時間值或是光照預設(shè)值減1;S4鍵與P2.4 口相連,按下此鍵后窗簾打開。S5鍵與P2.3 口相連,按下此鍵后窗簾關(guān)閉。
3.3 光敏和AD轉(zhuǎn)換模塊
自動光控起閉窗簾系統(tǒng)是根據(jù)外部光照的情況變化來及時地打開或是關(guān)閉窗簾,光敏電阻負責完成此部分所需要的功能。光敏電阻能夠?qū)ν獠抗庹諒姸戎蹈袘置舾校瑢﹄娮柚档母淖兣c否有著直接作用。電阻值與光照強度呈負相關(guān),強度增加電阻值減少,反之則電阻增大。
ADC0832是8位逐次逼近模數(shù)轉(zhuǎn)換器。與TLC0832可以代換,它有兩個可多路選擇的輸入通道。串行輸出可配置為和標準移位寄存器或微處理器接口,其多路器可用軟件配置為單端或差分輸入,差分的模擬電壓輸入可以抑制共模電壓,但輸入基準電壓不可以調(diào)整大小,在內(nèi)部已經(jīng)連到Vcc[1]。ADC0832芯片有四條數(shù)據(jù)連接線,它們分別與單片機相連接,分別是CS片選端;CLK芯片時鐘輸入端;DI數(shù)據(jù)信號輸入端;DO數(shù)據(jù)信號輸出端。在單片機進行通信時,DI與DO端都是與單片機雙向連接的且它們不能同時生效工作,所以在電路中將此兩端并聯(lián)起來到一根數(shù)據(jù)線上。整體設(shè)計如下圖4所示,CS引腳是處于高電平時,芯片不工作,CLK端口的電平能夠隨便設(shè)定,DO和DI的電平也是如此。若想要整個模數(shù)轉(zhuǎn)換電路開始工作必須要先把片選使能端設(shè)置成低電平的狀態(tài),而且在整個轉(zhuǎn)換過程中此狀態(tài)要一直保持。在整個進程中,CLK芯片時鐘輸入端要接收時鐘脈沖并向數(shù)據(jù)信號輸入端輸入信號。此端口用作輸入通道的選擇。DI端一直保持高電平。
兩端數(shù)據(jù)分別顯示為1、0時,CH0引腳端實現(xiàn)單通道轉(zhuǎn)換。CH1引腳端進行單通道轉(zhuǎn)換在2位數(shù)據(jù)為1、1的情況下。CH1引腳端和CH0引腳端在數(shù)據(jù)顯示為0、0時分別用作反輸入端IN-和正輸入端IN+。兩位數(shù)據(jù)顯示為0、1時,CH1和CH0的正負輸入端極性發(fā)生變化。若第三個脈沖下沉,DI端在第三個脈沖來之前就會失去輸入功用[2]。采用DO/DI端輸出數(shù)據(jù)來輸出DO。用DO端來輸出轉(zhuǎn)換數(shù)據(jù)的DATA7當?shù)谒膫€脈沖下沉時。 DO端在D0端輸送出最低位數(shù)據(jù)DATA0之前會一直輸入數(shù)據(jù),輸出數(shù)據(jù)是在每個脈沖下沉之前。接收到DATA0數(shù)據(jù)之后這一字節(jié)數(shù)據(jù)就輸出結(jié)束了。之后再輸出相反字節(jié)數(shù)據(jù)。將CS片選使能引腳端置為高電平,此時芯片不能使用。
AD轉(zhuǎn)換芯片的輸入電壓均為0到5V,此電壓僅適用于它被作為單通道的模擬信號時。它的電壓的精度在八位分辨率時是19.53mV,當用作正負輸入端時,應該預定較大的范疇值的電壓值,并用次來提升轉(zhuǎn)換時的精度。
3.4 步進電機設(shè)計模塊
步進電機是一種開環(huán)的節(jié)制器件,角位移就是在其電脈沖的轉(zhuǎn)換下得來的,脈沖信號的頻率和數(shù)目會影響到電機的轉(zhuǎn)動。例如當一個脈沖信號輸送到步進電機的驅(qū)動器時,其可以使得此電機按照我們先前假設(shè)的正方向或是反方向轉(zhuǎn)動一個一定的角度,我們稱此角為步距角[3]。
步進電機可以快速地開啟和停止。步進電機由于轉(zhuǎn)速和步進角的關(guān)系多被用在精度較高的電路中,而這些只與脈沖的頻率相關(guān)聯(lián)。
ULN2003的七個引腳與單片機P1.0~P1.7連接。在ULN2003芯片旁邊安裝插線排針,也就是電機的五線接口,用于連接步進電機。5V電源直接連接J4的第一引腳端口。與電機相連接,直接驅(qū)動電機正反轉(zhuǎn)從而來模擬控制窗簾的起閉。
步進電機是包括單相電機和多相電機兩類,這兩類都是同步步進電機。單路電脈沖可以驅(qū)使單相電機運作,單相電機由于其本身的低輸出功率一般用作驅(qū)使微小電路。步進電機很適合應用于微處理器控制主要是因為能直接接收數(shù)字量。
3.5 顯示部分模塊
該次設(shè)計中用來顯示實時時間、開關(guān)窗簾定時時間、光照強度值的是LCD1602,在1602上顯示的時間可以通過按鍵調(diào)整,通過按鍵設(shè)定起閉窗簾的時間,在1602上實時顯示;也可以通過1602顯示我們采集到的光照數(shù)字值。
P0在此用作數(shù)據(jù)口的連接,在1602處與7到14引腳相連接,在連接線路上來傳輸寫數(shù)據(jù)或是寫指令。而且在線路的連接中必須加入上拉電阻。LCD1602的4引腳是RS寄存器選擇端,可以用來選擇數(shù)據(jù)還是命令; LCD1602的5腳是R/W讀寫控制端,它能決定讀數(shù)據(jù)還是寫數(shù)據(jù),與單片機芯片的P2.0端口貫串; LCD1602的六引腳是E使能信號端,可以控制器件是否工作,與單片機芯片P2.2端口相銜接[4]。在此次設(shè)計中采用旋轉(zhuǎn)電位器來調(diào)節(jié)1602的背光亮度。
4 系統(tǒng)軟件部分設(shè)計
此系統(tǒng)的主程序需要完成的功能有:單片機各個模塊的初始化操作,定時器初值設(shè)置以及開啟電機運轉(zhuǎn),顯示時間光照數(shù)字量等。通過主函數(shù)void main()來調(diào)用各個模塊子函數(shù)以此來實現(xiàn)整個系統(tǒng)的功能。軟件流程圖如圖7。
5 結(jié)束語
該系統(tǒng)設(shè)計采用AT89S52單片機的最小系統(tǒng)設(shè)計,通過控制一個可逆、直流電動機來控制窗簾的打開和關(guān)閉,使用遙控、光控方式使得窗簾系統(tǒng)變得智能化,這正符合現(xiàn)在智能家居的發(fā)展方向,能夠讓智能生活理念得到更好的推廣。
參考文獻:
[1] 鄭國君. 8位串行A/D轉(zhuǎn)換器ADC0832[J]. 電子世界, 2002(9).
[2] 梁明亮, 王新強. 單片機與ADC0832的接口技術(shù)[J]. 河南科技, 2006(8):48-49.
[3] 郭天祥. 新概念51單片機C語言編程[M]. 北京: 電子工業(yè)出版社, 2009.
[4] 于志贛, 劉國平, 張旭斌. 液顯LCD1602模塊的應用[J]. 機電技術(shù), 2009 ,32(3):21-23.
【通聯(lián)編輯:謝媛媛】