


摘 ?要: 本設計是由STC89C51單片機控制,采用DS18B20溫度傳感器、人體紅外傳感器模塊和數碼管設計而成的智能溫控風扇系統。該系統通過脈沖寬度調制,實現了風扇系統在有人的情況下依據當前溫度區間自動啟停以及調節風扇轉速等功能。該設計具有功耗低,實用性強等特點。
關鍵詞: STC89C51;智能控制;溫度控制;人體感應
中圖分類號: TP368.1 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.12.032
本文著錄格式:梁娟. 基于單片機的智能溫控風扇系統[J]. 軟件,2019,40(12):146149
An Intelligent Temperature Control Fan System Based on the Microcontroller
LIANG Juan
(East fujian agriculture and forestry university college of computer science Fuzhou 350715)
【Abstract】: This designs an intelligent temperature control fan system which is controlled by STC89C51 single-chip microcomputer, DS18B20 temperature sensor, human infrared sensor module and digital tube. This system through pulse width modulation, the functions of automatic starting and stopping of fan system according to the set temperature range and adjusting speed are realized. The design has the characteristics of low power consumption and strong practicability.
【Key words】: STC89C51; Intelligent control; Temperature control; Human induction
0 ?引言
現代生活中,電子技術的發展日新月異,因各種電子設備在工作時都會產生熱量,從而影響到電子機械的生產以及人們的日常生活,所以單片機的溫度控制等功能就顯得尤其重要。目前,基于單片機控制的系統種類繁多,在單片機的使用過程中,為達到精準控制判斷的效果,需要對溫度實時采樣的測量功能進行不斷改善。
本文設計的溫控風扇系統,主要采用型號為STC89C51的單片機作為控制器。在溫度采集模塊,選用了型號為DS18B20的集成溫度傳感器,并使用LED八段數碼管顯示溫度和風扇的檔位。首先將溫度傳感器采集的環境溫度發送給單片機系統,其次采用人體紅外傳感器探測環境周圍是否有人活動,從而實現風扇電機的自動啟動或停止,并且風扇電機的速度可以根據單片機所確定的溫度區間而自動
改變風速[1]。該設計主要是根據環境溫度在不同的溫度區間時,單片機輸出不同的PWM脈寬的方式來控制風扇電機的轉速,從而實現了智能溫控風扇的設計,為現代社會人們的生活和生產帶來了更多便利,符合當代節能減排的社會要求[2]。
1 ?系統整體設計方案
該系統在對環境溫度的測量和采集方面,選用型號DS18B20的集成溫度傳感器,能夠以數字信號的格式輸出給單片機處理。溫度和風扇檔位用LED八段數碼管進行顯示,并通過PWM速度調節,當溫度低于設定溫度的下限時,電機停止工作;當溫度在上限和下限之間時,電動機低速運轉;當溫度高于上限時,電機全速運轉。并在預設溫度范圍的前提下,添加HC-SR501人體紅外傳感器模塊判斷周圍是否有人在活動,自動實現電路的通斷。系統的結構框圖如圖1所示。
圖1 ?系統框圖
Fig.1 ?The system block diagram
2 ?系統硬件設計
該系統主要包括單片機核心控制模塊、溫度傳感模塊、人體感應模塊、獨立按鍵模塊、顯示模塊等幾個部分。
2.1 ?單片機最小系統
電源、晶振電路和復位電路是單片機的最小系統。單片機最小系統圖如圖2所示。
圖2 ?系統復位與晶振電路
Fig.2 ?System reset and crystal oscillator circuit
本設計所選用的AT89C51單片機需要5V的供電系統,可以使用USB口輸出的5V直流直接供電。供電電路在40引腳和20引腳位置上。
XTAL1和XTAL2用于連接石英晶體和微調電容[3]。電容器C1為10 μF,C2和C3為30 pF,電阻器R6為10 k,晶體振蕩器為12 MHz。當按下按鈕開關S1時,將重置系統。
2.2 ?溫度采集電路
溫度測量功能是通過DS18B20數字溫度傳感器內部計數時鐘實現的,溫度寄存器中16位二進制形式的值就是被測的溫度值。通過主機發送存儲器讀命令先讀取低位,再讀取高位。由于溫度振蕩器的拋物線特性的影響,其內用斜率累加器進行補償[4]。在本系統中將DS18B20與單片機的P3.5口進行連接實現溫度的采集。其與單片機的連接如圖3所示。
圖3 ?溫度采集電路
Fig.3 ?Temperature acquisition circuit
2.3 ?溫度設置按鍵電路
本系統設有3個獨立按鍵:S1、S2和S3,一端連接SCM的P1.0、P1.1、P1.2,另一端引腳接地,在按鍵按下時,產生低電平,使P1口作出反應,完成溫度的設定,等系統上電后,以查詢的方式確定各按鍵狀態,進行設置。其接線圖如圖4所示。
圖4 ?溫度設置按鍵電路
Fig.4 ?Temperature setting key circuit
2.4 ?數碼管顯示電路
本系統溫度顯示模塊選用了共陰極4位數碼管,其中LED顯示的第一位實現了設定溫度“H”“L”以及當前風扇檔位“0”“1”“2”的顯示;LED顯示的第二位固定顯示“—”;LED顯示的第三第四位,實現了設定溫度與實時溫度的顯示[5]。在 ? 設計時,為使單片機的P0口能夠輸出高低電平, ?P0口需接一個1K的上拉電阻。數碼管的位選引 ?腳為S1~S4,它們與單片機的P2.1~P2.4相連接,只要單片機引腳輸出低電平,就能選中與引腳對應的數碼管位。顯示電路與單片機引腳的連接圖如圖5所示。
圖5 ?數碼管顯示電路
Fig.5 ?Display circuit of LED
2.5 ?風扇電機驅動與調速電路
本系統中風扇電機的速度是根據單片機輸出的PWM脈沖控制實現的[6]。按鍵控制設置溫度范圍,由單片機通過P2.7口輸出的PWM脈沖控制中速、高速兩檔轉速,從而實現電機轉速與啟停的自動控制。風扇電機的一端接PNP三極管集電極,另一端接地。電機驅動及調速電路圖如圖6所示。
圖6 ?風扇電機驅動與調速電路
Fig.6 ?Fan motor drive and speed control circuit
2.6 ?人體紅外感應電路
在本系統中,人體紅外感應模塊OUT腳接單片機P3.5引腳,風扇的啟動和停止由其高低電平輸出控制[7]。采用重復觸發方式,從人體出現并保持活動,到離開前期間,感應模塊一直輸出高電平,直到人離開后才延時將高電平變為低電平[8]。人體紅外感應電路如圖7所示。
3 ?系統軟件設計
主程序需要實現的函數功能有系統初始化、各子模塊初始化、溫度讀取及溫度顯示功能,按鍵掃描功能,溫度處理判斷功能和風扇電機控制功能。
本程序的流程圖如圖8所示。
圖7 ?人體紅外感應電路
Fig.7 ?Infrared induction circuit of human body
圖8 ?主程序流程圖
Fig.8 ?The main program flow chart
4 ?系統調試及結果分析
本系統采用C語言進行編寫,在KeiluVision5環境下對程序進行編譯,調試。KeilC51是美國KeilSoftware公司開發的51系列兼容單片機C語言的軟件開發系統,它擁有豐富的庫函數,提供了強大的集成開發調試工具,可以大大提高程序編輯調試的效率,高級語言的優勢在大型軟件的開發中尤為突出[9]。
仿真工具采用Proteus ISIS。Proteus有4個功能模塊:智能原理圖設計、完善的電路仿真功能、實用的PCB設計平臺以及獨特的單片機協同仿真功能。它不僅能實現各種類型電路(模電、數電、模數混合)的設計與仿真,而且能為SCM應用系統提供方便的軟、硬件設計和系統操作的虛擬仿真[10]。
連接好原理圖后,將編譯好的程序加載進去。通過設置最低溫度20℃,最高溫度30℃,最后根據系統所要實現的功能進行分步仿真。
將溫度傳感器的溫度調節到19℃,單擊開始按鈕,觸發人體感應按鈕,系統開始模擬,可觀察到風扇并未轉動,如圖9所示。
圖9 ?溫度為19℃時仿真效果圖
Fig.9 ?Simulation effect diagram at 19℃
當溫度傳感器的溫度調節到25℃時,單擊開始按鈕,觸發人體感應按鈕,系統開始模擬,待一段時間穩定后,觀察到風扇在慢速轉動,如圖10所示。
圖10 ?溫度為25℃時仿真效果圖
Fig.10 ?Simulation effect diagram at 25℃
當溫度傳感器的溫度設置為32℃時,單擊開始按鈕,觸發人體感應按鈕,系統開始模擬,觀察到此時風扇全速轉動,如圖11所示。
圖11 ?溫度為32℃時仿真效果圖
Fig.11 ?Simulation effect diagram at 32℃
在仿真環境中,風扇轉速隨溫度的增大而加快。本設計設置了3個工作溫度區間,當環境溫度<下限溫度時,風扇未啟動;當下限溫度<環境溫度<上限溫度時,風扇慢速轉動;當環境溫度>上限溫度時,風扇快速轉動。
5 ?結論
本系統的控制核心為STC89C51單片機,DS18B20集成數字溫度傳感器用于監測環境溫度,并根據環境溫度的變化實現風扇的不同轉速。通過LED數碼管連續顯示設定數據和系統實時狀態數據,實現了基于單片機的智能溫控風扇的設計。
本系統可以擴展到各種系統的電機控制,可實現不同的電機速度調節。在生產和生活中,該系統既可用于日常的風扇控制,為生活帶來便利,也可以用于工業生產中,從而實現智能化自動控制??傊撓到y的設計和研究對社會生產和生活可提供便利。
參考文獻
[1]趙靜. 基于單片機的溫度控制系統的研究[J]. 科學與財富, 2017(17): 7-11.
[2]李學龍. 使用單片機控制的智能遙控電風扇控制器[J]. 電子電路制作, 2003, 9: 13-15.
[3]陳潔鑒, 吳建文. 基于單片機的溫度監控系統[J]. 電子元器件與信息技術, 2019(2): 25-30.
[4]許姍主. 傳感器技術及應用[M]. 北京: 清華大學出版社, 2017: 43-52.
[5]胡全. 51單片機的數碼管動態顯示技術[J]. 信息技術, 2009, 13: 25-26.
[6]藍厚榮. 單片機的PWM控制技術[J]. 工業控制計算機, 2010, 23(3): 97-98.
[7]梁爍, 劉文怡, 歷智強, 等. 基于熱釋電探測器的人體紅外感應單元設計[J]. 儀表技術與傳感器, 2019(4): 29-32.
[8]李萌. 智能樓道照明節電控制系統的設計[J]. 電子制作, 2014(10): 49-50.
[9]薛紅, 李宇宙, 倪雪. 紅外解碼液晶顯示設計的Proteus仿真[J]. 電子世界, 2012(11): 88-90.
[10]劉勇, 李海. 基于Proteus的電子基礎課程實踐教學模式改革[J]. 赤峰學院學報(自然科學版), 2013(02): 247-248.