羅政球
(瀏陽市職業(yè)中專,湖南瀏陽,410300)
一到夏天,出現(xiàn)吹電風(fēng)扇使人感冒,引起頭疼、膝蓋疼、身體不舒服等情況時(shí)有發(fā)生,大多都是由于晚上風(fēng)太大,時(shí)間長(zhǎng),直對(duì)著吹引起的。如網(wǎng)上報(bào)道的, 14歲的小云(化名)是一名初中生,她開著電扇上床睡覺,當(dāng)她醒來時(shí),她發(fā)現(xiàn)自己總是流口水。她仔細(xì)地看著自己的臉,發(fā)現(xiàn)嘴角有點(diǎn)歪。她很快把這件事告訴了她的父母。最后,醫(yī)生診斷小云患有輕度面癱。傳統(tǒng)電風(fēng)扇最突出的缺點(diǎn)是不能根據(jù)溫度變化及時(shí)調(diào)節(jié)風(fēng)力。早上溫度下降時(shí),電風(fēng)扇仍在高速運(yùn)轉(zhuǎn),但是由于已經(jīng)睡著根本無法察覺,這時(shí)不僅僅浪費(fèi)了電力資源,還很容易由此引起感冒等疾病。在此背景下,設(shè)計(jì)了這款遙控智能溫控風(fēng)扇?!案鎰e因吹電風(fēng)扇使人感冒,引起頭疼、膝蓋疼、身體不舒服等疾病”的設(shè)計(jì)理念。
本項(xiàng)目由熱釋電紅外傳感器、溫度傳感器、51單片機(jī)、數(shù)碼管、紅外接收、搖控等器件組成。使用AT89C51單片機(jī)通過編程控制,該系列單片機(jī)價(jià)格便宜又容易購(gòu)買,以后可以輕松完成項(xiàng)目升級(jí)改造。設(shè)計(jì)方案如圖1如示。
圖1 設(shè)計(jì)方案
本項(xiàng)目的硬件電路圖如圖2所示。
圖2 硬件電路圖
本項(xiàng)目的控制核心是AT89C51單片機(jī),該單片機(jī)由美國(guó)的Atmel公司生產(chǎn)的一種低功耗、低電壓、高性能的8位單片機(jī),包含了數(shù)據(jù)存儲(chǔ)器、程序存儲(chǔ)器、FLash存儲(chǔ)器,具備40個(gè)引腳。
本項(xiàng)目采用DS18B20 可編程單總線溫度傳感器來實(shí)現(xiàn)對(duì)溫度的采集和轉(zhuǎn)換,直接數(shù)字量輸出,可以直接和單片機(jī)進(jìn)行通訊,DS18B20與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測(cè)溫度并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)讀寫,單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式以0.0625C /LSB形式表示。溫度值格式中“S”為標(biāo)志位,對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1 時(shí),先將補(bǔ)碼變換為原碼,再計(jì)算十進(jìn)制值。DSI8B20 完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與TH 做比較,若T>TH或T 圖3 DS18B20測(cè)溫電路 本項(xiàng)目的顯示模塊主要由一個(gè)7段集成數(shù)碼管組成,用于顯示測(cè)量的溫度和當(dāng)前檔位,是一個(gè)普通陰極數(shù)碼管。本項(xiàng)目采用動(dòng)態(tài)掃描方式,各數(shù)碼管的A、B、C、D、F、G、DP端都連在一起,接收單片機(jī)P0口產(chǎn)生的顯示部分段碼。P24、P25、P26和P27是它們的位選擇端,接收來自AT89C51單片機(jī) P2端口的位選擇代碼。 在本項(xiàng)目中采用熱釋電紅外傳感器作為人體感應(yīng)模塊,實(shí)現(xiàn)在探測(cè)范圍內(nèi)對(duì)運(yùn)動(dòng)人體輻射出的紅外能量的檢測(cè)。在檢測(cè)過程中以檢測(cè)非接觸形式人體輻射的紅外能量的變化,將這種變化的能量轉(zhuǎn)換為電壓信號(hào)輸出。紅外傳感器加電壓比較器等外部元件構(gòu)成人體感應(yīng)探測(cè)電路,當(dāng)人處在檢測(cè)區(qū)域范圍內(nèi)的時(shí)候電壓比較器輸出高電平送到單片機(jī)P2.0口,當(dāng)人離開檢測(cè)區(qū)域范圍內(nèi)的時(shí)候電壓比較器輸出低電平送到單片機(jī)P2.0口。在檢測(cè)到?jīng)]有人的情況下關(guān)閉風(fēng)扇電源,當(dāng)有人進(jìn)入檢測(cè)區(qū)時(shí),接通風(fēng)扇電源,以達(dá)到智能控制及節(jié)能的目的。熱釋電紅外傳感器如圖4所示。 圖4 熱釋電紅外傳感器 單片機(jī)平常采用的鍵盤類型主要有獨(dú)立鍵盤和矩陣鍵盤兩種;獨(dú)立鍵盤特點(diǎn)是單片機(jī)一個(gè)I/O端口僅連接一個(gè)獨(dú)立鍵盤按鍵,按鍵的另一端連接電源或接地,這種連接方案比較簡(jiǎn)單,系統(tǒng)比較穩(wěn)定;雖然矩陣鍵盤連接程序比較復(fù)雜,但占用的I/O較少一點(diǎn)。根據(jù)本項(xiàng)目的需要,這里選擇了獨(dú)立的鍵盤連接方式。 本項(xiàng)目設(shè)計(jì)中由單片機(jī)的P3.6口輸出PWM脈沖,通過三極管驅(qū)動(dòng)控制風(fēng)扇電機(jī)以實(shí)現(xiàn)對(duì)風(fēng)扇電機(jī)速度的調(diào)節(jié)。在單元控制系統(tǒng)電路中,單片機(jī)P3.6口輸出的PWM矩形波信號(hào)用來調(diào)整控制三級(jí)管工作期間的控制波的占空比。占空比是指高電平的持續(xù)時(shí)間在時(shí)間周期內(nèi)的百分比。單片機(jī)在控制電動(dòng)機(jī)轉(zhuǎn)速的時(shí)候,占空比越大轉(zhuǎn)速越快,占空比越小轉(zhuǎn)速越慢。如果單片機(jī)輸出的波形占空比是100%,即單片機(jī)輸出信號(hào)都是高電平,這時(shí)電機(jī)速度達(dá)到最大值轉(zhuǎn)速最快。當(dāng)周圍環(huán)境溫度升高時(shí),單片機(jī)輸出的波形占空比增大,電機(jī)轉(zhuǎn)速將根據(jù)用戶設(shè)定的溫度等級(jí)升高達(dá)到快速降溫;當(dāng)周圍環(huán)境溫度下降時(shí),單片機(jī)輸出的波形占空比減小,電機(jī)轉(zhuǎn)速將根據(jù)用戶設(shè)定的溫度等級(jí)作相應(yīng)降低;當(dāng)周圍環(huán)境溫度低于設(shè)定溫度值時(shí),電機(jī)停止轉(zhuǎn)動(dòng),當(dāng)周圍環(huán)境溫度高于設(shè)定溫度值時(shí),電機(jī)重新起動(dòng)運(yùn)轉(zhuǎn)。 紅外接收頭采用hx1838集成接收器,解調(diào)頻率為38kHz。hx1838接收到紅外脈沖信號(hào)38kHz時(shí)輸出為低電平,否則輸出為高電平。它封裝了光電探測(cè)器和前置放大器,以接收脈沖編碼信號(hào)的紅外光信號(hào)。當(dāng)系統(tǒng)工作時(shí),hx1838對(duì)接收到的脈沖編碼信號(hào)進(jìn)行解調(diào),并將解調(diào)后的信號(hào)輸入P3.3口。 系統(tǒng)開機(jī)初始化后,P3.3端口進(jìn)行檢測(cè),高電平時(shí),系統(tǒng)處于待機(jī)狀態(tài)。當(dāng)為低電平時(shí),中斷服務(wù)程序?qū)⒈粏?dòng)以接收數(shù)據(jù)幀。請(qǐng)注意,數(shù)據(jù)幀是通過中斷模式接收的,芯片在中斷1模式下工作。當(dāng)接收到數(shù)據(jù)時(shí),將驗(yàn)證接收到的前三位數(shù)據(jù)的代碼寬度。前三個(gè)代碼的代碼寬度分別為4ms、2ms和4ms,如果任何位的代碼寬度不符合要求,將被視為錯(cuò)誤代碼。當(dāng)系統(tǒng)接收到的高電平脈沖寬度大于5ms時(shí),脈沖將結(jié)束接受。然后系統(tǒng)將檢查接收到的最后兩個(gè)脈沖寬度,分別為2ms和4ms,否則將作為錯(cuò)誤代碼。最后,根據(jù)累積a中的脈沖數(shù),系統(tǒng)在MCU的相應(yīng)引腳上執(zhí)行控制信號(hào),并在端口中執(zhí)行相應(yīng)的二進(jìn)制數(shù)據(jù)。此時(shí),數(shù)據(jù)的接收和處理已完成。hrm5700b接收到8個(gè)代碼時(shí)的輸出波形信號(hào)如圖5所示。 為了根據(jù)當(dāng)前溫度實(shí)時(shí)控制風(fēng)扇的狀況,需要檢測(cè)當(dāng)前溫度值是否超過程序中設(shè)制的動(dòng)作溫度值。由于單片機(jī)的工作頻率高達(dá)12MHz,程序運(yùn)行時(shí)不斷比較和檢測(cè)當(dāng)前溫度和調(diào)整后的動(dòng)作溫度。當(dāng)超過設(shè)定溫度值范圍時(shí),轉(zhuǎn)去執(zhí)行溫度處理子程序,并在溫度處理下,實(shí)時(shí)控制風(fēng)機(jī)停機(jī)、低風(fēng)、強(qiáng)風(fēng)狀態(tài)。顯示驅(qū)動(dòng)程序檢查七段代碼,以獲得每個(gè)數(shù)碼管中應(yīng)顯示的數(shù)字,并逐位掃描和顯示。主程序流程圖如圖6所示。 圖 5 hx1838接收8個(gè)編碼時(shí)的輸出波形圖 圖6 主程序流程圖 首先初始化DS18B20,然后運(yùn)行ROM操作命令,最后操作內(nèi)存和數(shù)據(jù)。操作DS18B20的每個(gè)步驟遵循通信協(xié)議和工作時(shí)序。如果控制DS18B20完成溫度轉(zhuǎn)換過程,則必須根據(jù)DS18B20通信協(xié)議進(jìn)行以下三個(gè)步驟:在每次讀寫之前重新啟動(dòng)DS18B20。復(fù)位成功后,發(fā)送ROM指令,最后發(fā)送RAM指令只有這樣才可能在DS18B20上執(zhí)行預(yù)定操作。DS18B20程序流程圖如圖7所示。 圖7 DS18B20程序流程圖 程序?qū)崿F(xiàn)的功能是從DS18B20讀取的溫度二進(jìn)制數(shù)轉(zhuǎn)換在數(shù)碼管上顯示出來。顯示方式采用的是動(dòng)態(tài)掃描的方式,先給位選信號(hào),再給段選信號(hào),然后延時(shí)一下。顯示程序流程圖如圖8所示。 圖8 顯示程序流程圖 硬件設(shè)計(jì)通過三個(gè)按鍵,掃描子程序提供軟件支持。第一次按下K1鍵,進(jìn)入溫度控制模式設(shè)置溫度上限值,按“加號(hào)”鍵K2加一,然后按“減號(hào)”鍵K3減1。再次按K1調(diào)整鍵,進(jìn)入溫度下限設(shè)定狀態(tài),按“加號(hào)”K2鍵加一,按“減號(hào)”K3鍵減一。最低作用溫度值和最高作用溫度值的調(diào)節(jié)范圍為10-100度滿足一般使用要求,再次按K3調(diào)整鍵退出上下限設(shè)置溫度狀態(tài)。按鍵程序流程圖如圖9所示。 圖9 按鍵程序流程圖 對(duì)電路進(jìn)行焊接,對(duì)硬件和軟件進(jìn)行聯(lián)合調(diào)試,并對(duì)主要功能進(jìn)行驗(yàn)證,搭建完成電路,電路如圖10所示。 圖10 硬件電路 電路測(cè)試完成后,搭建實(shí)物作品,進(jìn)行功能測(cè)試,達(dá)到預(yù)期目標(biāo)。實(shí)物如圖11所示。 圖11 組態(tài)監(jiān)控界面圖 圖11 實(shí)物作品 本文設(shè)計(jì)的這種多功能遙控智能溫控風(fēng)扇;當(dāng)風(fēng)扇前面沒有人時(shí),感應(yīng)自動(dòng)關(guān)閉,當(dāng)風(fēng)扇前面有人時(shí),它可以調(diào)整到上限和下限啟動(dòng)和停止風(fēng)扇的溫度。如果溫度低于設(shè)定的最低限值,則風(fēng)扇不工作,溫度高于上限,風(fēng)扇全速工作,在上限和下限之間以50%的速度運(yùn)行,并有自然風(fēng)模式,帶遙控操作。多功能遙控智能溫控風(fēng)扇的出現(xiàn)給現(xiàn)代社會(huì)人們的生活帶來了很多的便利,不僅提高了人們的生活質(zhì)量而且還節(jié)約了能源。2.3 數(shù)碼管顯示電路
2.4 人體感應(yīng)探測(cè)電路
2.5 按鍵電路
2.6 風(fēng)扇驅(qū)動(dòng)電路
2.7 紅外接收電路
3 軟件設(shè)計(jì)
3.1 主程序設(shè)計(jì)
3.2 DS18B20子程序設(shè)計(jì)
3.3 顯示子程序流程圖
3.4 按鍵子程序設(shè)計(jì)
4 實(shí)物調(diào)試
4.1 電路制作
4.2 實(shí)物制作測(cè)試
5 結(jié)語