梁東云, 吳曉云
(商洛學(xué)院 電子信息與電氣工程學(xué)院, 陜西 商洛 726000)
汽車天窗已經(jīng)是汽車的標配,它不僅是汽車的一個裝飾,還能在車內(nèi)溫濕度改變時及時調(diào)節(jié)天窗的開合,怎樣實現(xiàn)它隨著車內(nèi)的溫度、濕度、光線的改變自動開合成為了一個研究課題[1]。本設(shè)計改善了車內(nèi)空氣的溫度和濕度,彌補了傳統(tǒng)天窗的不足,最大程度地提高了采光率[2]。它能在駕駛時把人解放出來,減少外界環(huán)境的改變對駕駛員的干擾,專心駕車,增加了車內(nèi)環(huán)境的舒適度,提高安全性。
硬件設(shè)計是一個設(shè)計的基礎(chǔ),是軟件設(shè)計和運行的前提,本設(shè)計以STC89C52單片機為核心,將傳感器模塊采集到的溫度、濕度和光照強度進行轉(zhuǎn)換后并通過顯示模塊進行顯示,STC89C52微控制器經(jīng)過信息的判斷和處理后發(fā)送指令驅(qū)動電機的旋轉(zhuǎn),通過直流電機的正轉(zhuǎn)和反轉(zhuǎn)來模擬汽車天窗的開與合,達到車內(nèi)溫濕度以及光照強度的自動調(diào)節(jié)[3-4]。設(shè)計主要包括控制模塊、傳感器模塊,顯示模塊和電機驅(qū)動模塊4大部分,系統(tǒng)總體框架如圖1所示。
圖1 系統(tǒng)框架總圖
DHT12是一款新型單總線數(shù)字式溫濕度傳感器,內(nèi)部包括一個感濕元件和一個NTC測溫元件,微處理器之間具有獨特的單總線通訊方式[5]。外部電路如圖2所示。
圖2 與單片機接口圖
通過光敏二極管PD采集光線,集成運算放大器將PD電流轉(zhuǎn)化為PD電壓,再由模數(shù)轉(zhuǎn)換器獲取16位數(shù)字數(shù)據(jù),然后被邏輯和IC界面進行數(shù)據(jù)處理和儲存[6-7]。引腳中SDA管腳與單片機的P1.0口連接,SCL管腳與單片機的P1.1口連接,利用I2C協(xié)議進行通信。
本設(shè)計采用LCD1602與STC89C52單片機進行不斷通信,利用1602液晶的顯示特性,將車內(nèi)溫濕度,光照強度以及天窗開合等信息在液晶顯示屏上實時顯示出來[8]。
本設(shè)計選擇TB6612電機驅(qū)動模塊,該模塊具有體積小、效率高、在額定范圍內(nèi)芯片發(fā)熱量低的特點。本設(shè)計通過單片機控制電機的運動模式,實現(xiàn)直流電機的正傳、反轉(zhuǎn)和停止[9]。
本設(shè)計采用3個獨立按鍵,分別接單片機P1.4、P1.5、P1.6,由程序掃描這3個口,其中SW2是設(shè)置按鍵,SW3和SW4分別對應(yīng)加減按鍵,通過這3個按鈕來設(shè)定車內(nèi)溫濕度的閾值。按鍵與單片機接口如圖3所示。
圖3 鍵電路
2.1.1 數(shù)據(jù)格式
DHT12與單片機之間通過單總線協(xié)議進行數(shù)據(jù)傳輸。每次傳送40位的數(shù)據(jù),其數(shù)據(jù)格式為8 bit濕度整數(shù)數(shù)據(jù)+8 bit濕度小數(shù)數(shù)據(jù)+8 bit溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗位[10]。若8bit濕度整數(shù)數(shù)據(jù)+8 bit濕度小數(shù)數(shù)據(jù)+8 bit溫度整數(shù)數(shù)據(jù)+8 bit溫度小數(shù)數(shù)據(jù)=校驗碼,則表示校驗通過,代表這次讀取出來的溫度濕度正確[11];若校驗不通過,那么就代表這次讀取出來的溫濕度值是錯誤的,單片機將自動刪除數(shù)據(jù)。
2.1.2 DHT12的通信流程
DHT12與單片機的通信過程中,DHT12為從機,STC89C52單片機為主機,通信流程如下:①主機發(fā)送起始信號②DHT12響應(yīng)信號③DHT12通知主機準備接受信號④DHT12發(fā)送準備好的數(shù)據(jù)⑤DHT12發(fā)送結(jié)束信號⑥D(zhuǎn)HT12內(nèi)部重新檢測室內(nèi)環(huán)境溫濕度并記錄數(shù)據(jù),等待下一次主機發(fā)送的起始信號[12]。主機、從機的通信過程如圖4所示。
圖4 DHT12時序圖
BH1750光照傳感器的通信流程,BH1750為從機,STC89C52單片機為主機,具體的通信流程分2步。
(1) 主機向從機發(fā)送起始信號,發(fā)送設(shè)備地址和寫信號,發(fā)送完畢后等待BH1750應(yīng)答,然后單片機再發(fā)送內(nèi)部寄存器地址,等待從機的應(yīng)答,得到回應(yīng)后停止發(fā)送命令[13]。再發(fā)送“連續(xù)高分辨率模式”指令,時序如圖5所示。
圖5 寫操作
(2) 單片機等待BH1750的回應(yīng),讀取BH1750返回的信息,信息有16位數(shù)據(jù),數(shù)據(jù)分為高8位和低8位。先讀取高8位數(shù)據(jù),并發(fā)送應(yīng)答信號,再讀取低8位數(shù)據(jù),隨后主機發(fā)送停止信號,整個采集過程結(jié)束。時序如圖6所示。
圖6 讀操作
汽車天窗開合控制系統(tǒng)軟件設(shè)計主程序框架設(shè)計如圖7所示。
圖7 主程序設(shè)計框架
以室內(nèi)溫濕度模擬車內(nèi)溫濕度對汽車天窗開合控制系統(tǒng)進行測試,通過按鍵電路設(shè)定溫濕度閾值,檢測系統(tǒng)是否能正確地按照指令進行開關(guān)窗操作。
(1) 系統(tǒng)初始化:給系統(tǒng)供電,使控制系統(tǒng)中的各個模塊初始化,顯示程序設(shè)定,第一行是溫度和濕度,第二行是光照強度。系統(tǒng)初始化如圖8所示。
圖8 實物圖
(2) 當溫度不在設(shè)定范圍時:設(shè)定溫度閾值max=25 ℃,min=20 ℃,濕度閾值max=60%,min=30%,當溫度T=26 ℃,濕度RH=43%,溫度T不在閾值范圍內(nèi)時,電機正轉(zhuǎn),顯示開窗標志00??刂葡到y(tǒng)工作正常。如圖9所示。
圖9 液晶顯示開窗標志圖
(3) 當濕度不在設(shè)定范圍時:設(shè)定溫度閾值max=30 ℃,min=20 ℃,濕度閾值max=25%,min=20%,當溫度T=29 ℃,濕度RH=29%,濕度不在閾值范圍內(nèi)時,電機正轉(zhuǎn),顯示開窗標志00。控制系統(tǒng)工作正常。如圖10所示。
圖10 液晶顯示開窗標志
本設(shè)計利用STC89C51單片機作為控制芯片,溫濕度傳感器作為車內(nèi)溫濕度的采集模塊,液晶顯示屏實時顯示車內(nèi)溫濕度,當溫濕度不再設(shè)定范圍時,芯片及時控制電動機開合及關(guān)閉,實現(xiàn)了汽車天窗及時的開合及關(guān)閉,本設(shè)計簡單明了,造價低,具有美好的市場前景。