羅政球
(瀏陽市職業中專,湖南瀏陽,410300)
一到夏天,出現吹電風扇使人感冒,引起頭疼、膝蓋疼、身體不舒服等情況時有發生,大多都是由于晚上風太大,時間長,直對著吹引起的。如網上報道的, 14歲的小云(化名)是一名初中生,她開著電扇上床睡覺,當她醒來時,她發現自己總是流口水。她仔細地看著自己的臉,發現嘴角有點歪。她很快把這件事告訴了她的父母。最后,醫生診斷小云患有輕度面癱。傳統電風扇最突出的缺點是不能根據溫度變化及時調節風力。早上溫度下降時,電風扇仍在高速運轉,但是由于已經睡著根本無法察覺,這時不僅僅浪費了電力資源,還很容易由此引起感冒等疾病。在此背景下,設計了這款遙控智能溫控風扇。“告別因吹電風扇使人感冒,引起頭疼、膝蓋疼、身體不舒服等疾病”的設計理念。
本項目由熱釋電紅外傳感器、溫度傳感器、51單片機、數碼管、紅外接收、搖控等器件組成。使用AT89C51單片機通過編程控制,該系列單片機價格便宜又容易購買,以后可以輕松完成項目升級改造。設計方案如圖1如示。

圖1 設計方案
本項目的硬件電路圖如圖2所示。

圖2 硬件電路圖
本項目的控制核心是AT89C51單片機,該單片機由美國的Atmel公司生產的一種低功耗、低電壓、高性能的8位單片機,包含了數據存儲器、程序存儲器、FLash存儲器,具備40個引腳。
本項目采用DS18B20 可編程單總線溫度傳感器來實現對溫度的采集和轉換,直接數字量輸出,可以直接和單片機進行通訊,DS18B20與傳統的熱敏電阻相比,他能夠直接讀出被測溫度并且可根據實際要求通過簡單的編程實現9~12位的數字值讀數方式。并且從DS18B20讀出的信息或寫入DS18B20的信息僅需要一根口線(單線接口)讀寫,單片機可通過單線接口讀到該數據,讀取時低位在前,高位在后,數據格式以0.0625C /LSB形式表示。溫度值格式中“S”為標志位,對應的溫度計算:當符號位S=0時,直接將二進制位轉換為十進制;當S=1 時,先將補碼變換為原碼,再計算十進制值。DSI8B20 完成溫度轉換后,就把測得的溫度值與TH 做比較,若T>TH或T 圖3 DS18B20測溫電路 本項目的顯示模塊主要由一個7段集成數碼管組成,用于顯示測量的溫度和當前檔位,是一個普通陰極數碼管。本項目采用動態掃描方式,各數碼管的A、B、C、D、F、G、DP端都連在一起,接收單片機P0口產生的顯示部分段碼。P24、P25、P26和P27是它們的位選擇端,接收來自AT89C51單片機 P2端口的位選擇代碼。 在本項目中采用熱釋電紅外傳感器作為人體感應模塊,實現在探測范圍內對運動人體輻射出的紅外能量的檢測。在檢測過程中以檢測非接觸形式人體輻射的紅外能量的變化,將這種變化的能量轉換為電壓信號輸出。紅外傳感器加電壓比較器等外部元件構成人體感應探測電路,當人處在檢測區域范圍內的時候電壓比較器輸出高電平送到單片機P2.0口,當人離開檢測區域范圍內的時候電壓比較器輸出低電平送到單片機P2.0口。在檢測到沒有人的情況下關閉風扇電源,當有人進入檢測區時,接通風扇電源,以達到智能控制及節能的目的。熱釋電紅外傳感器如圖4所示。 圖4 熱釋電紅外傳感器 單片機平常采用的鍵盤類型主要有獨立鍵盤和矩陣鍵盤兩種;獨立鍵盤特點是單片機一個I/O端口僅連接一個獨立鍵盤按鍵,按鍵的另一端連接電源或接地,這種連接方案比較簡單,系統比較穩定;雖然矩陣鍵盤連接程序比較復雜,但占用的I/O較少一點。根據本項目的需要,這里選擇了獨立的鍵盤連接方式。 本項目設計中由單片機的P3.6口輸出PWM脈沖,通過三極管驅動控制風扇電機以實現對風扇電機速度的調節。在單元控制系統電路中,單片機P3.6口輸出的PWM矩形波信號用來調整控制三級管工作期間的控制波的占空比。占空比是指高電平的持續時間在時間周期內的百分比。單片機在控制電動機轉速的時候,占空比越大轉速越快,占空比越小轉速越慢。如果單片機輸出的波形占空比是100%,即單片機輸出信號都是高電平,這時電機速度達到最大值轉速最快。當周圍環境溫度升高時,單片機輸出的波形占空比增大,電機轉速將根據用戶設定的溫度等級升高達到快速降溫;當周圍環境溫度下降時,單片機輸出的波形占空比減小,電機轉速將根據用戶設定的溫度等級作相應降低;當周圍環境溫度低于設定溫度值時,電機停止轉動,當周圍環境溫度高于設定溫度值時,電機重新起動運轉。 紅外接收頭采用hx1838集成接收器,解調頻率為38kHz。hx1838接收到紅外脈沖信號38kHz時輸出為低電平,否則輸出為高電平。它封裝了光電探測器和前置放大器,以接收脈沖編碼信號的紅外光信號。當系統工作時,hx1838對接收到的脈沖編碼信號進行解調,并將解調后的信號輸入P3.3口。 系統開機初始化后,P3.3端口進行檢測,高電平時,系統處于待機狀態。當為低電平時,中斷服務程序將被啟動以接收數據幀。請注意,數據幀是通過中斷模式接收的,芯片在中斷1模式下工作。當接收到數據時,將驗證接收到的前三位數據的代碼寬度。前三個代碼的代碼寬度分別為4ms、2ms和4ms,如果任何位的代碼寬度不符合要求,將被視為錯誤代碼。當系統接收到的高電平脈沖寬度大于5ms時,脈沖將結束接受。然后系統將檢查接收到的最后兩個脈沖寬度,分別為2ms和4ms,否則將作為錯誤代碼。最后,根據累積a中的脈沖數,系統在MCU的相應引腳上執行控制信號,并在端口中執行相應的二進制數據。此時,數據的接收和處理已完成。hrm5700b接收到8個代碼時的輸出波形信號如圖5所示。 為了根據當前溫度實時控制風扇的狀況,需要檢測當前溫度值是否超過程序中設制的動作溫度值。由于單片機的工作頻率高達12MHz,程序運行時不斷比較和檢測當前溫度和調整后的動作溫度。當超過設定溫度值范圍時,轉去執行溫度處理子程序,并在溫度處理下,實時控制風機停機、低風、強風狀態。顯示驅動程序檢查七段代碼,以獲得每個數碼管中應顯示的數字,并逐位掃描和顯示。主程序流程圖如圖6所示。 圖 5 hx1838接收8個編碼時的輸出波形圖 圖6 主程序流程圖 首先初始化DS18B20,然后運行ROM操作命令,最后操作內存和數據。操作DS18B20的每個步驟遵循通信協議和工作時序。如果控制DS18B20完成溫度轉換過程,則必須根據DS18B20通信協議進行以下三個步驟:在每次讀寫之前重新啟動DS18B20。復位成功后,發送ROM指令,最后發送RAM指令只有這樣才可能在DS18B20上執行預定操作。DS18B20程序流程圖如圖7所示。 圖7 DS18B20程序流程圖 程序實現的功能是從DS18B20讀取的溫度二進制數轉換在數碼管上顯示出來。顯示方式采用的是動態掃描的方式,先給位選信號,再給段選信號,然后延時一下。顯示程序流程圖如圖8所示。 圖8 顯示程序流程圖 硬件設計通過三個按鍵,掃描子程序提供軟件支持。第一次按下K1鍵,進入溫度控制模式設置溫度上限值,按“加號”鍵K2加一,然后按“減號”鍵K3減1。再次按K1調整鍵,進入溫度下限設定狀態,按“加號”K2鍵加一,按“減號”K3鍵減一。最低作用溫度值和最高作用溫度值的調節范圍為10-100度滿足一般使用要求,再次按K3調整鍵退出上下限設置溫度狀態。按鍵程序流程圖如圖9所示。 圖9 按鍵程序流程圖 對電路進行焊接,對硬件和軟件進行聯合調試,并對主要功能進行驗證,搭建完成電路,電路如圖10所示。 圖10 硬件電路 電路測試完成后,搭建實物作品,進行功能測試,達到預期目標。實物如圖11所示。 圖11 組態監控界面圖 圖11 實物作品 本文設計的這種多功能遙控智能溫控風扇;當風扇前面沒有人時,感應自動關閉,當風扇前面有人時,它可以調整到上限和下限啟動和停止風扇的溫度。如果溫度低于設定的最低限值,則風扇不工作,溫度高于上限,風扇全速工作,在上限和下限之間以50%的速度運行,并有自然風模式,帶遙控操作。多功能遙控智能溫控風扇的出現給現代社會人們的生活帶來了很多的便利,不僅提高了人們的生活質量而且還節約了能源。
2.3 數碼管顯示電路
2.4 人體感應探測電路

2.5 按鍵電路
2.6 風扇驅動電路
2.7 紅外接收電路
3 軟件設計
3.1 主程序設計


3.2 DS18B20子程序設計

3.3 顯示子程序流程圖

3.4 按鍵子程序設計

4 實物調試
4.1 電路制作

4.2 實物制作測試


5 結語