文/錢成國 田志勇
無葉風扇作為一種新型風扇,因無扇葉,因此不會吸附塵土,也不存在扇葉傷人的情況;采用無級變速控制,阻力小,無噪音,空氣流和傳統(tǒng)風扇相比較更加平穩(wěn),風量均勻,能耗低,僅為傳統(tǒng)風扇的一半,價格相仿,與空調相比性價比高,具有危險系數(shù)低、污染小和節(jié)約能源等優(yōu)點,越來越受人們的喜愛,具有廣闊的市場前景。然而,當前市場上已有的無葉風扇仍存在手動設置風速檔位、無法依據(jù)人體位置移動而實時調整風力等情況。
針對以上情況,本文設計了一種基于STM32的無葉風扇控制器方案。該控制器既具備傳統(tǒng)無葉風扇的控制功能,同時可依據(jù)人體位置變化從而實時地、智能地調節(jié)風扇送風風量。
如圖1所示為基于STM32的無葉風扇控制器系統(tǒng)總體結構。由圖可知,該控制器以ST公司生產的低功耗高性價比的STM32系列單片機為核心,輔以溫度采集電路、壓力采集電路、人體紅外檢測模塊、人機交互界面、電機驅動模塊和電源模塊等外圍模塊構成。

圖1:總體結構框圖

圖2:人體監(jiān)測電路
系統(tǒng)可通過人機交互界面設置當前系統(tǒng)工作模式、工作溫度和風速檔位,也可通過人機交互界面實時觀測當前環(huán)境溫度和當前風速等信息。
若系統(tǒng)選擇為傳統(tǒng)工作模式,人體紅外檢測模塊作用僅為檢測當前環(huán)境下是否有人體存在。若無人存在,系統(tǒng)則不工作;若有人存在,微控制器則控制電機驅動模塊啟動電機,并根據(jù)當前設置的溫度和風速檔位,根據(jù)算法調整電機風速。
若系統(tǒng)選擇為智能調節(jié)模式,人體紅外檢測模塊作用則主要通過檢測是否有人存在,并通過紅外測距傳感器檢測人體與風扇之間的距離,并反饋給微控制器。微控制則通過當前環(huán)境溫度、設置溫度、人體紅外信號、距離信息、當前風速等數(shù)據(jù),自動調節(jié)風扇角度及風力。

圖3:傳感器信號處理電路

圖4:電機驅動電路
人體監(jiān)測電路包括人體感應電路和紅外測距電路兩部分。人體感應電路采用以LHI778探頭設計的HC-SR501模塊為核心設計。該模塊能監(jiān)測人體發(fā)射紅外線,將紅外轉化為電信號輸出,可感應0~7m范圍,靈敏度高,可靠性強。紅外測距部分采用Sharp公司的GP2Y0A21YK0F紅外測距傳感器。該傳感器采用5V供電,能測量10~80cm范圍內的距離,對應輸出模擬電壓為2.4~0.5V。因在10cm以內該傳感器存在盲區(qū),無法精確測量出實際距離,故在設計時需將該傳感器安裝在距離無葉風扇出風口距離為10cm處。如圖2所示為人體監(jiān)測電路,HC-SR501模塊輸出端通過一限流電阻與三極管s8050連接,接至STM32的IO腳。當人體進入其感應范圍,則STM32接收到低電平;當人體離開干感應范圍,HCSR501模塊則自動延時關閉,STM32接收到高電平。紅外測距模塊連接至STM32自帶的A/D轉換管腳。

圖5:人體檢測流程圖

圖6:電機驅動子程序
本系統(tǒng)采用美國飛思卡爾MPXV7002DP集成硅阻式傳感器,應用廣泛,最大測量壓差為8kPa,功輸出電壓范圍為0.5~4.5V。傳感器當前測得壓力與輸出信號之間關系如式1所示。

其中VS為芯片工作電壓5V;P為測得的壓力,單位是kPa;VFSS為量程范圍,常用值為4V;由此可知,當P=0時,VOUT=2.25V~2.75V。即上電后,輸出電壓(即補償電壓)為2.25V~2.75V。因壓力變化信號屬于一個小信號,不能直接送到微控制器進行采樣,否則精度不夠或者無法識別,因此須先經過放大電路對其進行處理。如圖3所示為傳感器輸出信號的偏置補償和放大電路。
電機驅動電路主要用于調節(jié)無葉風扇風速,遵循“人近風小,人遠風大”的原則,通過脈寬調制控制風速,使人感受到恒定的風速,如圖4所示為電機驅動電路。由+3.3V直流電通過LED1輸入到光耦TLP521-2,當STM32單片機輸出低電平是光耦導通,一路通直流電機正極,另一路通負極并使IRF540導通,是強電部分直流電機工作。電機驅動使用MOSFET,提供大電流來驅動電動機;D1和D2為續(xù)流二極管,可有效的防止電壓電流突變,為其提供通路。通過此電路,可完成對電機的控制已經對電機控制電路的保護。
系統(tǒng)軟件設計主要包括人體檢測程序、壓力采集程序、電機驅動程序、液晶顯示程序、按鍵掃描程序、溫度檢測程序等子程序。
人體檢測子程序包含人體感應子程序和距離檢測子程序兩部分,主要完成人體紅外感應、人體與無葉風扇之間距離的檢測。其流程如圖5所示。首先,單片機通過檢測IO腳是否為高電平。若為高電平,代表當前環(huán)境下無人則不啟動無葉風扇。若為低電平,則判斷是否是智能調節(jié)模式。若為智能調節(jié)模式,則通過單片機自帶的12位ADC獲取人體距離無葉風扇出風口的距離,并將此距離數(shù)據(jù)傳給風速調節(jié)子函數(shù)。
電機驅動子程序,即根據(jù)所檢測到的人與無葉風扇之間的距離和當前檢測到的壓力值,通過輸出相應占空比的PWM波進而控制電機轉速,從而實現(xiàn)調節(jié)無葉風扇出風速度的功能,其流程如圖6所示。
該部分程序設計時,采用輸出固定頻率的PWM波,通過檢測當前壓力值和人體距離無葉風扇出風口距離或設定的壓力值兩者之間的對比,通過控制其高低電平輸出時間來控制PWM波的占空比,進而控制電機轉速來進行風速調節(jié)。若設定的壓力值或當前距離所需的壓力值大于當前壓力值,則增大占空比,加快電機轉速,增大風速;反之,若小于當前壓力值,則減小占空比,降低電機轉速,減少出風量。
系統(tǒng)主要進行人體檢測電路、壓力采集電路、電機驅動電路和人機交互界面等功能進行調試。
人體檢測電路主要測試在系統(tǒng)設定的最大感應距離內能否準確發(fā)現(xiàn)有人,并能測量出當前所在位置。經測試發(fā)現(xiàn),當有人在距離無葉風扇出風口5m、左右50°角度范圍內時,控制器均能感應到有人,并且人機界面能正確顯示當前人體所在位置。當超出范圍時,無葉風扇無法感應到人體,因此停止出風。
電機驅動電路主要測試在人體距離無葉風扇出風口位置變化時,電機轉速即無葉風扇風速的變化情況。測試時,利用一臺風速測量儀進行記錄,在設備感應范圍內,人體隨機進行移動。經測試,當人體在距離無葉風扇出風口1m以內時,風速隨著距離的增加而增加;當超出1m范圍之后,風速不再增加,恒定不變。
本文提出了一種基于STM32的新型無葉風扇控制器方案。該控制器既具備傳統(tǒng)無葉風扇的控制功能,同時可通過檢測人體位置的變化,控制PWM波占空比,從而實現(xiàn)智能調節(jié)風扇送風量。該控制器操作靈活,可靠性高,提高了無葉風扇的智能化控制,可達到節(jié)約能源的效果。