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