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