實用智能窗簾控制器的設計_第1頁
實用智能窗簾控制器的設計_第2頁
實用智能窗簾控制器的設計_第3頁
實用智能窗簾控制器的設計_第4頁
實用智能窗簾控制器的設計_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、劉浩本科畢業(yè)設計實用智能窗簾控制器的設計1緒論1.1研究意義隨著電子信息技術(shù)迅猛發(fā)展,人們對智能家居的要求越來越強烈,方便及舒適的智能窗簾是適應現(xiàn)代化辦公和生活環(huán)境的迫切需要。智能家居控制系統(tǒng)必將成為未來住宅的發(fā)展趨勢,走進普通居民的家居,進一步提高居民的家居生活品質(zhì)與品味1。智能窗簾作為其中的一個重要組成部分,其發(fā)展也標志著智能家居的發(fā)展程度,現(xiàn)在的智能窗簾控制系統(tǒng)集現(xiàn)代光、機、電為一體,是智能家居的理想選擇,盡力達到完美與和諧的統(tǒng)一。本設計根據(jù)現(xiàn)代化辦公和生活環(huán)境的迫切需要,以單片機STC89C54RD+為主控芯片,利用光強度傳感器BH1750FVI、溫濕度傳感器、紅外遙控器、紅外對管等傳

2、感器設計一個實用智能窗簾控制器。其取代了傳統(tǒng)的手動推拉窗操作,以一種人性化的工作模式適應人們?nèi)找孀非蠛唵?、方便、舒適的生活方式。1.2 實用智能窗簾控制器的設計的發(fā)展自從世界上第一幢智能建筑1984年在美國出現(xiàn)后,美國、加拿大、歐洲等經(jīng)濟比較發(fā)達的國家在智能家居的設計上也提出了各種方案2。智能窗簾作為其中的一個重要組成部分,其發(fā)展也標志著智能家居的發(fā)展程度,智能窗簾是未來居家生活的發(fā)展方向,雖然現(xiàn)在普及比較少且大多是有錢人的專屬,但是隨著電子技術(shù)的飛速發(fā)展和電子元件價格的下降,具有功能完備、安全性較高、便于窗簾的維護、性價比高等優(yōu)點的智能窗簾得到窗簾設計者的青睞。1.2.1基于無MCU智能窗簾

3、控制器的設計 無MCU的智能窗簾控制器典型設計原理如圖1.1,其核心電路為CK-95專用窗簾驅(qū)動模塊。該控制器把控制信號經(jīng)邏輯變換和電平變換后送到CK.95窗簾驅(qū)動模塊控制電機工作,根據(jù)控制信號執(zhí)行輸出從而控制窗簾的開和關(guān)3。奧蘭AL.CK01由驅(qū)動模塊、電源模塊、遙控接收及定時電路、控制電路等組成,其體積小巧,安裝方便。但是,這種設計的控制器沒用到微處理器MCU,使其控制不靈活,每一種功能上改動必會引起硬件上的變化,顯得并不智能,不能滿足高效、智能窗簾控制機的要求。信號變換電路遙控譯碼電路紅外就收電路S1S3S4S2自動停止主機開/關(guān)關(guān)副機開/關(guān)關(guān)去副機光敏電阻CK.95窗簾驅(qū)動模塊mSP.

4、18D電源模塊220VVDDR圖1.1典型無MCU的智能窗簾控制器原理圖1.2.2基于PLC智能窗簾的設計 基于PLC智能窗簾的設計框圖如圖1.2所示。接通開關(guān)后,打開PLC電源,PLC啟動后就對煤氣檢測模塊、煙霧檢測模塊、溫度檢測模塊、紅外線檢測模塊等進行檢測4。PLC根據(jù)這些信息自動控制窗戶或者窗簾的開關(guān)。該智能窗設計最大的特點是功能模塊化,PLC的接口較多,使得該設計的制作和編程較為方便。顯然PLC的功能強大可以完成一個智能窗戶的所有功能,其利用輸入的各個檢測信號輸入到預處理模塊進行電量轉(zhuǎn)換,并將信號輸入到PLC處理,控制輸出模塊的動作,進行智能窗戶的設計,功能十分完備。但是,其價格昂貴

5、,一個低端的PLC裸機就高達一千元左右,再加上其體積龐大不易安裝、I/O接口的浪費,顯然是大材小用了??刂瓢粹o電源氣敏傳感器煙霧傳感器濕度傳感器紅外傳感器溫度開關(guān)輸入模塊 FXIN-24MR 輸出模塊直流電機排氣扇聲光報警器指示燈圖1.2 基于PLC的智能窗簾的設計框圖1.2.3基于網(wǎng)絡化智能窗簾控制器的設計 基于Zigbee技術(shù)設計的智能窗簾網(wǎng)絡化控制系統(tǒng),其典型的原理框圖為圖1.3。利用系統(tǒng)網(wǎng)絡的拓撲和采用Zigbee網(wǎng)絡技術(shù)來對整棟辦公大樓的窗簾進行集中控制管理5。根據(jù)室外溫度、光照強度等參數(shù)控制窗簾或者窗戶,同時可以起到節(jié)約能源和美化整棟建筑幕墻的作用。但是這種方案把每個辦公室的溫度和

6、光強的情況統(tǒng)一化了,沒有按照每個辦公室的實際需要而進行統(tǒng)一的管理和控制,使其在廣泛利用方面有一定的局限性。圖1.3 基于Zigbee技術(shù)的智能窗簾網(wǎng)絡化控制系統(tǒng)開始程序初始化判斷窗簾初始化狀態(tài)打開關(guān)閉是否有強光或者較大濕度是否有弱光或者濕度低否否向Zigbee模塊發(fā)射關(guān)窗信號向Zigbee模塊發(fā)射開窗信號A1.3 研究內(nèi)容設計內(nèi)容:設計一個智能窗簾,用STC89C54RD+為主控芯片,以數(shù)字光強度、濕度、溫度等傳感器作為外圍電路的窗簾控制器。將各傳感器的信號送入單片機,利用單片機發(fā)出控制信號去驅(qū)動電機轉(zhuǎn)動,完成一個窗簾控制器的設計,使其具有功能完備、安全性較高、便于維護等特點。該控制器能檢測環(huán)

7、境的光線強度和濕度,并根據(jù)自己設點值自動打開窗簾的打開程度;定時早晚開關(guān)窗簾;紅外遙控遠程控制窗簾的開關(guān)和參數(shù)設置;能用液晶顯示實時顯示工作參數(shù)等。1.4 論文結(jié)構(gòu)整個論文結(jié)構(gòu)安排如下:第1章 緒論:介紹智能窗簾的背景、意義和發(fā)展現(xiàn)狀第2章 系統(tǒng)硬件設計:講述本設計所用到的各硬件模塊的功能和實現(xiàn)方案第3章 系統(tǒng)硬件模塊:系統(tǒng)的介紹硬件系統(tǒng)的總體電路和各個模塊硬件功能的實現(xiàn)第4章 系統(tǒng)軟件設計:系統(tǒng)地介紹軟件流程、各模塊的軟件設計和總體程序組合第5章 系統(tǒng)的調(diào)試:從模塊到整機的調(diào)試第6章 結(jié)束語2系統(tǒng)硬件設計2.1功能要求主要功能:1 光線強度檢測:通過光線強度傳感器實時檢測光線強弱,控制窗簾打

8、開的合適程度,為室內(nèi)提供設定的光線強度;2 時鐘定時及萬年歷功能:能提供一個簡單的萬年歷功能并能夠定時早晚開關(guān)窗簾;3 紅外遙控遠程控制:可以用遙控進行窗簾的開和關(guān),以及各個參數(shù)的設置;4 濕度檢測:能完成濕度檢測,當房屋內(nèi)濕度太大能自動打開窗簾進行通風;5 各參數(shù)(光線強度、濕度、工作模式、萬年歷等)的實時顯示; 6 窗簾的完全關(guān)閉和打開的自動檢測及控制等。根據(jù)設計的需要,將單片機最小系統(tǒng)、傳感器模塊、液晶12864顯示、電機驅(qū)動電路和電機模塊、紅外遙控器和遙控接收模塊、電源模塊等有機組合完成以上的設計要求。2.2設計方案利用單片機STC89C54RD+為主控芯片,以數(shù)字光強度、濕度、溫度、

9、紅外對管等傳感器為外圍電路的有機結(jié)合,送入單片機中去驅(qū)動電機的轉(zhuǎn)動。最終完成一個具有功能完備、安全性較高、便于窗簾維護等特點的窗簾控制器, 總體設計框圖如圖2.1。模塊化設計:1 單片機最小系統(tǒng)模塊:單片機的電源電路、開關(guān)、必要的時鐘電路、復位電路及按鍵;2 傳感器模塊:BH1750FVI是用16位數(shù)字光強度傳感器,利用內(nèi)部的模數(shù)轉(zhuǎn)換器把采集光的強度實時送到STC89C54RD+中進行處理,理將溫濕度傳感器等信號通過電量轉(zhuǎn)換送入單片機6;3 顯示模塊:通過液晶12864顯示時間和工作模式及其參數(shù)等;4 電機模塊:經(jīng)過單片機對各種傳感器的實時信息輸入,根據(jù)預先設置好的參數(shù)對電機進行控制,主要為正

10、轉(zhuǎn)和反正的控制;5 遙控模塊:通過紅外解碼,進行遙控器的重新設計;6 紅外對管的模塊,設計紅外對管電路,能完成窗簾的完全關(guān)閉和打開的自動檢測及控制等。STC89C5212864液晶顯示紅外遙控BH1750FVI數(shù)字光強度監(jiān)測溫濕度監(jiān)測復位電路時鐘電路(走時、定時)紅外對管模塊完全打開關(guān)閉檢測電機模塊供電模塊模式選擇(手動、自動)圖2.1 窗簾總體設計框圖2.3小結(jié)本章主要講述了該設計要完成的主要功能和設計方案,根據(jù)功能確定智能窗簾設計的總體框圖,以及其硬件電路設計的整體情況。完成了分析功能要求和確定設計方案。3 系統(tǒng)硬件模塊3.1系統(tǒng)總體電路本設計的系統(tǒng)總體電路如圖3.1所示??刂撇糠质且許T

11、C89C54RD+單片機為核心的最小系統(tǒng)7;液晶12864顯示各參數(shù)包括光線強度、濕度、工作模式、萬年歷等;把BH1750FVI實時采集光強信號和DHT11實時采集溫濕度值送入最小系統(tǒng)進行處理;紅外接收頭接收遙控輸入數(shù)據(jù)主要為功能鍵和數(shù)值鍵;DS1302提供一個萬年歷的功能,讓預設時間和萬年歷時間一致,完成早晚開窗簾的開和關(guān);2對紅外對管分別完成完全打開和完全關(guān)閉的檢測功能,使得電動機在完全打開和完全關(guān)閉時停下來。圖3.1 系統(tǒng)總體電路圖3.2 STC89C54RD+單片機最小系統(tǒng)主控制器在一定程度上也決定了系統(tǒng)的整體性能,本設計選擇的主控芯片是STC89C54RD+單片機。STC89C54R

12、D+是宏晶科技公司推出的抗干擾性強、低功耗、高速、完全兼容傳統(tǒng)8051指令代碼且具有良好性價比的單片機。此單片機具有雙倍速功能,支持6周期模式運行;還具備ISP在線系統(tǒng)編程功能,不用購買額外的編程器,為開發(fā)帶來方便;最主要的是其具有16字節(jié)Flash程序存儲器和1280字節(jié)的數(shù)據(jù)存儲器,可以大大的滿足使用者在編寫復雜程序時遇到容量不夠用的問題。本設計使用的傳感器和外圍電路較多,因此需要較大的存儲容量,無需擴展外部程序存儲器和數(shù)據(jù)存儲器??紤]以上因素STC89C54RD+單片機是最好的選擇,其最小系統(tǒng)為圖3.2。圖3.2 單片機最小系統(tǒng)3.3 LCD12864顯示模塊本設計采用帶有中文字庫的液晶

13、顯示器12864,顯示的分辨率是128*64,內(nèi)置有8192 個16*16 點漢字和128個16*8點的ASCII字符。該模塊的接口方式靈活、簡單,讓程序的編寫也較為方便;同時還具有工作電壓低、耗電量低等特點。由該模塊構(gòu)成的液晶顯示與同類型圖形的點陣液晶顯示模塊相比,在硬件電路結(jié)構(gòu)和顯示程序上都要簡潔得多??紤]到要實時顯示時間、光線強度、濕度、窗簾模式等參數(shù),從而12864成為本設計的最佳選擇。引腳接法如圖3.3所示。圖3.3液晶顯示電路模塊3.4時鐘模塊DS1302 是DALLAS公司推出的新一代低功耗、高性能、自帶RAM的時鐘電路芯片。其可對年、月、日、周日、時、分、秒等精確計時,可以工作

14、在2.5V5.5V之間,滿足本設計的5V電源供電;DS1302內(nèi)部結(jié)構(gòu)中包含一個為318臨時性存放數(shù)據(jù)的寄存器RAM;可以在工作時接上主電源和后備電源雙電源引腳,同時也為備用電源CR2032充電。本設計采用三線(SCLK、I/O、RST)接口與單片機之間的同步通信。按照設計需要利用DS1302和單片機結(jié)合做有一個萬年歷模塊設計 8。利用萬歷年中的時間進行早晚開關(guān)窗簾設定,時鐘模塊的電路如圖3.4所示。圖3.4 時鐘模塊外圍電路3.5光線傳感器模塊一般測光線強度的電路模塊用到光敏電阻,光敏電阻需要用模數(shù)轉(zhuǎn)換器將其模擬信號轉(zhuǎn)換為數(shù)字信號,電路復雜、費用高而且光敏電阻進行光強度采集不夠理想等缺點。從

15、而人們提出了一種利用16位高精度數(shù)字光線強度傳感器BH1750FVI進行光強度檢測儀的設計方案9。利用 IC 總線接口數(shù)字型光強度傳感器還可以避免額外的模數(shù)轉(zhuǎn)換帶來的誤差,可在12864液晶顯示器上進行測量數(shù)值的顯示。該傳感器具有光強度采集精度較高、實時性較強、反應速度非常靈敏等優(yōu)點,并且電路設計較為簡單,利用它的高分辨率可以探測較大范圍的光強度變化(1lx.65535lx),可以很好地滿足人們辦公和居家的使用需要。除電源和接地外,只需使用2個I/O接口就可以實現(xiàn)光線強度的實時讀取,使用十分方便,其引腳接法如圖3.5所示。圖3.5光線傳感示模塊外圍電路3.6紅外遙控模塊紅外遙控系統(tǒng)如圖3.6所

16、示,由發(fā)射器和接收器兩部分組成。遙控發(fā)射部分一般包括鍵盤矩陣、編碼調(diào)制電路和LED紅外發(fā)射器;接收部分一般由光、電轉(zhuǎn)換放大器、解調(diào)和解碼電路等組成。本設計采用的是1838T紅外接收頭,其體積和普通的三極管樣的體積一樣大小,使用十分方便,它集成紅外線的接收、放大、解調(diào),不需要外接任何其他元件就能完成從紅外接收到輸出與TTL電平信號兼容的所有工作。1腳接VCC接電源,2腳GND是地線,3腳脈沖信號輸出(P33),系統(tǒng)只要檢測到INT0信號下降沿就能測出控制指令,從而完成相應的功能。根據(jù)遙控信號進行編碼10、周期波形圖如圖3.7所示進行解碼11。1838T紅外接收頭的引腳排列如圖3.8所示。鍵盤編碼

17、調(diào)制LED光/電放大解調(diào)解碼遙控發(fā)射器遙控接收器圖3.6 紅外遙控系統(tǒng)框圖遙控信號編碼波形圖遙控信號周期波形圖圖3.7遙控信號編碼、周期波形圖圖3.8 1838T的引腳排列3.7溫濕度傳感器模塊DHT11數(shù)字溫濕度傳感器是一個內(nèi)部包含已校準的數(shù)字信號輸出溫濕度復合型傳感器,其應用專用的溫濕度傳感技術(shù)和數(shù)字模塊采集技術(shù),以確保產(chǎn)品具有很高的穩(wěn)定性;本設利用其中的測溫元件NTC和電阻式感濕元件與一個STC89C54RD+單片機相連接,完成濕度的精確讀取;極低的功耗、超小的體積、連接方便(只需用到單片機的一個I/O接口)。在工作中同時提供溫度和濕度的實時讀取。本設計利用STC89C54與 DHT11

18、之間的同步通訊,采用單總線數(shù)據(jù)格式。一次通訊時間4毫秒左右,傳輸完整的數(shù)據(jù)為40bit,高位先出。把數(shù)據(jù)分為整數(shù)部分和小數(shù)部分,根據(jù)具體格式為:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗就能提取濕度值12。溫濕度感器模塊如圖3.9所示。圖3.9濕度傳感器模塊 3.8電機模塊步進電機28BYJ48是四相八拍型電機,工作電壓為DC5VDC12V。當對步進電機施加一系列連續(xù)不斷的控制脈沖時,就可以連續(xù)不斷地轉(zhuǎn)動13。本設計采用的是A.AB.B.BC.C.CD.D.DA.A節(jié)拍方式如圖3.10所示,當數(shù)組中的值改變并完成完成一個循環(huán)的時候,轉(zhuǎn)子就

19、轉(zhuǎn)過一個齒距,以此類推地連續(xù)工作。其中因為P1的低字節(jié)已作為按鍵使用,所以P1 =(P1&0x0f)|(0xf0&FFWj,使得P1的高字節(jié)(FFWj的值依j的變化次循環(huán))在不影響P1低字節(jié)的變化,去驅(qū)動步進電機。因此數(shù)組FFW的值為0x1f,0x3f,0x2f,0x6f,0x4f,0xcf,0x8f,0x9f,使得電動機正轉(zhuǎn)。同理可以利用數(shù)組REV的值為0x9f,0x8f,0xcf,0x4f,0x6f,0x2f,0x3f,0x1f去完成電動機反轉(zhuǎn)。由于單片機接口信號不夠大需要通過ULN2003放大后再連接到相應的電機接口。電機接口的電路如圖3.11所示,驅(qū)動方式:(4-1-2相驅(qū)動),從左到

20、右 CCW旋轉(zhuǎn)方向(軸伸端視)。導線顏色123456785紅+4橙-3黃-2粉-圖3.10步進電機運行方式1藍-圖3.11電動機模塊3.9紅外對管模塊2對紅外對管分別完成窗簾的完全打開和完全關(guān)閉檢測功能,使得電動機在完全打開和完全關(guān)閉的時停下來。當窗簾通過D2和D3之間時,D3就會導通,此時P00為低電平,否則就是高電平。同理窗簾通過D4和D5之間時,D5就會導通,此時P01為低電平,否則就是高電平。所以,設定2個全局變量openall(完全打開)和closeall(完全關(guān)閉)分別為P00和P01的電平信號值,就可以反饋窗簾的打開程度,以使得電動機在完全打開和完全關(guān)閉的時停下來。其電路如圖3.

21、12。圖3.12 紅外對管模塊3.10電源模塊設計直流穩(wěn)壓電源通常由電源變壓器、整流電路如圖3.13所示、濾波電路和穩(wěn)壓電路這四部分組成。變壓器將220V的交流電變換為所需要的電壓值;整流電路將正負交替的交流電變換成單向的脈動電壓;濾波電路將單向的脈動電壓變換成比較平滑的直流電壓;穩(wěn)壓電路將平滑的直流電壓變成恒定的直流電壓,并且當電網(wǎng)電壓波動,負載和溫度變化時,維持輸出的直流電壓穩(wěn)定14。12V電源模塊如圖3.14所示,主要由核心元件是7812和7912。5V電源模塊如圖3.15所示,核心元件是LM7805和7905,為不同的電動機在不同工作環(huán)境提供相應的電壓。圖3.13 整流電路模塊圖3.1

22、4 12V電源模塊圖3.15 5V 電源模塊C170.33uFC312.2nFC190.1uFC270.01uFC280.01uFC294.7nFC230.1uFC240.1uFC250.033C260.033C322.2nFC304.7nFC21220uFC201uFC22220uFC182.2uFD31N4148D41N4148AB+5.5GNDVin1Gnd2+5V3U3LM7805CTVin2Gnd1.5V3U4LM79053.11遙控版面設計 將遙控器進行解碼,將原有的遙控版面如圖3.16所示,進行重新設計,最終完成適合該設計實際應用的版面如圖3.17所示。開 停 關(guān) 手/自 時間

23、確定 0 設置 1 2 3 4 5 6 7 8 9 圖3.17遙控版面重新設計圖3.16 遙控原有版面重新設計3.12小結(jié)本設計使用的模塊較多、較散,必須在模塊化設計時把每個模塊的最終協(xié)調(diào)工作考慮進去,從而為系統(tǒng)的軟件設計提供方便和做好準備。4 系統(tǒng)軟件設計4.1程序工作流程圖4.1.1程序總體工作流程圖本設計使用C語言完成程序的編寫和調(diào)試, Keil軟件是目前開發(fā)51系列單片機最流行的軟件,可直接用串口轉(zhuǎn)USB下載由Keil軟件生成的.hex文件進行程序燒錄,使用十分方便。與匯編語言比較,C語言有程序靈活性強、代碼簡潔、容易進行模塊化設計等優(yōu)點15??傮w工作流程如圖4.1所示,首先,進行程序

24、初始化,其包括單片機、液晶、各傳感器等模塊的初始化。進入界面后按照DS1302原有的時間進行走時,該界面也提供一個萬年歷的功能,可以使用遙控查看時間包括年、月、日、時、分、秒、星期的查看,如果不進行時間調(diào)整,就可以進入自動模式和手動模式的任意切換,默認下為自動模式。初始化是否調(diào)整窗簾顯示時間是否年、月、日、時、分、秒、星期調(diào)整是否讓窗簾工作在手動模式否是是否工作在手動模式工作在自動動模式是否退出自動模式是否完成設置否圖4.1 程序總體工作流程圖是4.1.2自動模式工作程序流程圖如果工作自動模式的流程圖如圖4.2所示,則按照預設定的值(最適宜的光線強度值、最大濕度值、早晚開窗時間)進行工作,其中

25、這些值可以用遙控進行修改。系統(tǒng)有個全局變量dayfalg,它可以判斷當前時間是否在早晚開窗時間之間,從而決定早晚開窗時間。如果是晚上就完全關(guān)閉窗簾,除非用手動模式打開窗簾。在早晚開窗時間之間,如果當前濕度大于設定值,就完全打開穿了通風,如果光線強度值不滿足設定要求,就進行正反轉(zhuǎn)自動調(diào)節(jié)。是是是是圖4.2 自動模式工作流程圖完全打開電動機正轉(zhuǎn)完全關(guān)閉電動機反轉(zhuǎn)是當前當前光線是否小于設定要求是否否當前光線是否大于設定要求 完全打開是否電動機正轉(zhuǎn)是當前濕度是否大于設點最大值否完全關(guān)閉是否電動機反轉(zhuǎn)否當前時間是否在早晚開窗時間之間是否完成設置是否設置各預設定的參數(shù)是是否調(diào)整適宜光線強度值、最大濕度值、

26、早晚開窗時間工作在自動模式4.1.3手動模式工作程序流程圖如果工作在手動模式下流程如圖4.3所示,不受設定值的影響,自由地進行打開和關(guān)閉窗簾。工作在手動模式是否按下打開否是電動機正轉(zhuǎn)否是是否按下停止是否按下關(guān)閉否是完全打開是電動機反轉(zhuǎn)否是 是否按下停止是 完全打開否否否否否否圖4. 3手動模式工作流程圖4.2 BH1750FVI數(shù)字型光強度值讀取主要程序?qū)懞肂H1750FVI的初始化程序后,主要通過Single_Read_BH1750(uchar REG_Address)和void Multiple_read_BH1750(void)子程序讀取光線強度數(shù)據(jù)。uchar Single_Read_

27、BH1750(uchar REG_Address) /單字節(jié)讀取/ uchar REG_data; BH1750_Start(); /起始信號/ BH1750_SendByte(SlaveAddress); /發(fā)送設備地址加寫信號/ BH1750_SendByte(REG_Address); /發(fā)送存儲單元地址,從最開始的單元開始/ BH1750_Start(); BH1750_SendByte(SlaveAddress+1); /發(fā)送設備地址加讀信號/ REG_data=BH1750_RecvByte(); /讀出寄存器數(shù)據(jù)/BH1750_SendACK(1); BH1750_Stop();

28、 / /信號停止/ return REG_data; void Multiple_read_BH1750(void) /連續(xù)讀出BH1750內(nèi)部數(shù)據(jù) uchar i; BH1750_Start(); /起始信號/ BH1750_SendByte(SlaveAddress+1); /發(fā)送設備地址加讀信號/ for (i=0; i2) flag_num=0; sum=sum*10+buf; for(i=0;i1) zidong=0; if(wangnianli1) wangnianli=0; for(i=0;i4;i+)/關(guān)閉接收 防止進入死循環(huán)/ ircodei=0; 4.4溫濕度傳感器工作程序

29、void read_init() DHT=0; /使DHT11低電平并延時至少18ms/delay_ms(21);DHT=1; /置DHT11高電平2040us,并等待從機相應/delay_10us();DHT=1;if(!DHT) /從機發(fā)出響應信號/ flag=2;while(!DHT)&flag+);/等待從機發(fā)高電平結(jié)束/flag=2;while(DHT&flag+);/開始采集數(shù)據(jù)/tr_shiZ=read_datadht(); /采集濕度整數(shù)部分/tr_shiX=read_datadht(); /采集濕度小數(shù)部分/tr_wenZ=read_datadht();/采集溫度整數(shù)部分/t

30、r_wenX=read_datadht();/采集溫度小數(shù)部分/check=read_datadht();/采集校驗位/DHT=0;delay(20); /采集完數(shù)據(jù)后/ char read_datadht()uchar i,num,tempp;num=0;for(i=0;i8;i+) flag=2;while(!DHT)&flag+);/等待50毫秒低電平/delay_10us(); /延時判斷0還是1/if(DHT=1) tempp=1;flag=2;while(DHT&flag+);elsetempp=0;num=1;num|=tempp; return(num);濕度 (shiZ)的值

31、和預設定值shidu0進行比較,如果在設定的早晚時間之間,當shiZ大于shidu0就執(zhí)行打開窗簾通風。4.5早晚定時開窗主要程序在早晚定時的程序中,如果當前時間不在早晚定時之間,dayflag為0,如果當前時間在早晚定時之間,dayflag為1。程序段為:read_init(); /讀傳感器數(shù)據(jù)/read_time(); /讀時間子程序/if(am0*10000+am1*10)(shi*10000+fen*10)(SET_guangqiang+20)|(dayflag=0)&(closeall=0)&zidong).4.6電動機模塊以打開窗簾為例,程序段為:dakai() int i,j;

32、for(i=0;i16;i+) for(j=0;j(SET_guangqiang+20)|(dayflag=0)&(closeall=0)&zidong)while(tempshidu0)&(dayflag=1)&(openall=1)&zidong)只有closeall為低電平才能執(zhí)行第一個while循環(huán)體內(nèi)容(關(guān)閉操作),只有openall為高電平才能執(zhí)行第一個while循環(huán)體內(nèi)容(打開操作)。4.8系統(tǒng)主程序void main()uint SET_guangqiang; uchar i,j; while(1) float tempp; delay_ms(200); /延時200ms lc

33、d_init(); /初始化LCD Init_BH1750(); /初始化BH1750 timer0init(); int0init(); while(1) if(k4flag=1) /如果按下k4即設置鍵,進入調(diào)整時間 lcd_wcmd(0x80);xianshi(智能窗簾 時鐘 );lcd_wcmd(0x91);xianshi(20 年 月 日);lcd_wcmd(0x8A);xianshi(星 期 ); lcd_wcmd(0x9a);xianshi(00: 00: 00 );while(k4flag=1)if(k1=0) read_time(); /讀時間子程序dingwei(); ke

34、yscan(); /設置退出if(key4=0)k4flag=0; if(key4=0)k4flag=0;break; if(k4flag=0) read_init(); /讀傳感器數(shù)據(jù) read_time(); /讀時間子程序 /if(am0*10000+am1*10)(shi*10000+fen*10)(pm0*10000+pm1)*10) if(am0*10000+am1*10)(shi*10000+fen*10)(SET_guangqiang+20)|(dayflag=0)&(closeall=0)&zidong) guanbi(); /晚上(設定值)或者光線小于設定值關(guān)閉窗簾 whi

35、le(tempshidu0)&(dayflag=1)&(openall=1)&zidong) dakai(); /早上(設定值)或者光線大于設定值打開窗簾 while(zidong=0&(kai=1|guan=1) /手動 gkey();while(zidong=0&kai=1&openall=1)/手動下打開 gkey(); dakai(); if(openall=0)break; while(zidong=0&guan=1&closeall=0)/手動下關(guān)閉 gkey(); guanbi(); if(closeall=1)break; 4.9小結(jié)本設計的模塊較多,要完成整體設計,必須模塊化

36、設計。在開始,寫一個簡單的液晶12864的程序調(diào)試,因為利用它可以調(diào)試并顯示其他模塊的工作情況并顯示出來。首先,進行顯示界面的規(guī)劃、進行紅外遙控解碼、功能鍵等程序的編寫,編寫好DS1302的工作程序。然后,進行光線強度傳感器、濕度傳感器、紅外對管程序的設計。最后,把各個模塊程序加入的主程序中完成整體程序的設計。5 系統(tǒng)調(diào)試5.1各模塊調(diào)試5.1.1電機模塊調(diào)試電動機模塊P1 =(P1&0x0f)|(0xf0&FFWj使得P1的高字節(jié)(FFWj的值依j的變化次循環(huán))在不影響P1低字節(jié)的變化,去驅(qū)動步進電機。調(diào)節(jié)延時函數(shù)即控制電動機轉(zhuǎn)速。FFW數(shù)組的值為0x1f,0x3f,0x2f,0x6f,0x

37、4f,0xcf,0x8f,0x9f,這樣滿足電動機正轉(zhuǎn)。同理同理可以利用REV數(shù)組的值為0x9f,0x8f,0xcf,0x4f,0x6f,0x2f,0x3f,0x1f完成電動機反轉(zhuǎn)。5.1.2時鐘模塊調(diào)試經(jīng)過24小時過5秒的走時,測出和網(wǎng)絡時間吻合,如圖5.1時鐘電路和程序正常。測試前的走時24小時之后的走時圖5.1 時鐘走時測試調(diào)試5.1.3濕度模塊調(diào)試圖5.2所示為室內(nèi)濕度值和向濕度傳感器加濕氣的比較(濕度值55%RH增加到81%RH),濕度傳感器模塊工作正常。室內(nèi)濕度值加濕氣后的濕度值圖5.2 濕度傳感器調(diào)試5.1.4光線模塊調(diào)試 在對著窗子較強的光線強度和室內(nèi)燈光調(diào)試對比(光線強度由2

38、24Lx減少到148Lx)測試圖如圖5.3所示。圖5.3 光線強度傳感器測試調(diào)試5.1.5紅外遙控按鍵解碼及調(diào)試將遙控器按鍵面板如圖5.4所示的按鍵解碼,其對應的鍵值為圖5.5所示。00FF453A00FF463900FF473800FF443B00FF403F00FF433C00FF077800FF156A00FF097600FF166900FF199600FF0D7200FF0C7300FF186700FF5E2100FF087700FF1C6300FF5A2500FF432D00FF522D00FF4A35開 停 關(guān) 手/自 時間 確定 0 設置 1 2 3 4 5 6 7 8 9 圖5

39、.4 遙控版面重新設計圖5.5 遙控解碼值5.1.6紅外對管模塊調(diào)試將電路按照圖3.12連接起來,測得P00和P01的電壓都0.2V,用一張透光性不強的布料穿過紅外對管,此時,接收管截止,測得P00和P01的電壓都4.6V。2個全局變量openall(完全打開)和closeall(完全關(guān)閉)分別為P00和P01的值,用于反饋信號(0.2V為低電平、4.6V為高電平),此時能夠使得電動機在窗簾完全打開和完全關(guān)閉時停下來。5.2系統(tǒng)整體調(diào)試經(jīng)模塊調(diào)試,各模塊的工作正常。將整體程序燒錄,系統(tǒng)整體整體工作如下:首先,程序初始化,其包括單片機、液晶、各傳感器等模塊的初始化。然后,進入界面后按照DS130

40、2原有的時間進行走時,該界面也提供一個萬年歷的功能,可以有用遙控查看時間(包括年、月、日、時、分、秒、星期的查看),如果不進行時間調(diào)整,就直接進入自動模式和手動模式的任意切換,默認下為自動模式。其中,圖5.6為用遙控設置預設值(最適宜的光線強度值、最大濕度值、早晚晚開窗時間)的工作界面;圖5.7 為自動模式下光強變化工作圖片,預設置的最適宜光強為150Lx,室內(nèi)光強控制在窗簾在150+20Lx,如大于170就關(guān)閉窗簾調(diào)整,小于130則打開窗簾調(diào)整。圖5.8 是手動模式下關(guān)窗工作圖片,在此工作模式下,窗簾的開關(guān)不受預設值控制,只可以用遙控進行開關(guān)或者停等操作。圖5.6遙控設置預設值工作圖片圖5.

41、7 自動模式下光強變化工作圖片圖5.8 手動模式下關(guān)窗工作圖片5.3小結(jié)經(jīng)過前面幾章的工作,調(diào)試階段很順利的進行。本章節(jié)先對顯示模塊、時鐘模塊、傳感器等功能模塊電路分別調(diào)試,然后整體調(diào)試直到調(diào)試成功。該控制器的顯示模塊、時鐘模塊、遙控器模塊、電動機模和各傳感器等都能正常工作,并且設計的功能和結(jié)果都達到了預期目的。該設計具體能經(jīng)行光線強度檢測、溫濕度檢測、紅外遙控遠程控制;具有時鐘定時及萬年歷功能、各參數(shù)(光線強度、濕度、手動和自動工作模式、萬年歷等)的實時顯示功能;以及窗簾完全關(guān)閉和打開的自動檢測和控制。最實用的是,其可以根據(jù)自己設定的光線強度值自動控制窗簾的打開程度;當濕度過大時能打開窗簾;

42、早晚定時開關(guān)窗簾。最終在模塊化設計和不斷調(diào)試中完成各項指標和功能。6 結(jié)束語6.1 結(jié)論本設計以STC89C54RD+為主控芯片,利用數(shù)字光強度、濕度、溫度、紅外對管等傳感器為外圍元件,經(jīng)過信號電量轉(zhuǎn)換送人單片機,然后利用單片機發(fā)送控制信號驅(qū)動電機的轉(zhuǎn)動, 最終完成了以下功能:1 光線強度檢測:通過光線強度傳感器實時檢測光線強弱,控制窗簾打開的合適程度,為室內(nèi)提供設定的光線強度;2 時鐘定時及萬年歷功能:能提供一個簡單的萬年歷功能并能夠定時早晚開關(guān)窗簾;3 紅外遙控遠程控制:可以用遙控進行窗簾的開和關(guān),以及各個參數(shù)的設置;4 濕度檢測:能完成濕度檢測,當房屋內(nèi)濕度太大能自動打開窗簾進行通風;5 各參數(shù)(光線強度、濕度、工作模式、萬年歷等)的實時顯示; 6 窗簾的完全關(guān)閉和打開的自動檢測及控制等。6.2 展望本次設計的電動機模塊是模擬的有較大力矩的電動機,如果把該設計投入使用,則需要將它換成實際需要的電動機用控制脈沖控制即可。本設

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論