梁東云, 吳曉云
(商洛學(xué)院 電子信息與電氣工程學(xué)院, 陜西 商洛 726000)
汽車天窗已經(jīng)是汽車的標(biāo)配,它不僅是汽車的一個(gè)裝飾,還能在車內(nèi)溫濕度改變時(shí)及時(shí)調(diào)節(jié)天窗的開(kāi)合,怎樣實(shí)現(xiàn)它隨著車內(nèi)的溫度、濕度、光線的改變自動(dòng)開(kāi)合成為了一個(gè)研究課題[1]。本設(shè)計(jì)改善了車內(nèi)空氣的溫度和濕度,彌補(bǔ)了傳統(tǒng)天窗的不足,最大程度地提高了采光率[2]。它能在駕駛時(shí)把人解放出來(lái),減少外界環(huán)境的改變對(duì)駕駛員的干擾,專心駕車,增加了車內(nèi)環(huán)境的舒適度,提高安全性。
硬件設(shè)計(jì)是一個(gè)設(shè)計(jì)的基礎(chǔ),是軟件設(shè)計(jì)和運(yùn)行的前提,本設(shè)計(jì)以STC89C52單片機(jī)為核心,將傳感器模塊采集到的溫度、濕度和光照強(qiáng)度進(jìn)行轉(zhuǎn)換后并通過(guò)顯示模塊進(jìn)行顯示,STC89C52微控制器經(jīng)過(guò)信息的判斷和處理后發(fā)送指令驅(qū)動(dòng)電機(jī)的旋轉(zhuǎn),通過(guò)直流電機(jī)的正轉(zhuǎn)和反轉(zhuǎn)來(lái)模擬汽車天窗的開(kāi)與合,達(dá)到車內(nèi)溫濕度以及光照強(qiáng)度的自動(dòng)調(diào)節(jié)[3-4]。設(shè)計(jì)主要包括控制模塊、傳感器模塊,顯示模塊和電機(jī)驅(qū)動(dòng)模塊4大部分,系統(tǒng)總體框架如圖1所示。

圖1 系統(tǒng)框架總圖
DHT12是一款新型單總線數(shù)字式溫濕度傳感器,內(nèi)部包括一個(gè)感濕元件和一個(gè)NTC測(cè)溫元件,微處理器之間具有獨(dú)特的單總線通訊方式[5]。外部電路如圖2所示。

圖2 與單片機(jī)接口圖
通過(guò)光敏二極管PD采集光線,集成運(yùn)算放大器將PD電流轉(zhuǎn)化為PD電壓,再由模數(shù)轉(zhuǎn)換器獲取16位數(shù)字?jǐn)?shù)據(jù),然后被邏輯和IC界面進(jìn)行數(shù)據(jù)處理和儲(chǔ)存[6-7]。引腳中SDA管腳與單片機(jī)的P1.0口連接,SCL管腳與單片機(jī)的P1.1口連接,利用I2C協(xié)議進(jìn)行通信。
本設(shè)計(jì)采用LCD1602與STC89C52單片機(jī)進(jìn)行不斷通信,利用1602液晶的顯示特性,將車內(nèi)溫濕度,光照強(qiáng)度以及天窗開(kāi)合等信息在液晶顯示屏上實(shí)時(shí)顯示出來(lái)[8]。
本設(shè)計(jì)選擇TB6612電機(jī)驅(qū)動(dòng)模塊,該模塊具有體積小、效率高、在額定范圍內(nèi)芯片發(fā)熱量低的特點(diǎn)。本設(shè)計(jì)通過(guò)單片機(jī)控制電機(jī)的運(yùn)動(dòng)模式,實(shí)現(xiàn)直流電機(jī)的正傳、反轉(zhuǎn)和停止[9]。
本設(shè)計(jì)采用3個(gè)獨(dú)立按鍵,分別接單片機(jī)P1.4、P1.5、P1.6,由程序掃描這3個(gè)口,其中SW2是設(shè)置按鍵,SW3和SW4分別對(duì)應(yīng)加減按鍵,通過(guò)這3個(gè)按鈕來(lái)設(shè)定車內(nèi)溫濕度的閾值。按鍵與單片機(jī)接口如圖3所示。

圖3 鍵電路
2.1.1 數(shù)據(jù)格式
DHT12與單片機(jī)之間通過(guò)單總線協(xié)議進(jìn)行數(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校驗(yàn)位[10]。若8bit濕度整數(shù)數(shù)據(jù)+8 bit濕度小數(shù)數(shù)據(jù)+8 bit溫度整數(shù)數(shù)據(jù)+8 bit溫度小數(shù)數(shù)據(jù)=校驗(yàn)碼,則表示校驗(yàn)通過(guò),代表這次讀取出來(lái)的溫度濕度正確[11];若校驗(yàn)不通過(guò),那么就代表這次讀取出來(lái)的溫濕度值是錯(cuò)誤的,單片機(jī)將自動(dòng)刪除數(shù)據(jù)。
2.1.2 DHT12的通信流程
DHT12與單片機(jī)的通信過(guò)程中,DHT12為從機(jī),STC89C52單片機(jī)為主機(jī),通信流程如下:①主機(jī)發(fā)送起始信號(hào)②DHT12響應(yīng)信號(hào)③DHT12通知主機(jī)準(zhǔn)備接受信號(hào)④DHT12發(fā)送準(zhǔn)備好的數(shù)據(jù)⑤DHT12發(fā)送結(jié)束信號(hào)⑥D(zhuǎn)HT12內(nèi)部重新檢測(cè)室內(nèi)環(huán)境溫濕度并記錄數(shù)據(jù),等待下一次主機(jī)發(fā)送的起始信號(hào)[12]。主機(jī)、從機(jī)的通信過(guò)程如圖4所示。

圖4 DHT12時(shí)序圖
BH1750光照傳感器的通信流程,BH1750為從機(jī),STC89C52單片機(jī)為主機(jī),具體的通信流程分2步。
(1) 主機(jī)向從機(jī)發(fā)送起始信號(hào),發(fā)送設(shè)備地址和寫信號(hào),發(fā)送完畢后等待BH1750應(yīng)答,然后單片機(jī)再發(fā)送內(nèi)部寄存器地址,等待從機(jī)的應(yīng)答,得到回應(yīng)后停止發(fā)送命令[13]。再發(fā)送“連續(xù)高分辨率模式”指令,時(shí)序如圖5所示。

圖5 寫操作
(2) 單片機(jī)等待BH1750的回應(yīng),讀取BH1750返回的信息,信息有16位數(shù)據(jù),數(shù)據(jù)分為高8位和低8位。先讀取高8位數(shù)據(jù),并發(fā)送應(yīng)答信號(hào),再讀取低8位數(shù)據(jù),隨后主機(jī)發(fā)送停止信號(hào),整個(gè)采集過(guò)程結(jié)束。時(shí)序如圖6所示。

圖6 讀操作
汽車天窗開(kāi)合控制系統(tǒng)軟件設(shè)計(jì)主程序框架設(shè)計(jì)如圖7所示。

圖7 主程序設(shè)計(jì)框架
以室內(nèi)溫濕度模擬車內(nèi)溫濕度對(duì)汽車天窗開(kāi)合控制系統(tǒng)進(jìn)行測(cè)試,通過(guò)按鍵電路設(shè)定溫濕度閾值,檢測(cè)系統(tǒng)是否能正確地按照指令進(jìn)行開(kāi)關(guān)窗操作。
(1) 系統(tǒng)初始化:給系統(tǒng)供電,使控制系統(tǒng)中的各個(gè)模塊初始化,顯示程序設(shè)定,第一行是溫度和濕度,第二行是光照強(qiáng)度。系統(tǒng)初始化如圖8所示。

圖8 實(shí)物圖
(2) 當(dāng)溫度不在設(shè)定范圍時(shí):設(shè)定溫度閾值max=25 ℃,min=20 ℃,濕度閾值max=60%,min=30%,當(dāng)溫度T=26 ℃,濕度RH=43%,溫度T不在閾值范圍內(nèi)時(shí),電機(jī)正轉(zhuǎn),顯示開(kāi)窗標(biāo)志00。控制系統(tǒng)工作正常。如圖9所示。

圖9 液晶顯示開(kāi)窗標(biāo)志圖
(3) 當(dāng)濕度不在設(shè)定范圍時(shí):設(shè)定溫度閾值max=30 ℃,min=20 ℃,濕度閾值max=25%,min=20%,當(dāng)溫度T=29 ℃,濕度RH=29%,濕度不在閾值范圍內(nèi)時(shí),電機(jī)正轉(zhuǎn),顯示開(kāi)窗標(biāo)志00。控制系統(tǒng)工作正常。如圖10所示。

圖10 液晶顯示開(kāi)窗標(biāo)志
本設(shè)計(jì)利用STC89C51單片機(jī)作為控制芯片,溫濕度傳感器作為車內(nèi)溫濕度的采集模塊,液晶顯示屏實(shí)時(shí)顯示車內(nèi)溫濕度,當(dāng)溫濕度不再設(shè)定范圍時(shí),芯片及時(shí)控制電動(dòng)機(jī)開(kāi)合及關(guān)閉,實(shí)現(xiàn)了汽車天窗及時(shí)的開(kāi)合及關(guān)閉,本設(shè)計(jì)簡(jiǎn)單明了,造價(jià)低,具有美好的市場(chǎng)前景。