基于MSPM0G3507主控的空調(diào)風(fēng)速自動調(diào)節(jié)系統(tǒng)
1 系統(tǒng)硬件圖
圖1 系統(tǒng)硬件圖
硬件連接說明:
人體感應(yīng)模塊OUT 引腳<->MCU PB2 引腳,供電VCC<->+5 V
IR發(fā)射DAT引腳<->MCU PA12 引腳,不用供電
IR接收DAT引腳<->MCU PB9 引腳,供電VCC<->+5 V
2 實物演示視頻
附帶視頻文件《演示視頻.mp4》
3 項目介紹
3.1 項目設(shè)計初衷
夏天溫度很高時,通常將空調(diào)溫度調(diào)較低、風(fēng)速調(diào)較大以滿足室內(nèi)的“冰涼溫度”。通??照{(diào)正吹風(fēng)口處溫度較較遠(yuǎn)區(qū)域低1~2℃,人員靠近空調(diào)吹風(fēng)口2~3 米處感官上會有較為明顯的驟冷。為了改善室內(nèi)人員體感舒適度,可以在空調(diào)吹風(fēng)口處附近部署人體感應(yīng)模塊。
使用MSPM0G3507 作為主控芯片,對人體感應(yīng)模塊進(jìn)行實時狀態(tài)監(jiān)測。當(dāng)室內(nèi)人員到達(dá)監(jiān)測點(diǎn)區(qū)域前將當(dāng)前空調(diào)的風(fēng)速、溫度調(diào)整為最佳值。直至室內(nèi)人員離開監(jiān)測點(diǎn)區(qū)域后,空調(diào)風(fēng)速、溫度調(diào)整為默認(rèn)設(shè)置??照{(diào)風(fēng)速、溫度調(diào)節(jié)由TI LP-MSPM0G3507 控制紅外發(fā)射頭發(fā)送相應(yīng)紅外指令完成。
3.2 開發(fā)思路
通過開啟M0G3507 主控外部中斷功能來響應(yīng)24G人體感應(yīng)模塊輸出的狀態(tài)電平,高電平表示人體感應(yīng)模塊監(jiān)測范圍內(nèi)有人,低電平表示無人。外部產(chǎn)生高電平后主控芯片立即捕獲到該類型中斷,啟用定時器產(chǎn)生PWM信號來驅(qū)動紅外發(fā)射頭將空調(diào)升溫降速IR 指令發(fā)射出去,同時紅色LED 持續(xù)閃爍。直到檢測低電平時將紅色LED 設(shè)為長亮,低電平時長持續(xù)3 秒后熄滅紅色LED,此時對外發(fā)射原設(shè)空調(diào)運(yùn)行參數(shù)IR 指令,綠色LED 為常亮。即有人狀態(tài)下紅色LED 長閃爍,無人狀態(tài)下綠色LED 常亮,有了LED 燈的狀態(tài)顯示,就很直觀了解到當(dāng)前系統(tǒng)運(yùn)行狀態(tài)。此外,通過按鍵S1 可以進(jìn)行模式切換,在設(shè)置模式下可以更改空調(diào)運(yùn)行參數(shù)。
3.3 功能演示說明/操作講解
系統(tǒng)開機(jī)運(yùn)行后,默認(rèn)進(jìn)入運(yùn)行模式
按下按鍵S1后進(jìn)入系統(tǒng)參數(shù)設(shè)置模式
在設(shè)置模式下,空調(diào)遙控對準(zhǔn)紅外接收頭發(fā)送默認(rèn)運(yùn)行參數(shù)(空調(diào)吹風(fēng)口附近無人)
如23℃、三檔風(fēng)速。再次按下按鍵S1后設(shè)置參數(shù)生效
在運(yùn)行模式下若有人員到達(dá)空調(diào)吹風(fēng)口處,立即發(fā)送紅外指令(26℃、一檔風(fēng)速)
24G人體感應(yīng)模塊的有效監(jiān)測距離是0.75 m到8 米,監(jiān)測覆蓋角度為120°(與圓錐的錐角類似)其中監(jiān)測距離可以修改,這里監(jiān)測距離設(shè)為0.75m,實際應(yīng)設(shè)為2~3m
監(jiān)測靈敏度可設(shè)置范圍為10~100,實驗中發(fā)現(xiàn)靈敏度不低于40 時且監(jiān)測距離小于2 m,該模塊的人體監(jiān)測效果很不錯
4 硬件結(jié)構(gòu)圖、BOM 表
BOM表:
LP MSPM0G3507 評估板1套
紅外發(fā)射模塊1個
紅外接收模塊1個
24G 人體感應(yīng)模塊1個
圖1 BOM實物圖
圖2 硬件電路框圖
圖3 軟件流程圖
5 方案說明
5.1 MCU片上資源使用情況
G3507 MCU在本方案設(shè)計中有著諸多應(yīng)用價值,尤其是定時器PWM 信號產(chǎn)生、外部中斷響應(yīng)處理,紅外發(fā)射信號的調(diào)制有多種方式,本方案采用的紅外信號調(diào)制為當(dāng)紅外數(shù)字編碼含低電平信號就產(chǎn)生PWM 信號驅(qū)動IR 發(fā)射管,高電平就停止PWM 信號產(chǎn)生,這是由IR 接收管的開漏接收模式?jīng)Q定的低電平調(diào)制模式。
對于紅外遙控信號解碼和人體感應(yīng)模塊狀態(tài)電平處理,這里分別開啟了兩個外部中斷進(jìn)行相應(yīng)處理。
本方案亮點(diǎn):
用極少的外圍元器件就完成了空調(diào)風(fēng)速自動調(diào)節(jié)系統(tǒng)項目的開發(fā),
其次,充分運(yùn)用到TI G3507 評估板的片內(nèi)、片上外設(shè)資源。
除此之外,整個程序運(yùn)行主要由中斷響應(yīng)進(jìn)行邏輯處理,在空閑狀態(tài)下通過__WFI 指令進(jìn)入休眠模式,當(dāng)觸發(fā)外部中斷后則退出休眠模式,進(jìn)一步降低了系統(tǒng)功耗。
該系統(tǒng)需要借助G3507 來實現(xiàn)三大功能。
功能一是判斷人員存在狀態(tài),該狀態(tài)由外部人體感應(yīng)模塊輸出高低電平?jīng)Q定。對于3507 MCU,其PB2 引腳檢測到外部信號出現(xiàn)上升沿即為有人狀態(tài),出現(xiàn)下降沿并延時3 秒PB2 電平仍為低電平則判斷為無人狀態(tài)。
功能二是完成紅外信號解碼與紅外信號編碼。
功能一啟用了G3507 內(nèi)部GPIO 端口的外部中斷工作模式,該模式對于外部信號的快速檢測非常重要,同時避免了CPU 頻繁檢測外部信號電平的負(fù)擔(dān),CPU 只需執(zhí)行外部中斷到來后的邏輯。另外,使用一個定時器G0,該定時器用于控制紅色LED 閃爍的頻率。
功能二使用到兩個定時器,一個定時器工作模式設(shè)為產(chǎn)生PWM 信號,用于驅(qū)動紅外發(fā)射管發(fā)射紅外信號。另一個定時器則是用于普通計時,用于記錄紅外接收管的一系列接收脈寬持續(xù)時間。
功能三是狀態(tài)顯示與按鍵輸入檢測
狀態(tài)顯示使用到板載三色LED,所以使能對應(yīng)3 個GPIO引腳,紅色LED持續(xù)閃爍表示有人,綠色LED常亮表示無人。藍(lán)色LED 閃爍一次表示完成一次紅外信號解碼并將解碼數(shù)據(jù)保存在內(nèi)存中。按鍵輸入檢測使用到1 個GPIO 引腳,將該引腳設(shè)置為外部中斷模式,按鍵按下后進(jìn)入設(shè)置模式(可以錄入新的紅外指令),再次按下進(jìn)入運(yùn)行模式,即空調(diào)風(fēng)速自動調(diào)節(jié)系統(tǒng)正在運(yùn)行。
總共使用了G3507 內(nèi)部3 個定時器資源、7 個GPIO 引腳資源。
G3507 對于的外部信號輸入檢測以及實現(xiàn)紅外信號編碼、解碼起到了重要作用,G3507 作為MCU 主控, 它片內(nèi)資源與性能勝任了這項工作任務(wù)。
總體感受是G3507 的定時器功能使用起來很不錯,無論是PWM 工作模式還是定時器模式,定時效果不錯,目前沒有發(fā)現(xiàn)有bug 的地方。外部中斷響應(yīng)迅速、準(zhǔn)確,可以說一旦檢測到有人,空調(diào)調(diào)速紅外指令馬上就會發(fā)送執(zhí)行,通過邏輯分析儀可以得到具體驗證,目前沒有外部中斷bug。
在開發(fā)過程中也出現(xiàn)了一些小插曲,比如我手機(jī)前置攝像頭旁有紅外發(fā)射裝置,它能夠干擾紅外接收管、以及空調(diào)紅外接收,屬實沒想到它的干擾影響有這么大。畢竟紅外接收管對于940nm 的紅外光信號是來者不拒的,統(tǒng)一接收。鑒于此我在程序中添加了紅外解碼增強(qiáng)干擾處理,進(jìn)一步提高了紅外解碼的準(zhǔn)確性、可靠性。
G3507 的另一特色功能是低功耗節(jié)能,該系統(tǒng)在人體監(jiān)測模塊未產(chǎn)生中斷時即刻執(zhí)行__WFI 指令進(jìn)入低功耗運(yùn)行模式,直接任意中斷事件發(fā)生MCU 隨即被喚醒。這本身就是M0 內(nèi)核MCU 的設(shè)計初衷之一,主打低功耗。
5.2 示例源碼
以下為本方案部分示例源碼:主函數(shù)代碼塊:
圖4
外部中斷處理代碼塊:
圖5
(注:本文來源于《EEPW》202412)
評論