基于AT89C52單片機的遙控電扇
摘要:采用AT89C52型號的單片機對傳統(tǒng)的電扇系統(tǒng)進(jìn)行改造,實現(xiàn)對電扇的短距離控制。該設(shè)計利用單片機進(jìn)行紅外發(fā)送,紅外接收,在此過程中對紅外進(jìn)行編碼和解碼,而后通過不同的編碼形成對風(fēng)扇的不同控制。同時對單片機P0口的輸出進(jìn)行DA變換后,完成對風(fēng)扇的速度的實時控制。通過仿真實驗,驗證了該方案的可行性,該設(shè)計簡單、可靠,具有很強的實用性。
關(guān)鍵詞:單片機;紅外發(fā)送;紅外接收;DA變換;實時控制
傳統(tǒng)電風(fēng)扇多采用機械方式進(jìn)行控制,功能少,噪音大,各檔的風(fēng)速變化大。隨著科技的發(fā)展和人們生活水平的提高,家用電器產(chǎn)品趨向于自動化、智能化、環(huán)?;腿诵曰沟糜晌C控制的智能電風(fēng)扇得以出現(xiàn)。隨著電子制造業(yè)的不斷發(fā)展,社會對生產(chǎn)率的要求越來越高,各行業(yè)都需要精良高效、高可靠性的設(shè)備來滿足要求。作為一種老式家電,電風(fēng)扇具有價格便宜、擺放方便、體積輕巧等特點。由于大部分家庭消費水平的限制,電風(fēng)扇作為一個成熟的家電行業(yè)的一員,在中小城市以及鄉(xiāng)村將來一段時間內(nèi)仍然會占有市場的大部分份額,但電風(fēng)扇功能簡單,不能滿足智能化的要求。本文利用了單片機的紅外控制功能,對電扇的控制結(jié)構(gòu)進(jìn)行了重新的設(shè)計,使得人在距離電扇10 m范圍內(nèi)就可以短程控制電扇,使得人不用走近電扇即可對電扇的風(fēng)速進(jìn)行調(diào)控,方便,實用,具有廣闊的市場前景。
1 系統(tǒng)功能簡介
傳統(tǒng)的電扇都是由機械按鍵來控制電扇的啟停,本設(shè)計采用紅外遙控進(jìn)行控制,由一單片機作為發(fā)射電路的主控部分,根據(jù)傳統(tǒng)的機械按鍵也設(shè)計了4個按鍵控制,分別是關(guān)閉,小風(fēng)速,中檔風(fēng)速,高風(fēng)速。用戶可以在夏天的時候,坐在沙發(fā)上,就可以完成電扇的打開,關(guān)閉,高速,低速的調(diào)節(jié)。
2 系統(tǒng)結(jié)構(gòu)
該設(shè)計的系統(tǒng)的框圖如圖1所示。
由圖1我們可以看到該設(shè)計一共由6大模塊構(gòu)成,其中2個單片機AT89C52模塊是相同的,他們分別是單片機的最小系統(tǒng),具有單片機的最基本的啟動和復(fù)位功能,其中按鍵部分完成按鍵功能,將0或者1的電平送給單片機進(jìn)行處理,至于紅外發(fā)送模塊,功能就是把單片機編制好的紅外編碼發(fā)送出去,紅外接收模塊僅僅完成接收工作。后面的單片機模塊完成對紅外脈沖的解碼,由不同的編碼完成對電機的控制,也就相當(dāng)于對電扇進(jìn)行控制了。
3 系統(tǒng)硬件設(shè)計
3.1 遙控發(fā)射電路設(shè)計
如圖2所示,該圖為紅外遙控發(fā)射電路圖。
在圖2中,單片機采用AT89C52,這是遙控電路的主芯片。ATMEL公司生產(chǎn)的AT89C52單片機采用高性能的靜態(tài)80C51設(shè)計,并采用先進(jìn)工藝制造,還帶有非易失性的Flash程序存儲器,它是一種高性能、低功耗的8位CMOS微處理芯片,市場應(yīng)用最多。其主要性能特點如下:
*8 kB Flash ROM,可以擦除1 000次以上,數(shù)據(jù)保存10年。
*256字節(jié)內(nèi)部RAM。
*電源控制模式:1)時鐘可停止恢復(fù)2)空閑模式3)掉電模式。
*6個中斷源。
*4個中斷優(yōu)先級。
*4個8位I/O口。
*全雙工增強型UART。
*3個16位定時/計數(shù)器:T0,T1(標(biāo)準(zhǔn)80C51)和增加的T2(捕獲和比較)。
*全靜態(tài)工作方式:0~24 MHz。
在單片機的右半部分,接有4個按鍵分別是S2,S3,S4,S5與單片機的P0口的0到3號端口相連。P0口在用作輸入的時候,必須接有上拉電阻。在單片機的左半部分是最小系統(tǒng)模塊和紅外發(fā)射部分,遙控器的信息碼由AT89C52單片機的定時器1中斷產(chǎn)生40 kHz紅外線方波信號,由P3.5口輸出,經(jīng)過三極管9013放大,由紅外線發(fā)射管發(fā)送。改變電阻R3的大小可以改變發(fā)射距離。
3.2 紅外遙控接收電路設(shè)計
如圖3所示,該圖為紅外遙控接收電路圖。
如圖3所示,單片機的左半部分是萬能紅外接收頭IR1838,其管腳1為輸出,管腳2,3分別是接地和電源的輸入,電源電壓仍然為5 V,左半部分的單片機的最小系統(tǒng)完成的是單片機的復(fù)位功能和啟停,右半部分電路是由一個DAC0808芯片構(gòu)成,該芯片輸出與一個放大器相連,通過放大后將電壓加在直流電機的兩端,從而驅(qū)動了電機的工作。關(guān)于DAC0808它的主要參數(shù)為,誤差最大,快速建立時間為150 ns,高速輸入乘以轉(zhuǎn)換率為:8 mA/μs,電源電壓為±4.5~±18 V到,該芯片為低功耗的,最大功耗為33 mW。該DAC是8位的,也就意味著輸入的范圍為0到255,輸出的電壓從0~10 V變化的,這樣最小精度為10/255 V,但是經(jīng)過一個集成放大器后,也就能驅(qū)動一個小小的電動機了。
4 系統(tǒng)軟件設(shè)計
4.1 紅外發(fā)射和接收原理
先講一講什么是紅外線。我們知道,人的眼睛能看到的可見光按波長從長到短排列,依次為紅、橙、黃、綠、青、藍(lán)、紫。其中紅光的波長范圍為0.62~0.76μm;紫光的波長范圍為0.38~O.46μm。比紫光波長還短的光叫紫外線,比紅光波長還長的光叫紅外線。紅外線遙控就是利用波長為0.76~1.5μm之間的近紅外線來傳送控制信號的。
常用的紅外遙控系統(tǒng)一般分發(fā)射和接收2個部分。發(fā)射部分的主要元件為紅外發(fā)光二極管。它實際上是一只特殊的發(fā)光二極管,由于其內(nèi)部材料不同于普通發(fā)光二極管,因而在其兩端施加一定電壓時,它便發(fā)出的是紅外線而不是可見光。目前大量使用的紅外發(fā)光二極管發(fā)出的紅外線波長為940 nm左右,外形與普通發(fā)光二極管相同,只是顏色不同。紅外發(fā)光二極管一般有黑色、深藍(lán)、透明3種顏色。判斷紅外發(fā)光二極管好壞的辦法與判斷普通二極管一樣:用萬用表電阻擋量一下紅外發(fā)光二極管的正、反向電阻即可。紅外發(fā)光二極管的發(fā)光效率要用專門的儀器才能精確測定,而業(yè)余條件下只能用拉距法來粗略判定。
接收部分的紅外接收管是一種光敏二極管。在實際應(yīng)用中要給紅外接收二極管加反向偏壓,它才能正常工作,亦即紅外接收二極管在電路中應(yīng)用時是反向運用,這樣才能獲得較高的靈敏度。紅外接收二極管一般有圓形和方形兩種。
由于紅外發(fā)光二極管的發(fā)射功率一般都較小(100 mW左右),所以紅外接收二極管接收到的信號比較微弱,因此就要增加高增益放大電路。前些年常用μPC1373H、CX20106A等紅外接收專用放大電路。最近幾年不論是業(yè)余制作還是正式產(chǎn)品,大多都采用成品紅外接收頭。成品紅外接收頭的封裝大致有兩種:一種采用鐵皮屏蔽;一種是塑料封裝。均有3只引腳,即電源正(VDD)、電源(GND)和數(shù)據(jù)輸出(VO或OUT)。紅外接收頭的引腳排列因型號不同而不盡相同,可參考廠家的使用說明。成品紅外接收頭的優(yōu)點是不需要復(fù)雜的調(diào)試和外殼屏蔽,使用起來如同一只三極管.非常方便。但在使用時注意成品紅外接收頭的載波頻率。紅外遙控常用的載波頻率為38 kHz,這是由發(fā)射端所使用的455 kHz晶振來決定的。在發(fā)射端要對晶振進(jìn)行整數(shù)分頻,分頻系數(shù)一般取12,所以455 kHz÷12≈37.9kHz≈38kHz。也有一些遙控系統(tǒng)采用36kHz、40 kHz、56 kHz等,一般由發(fā)射端晶振的振蕩頻率來決定。在本系統(tǒng)的中采用的是40 kHz的紅外發(fā)射波,接收裝置采用的是萬能紅外接收頭IR1838。
4.2 遙控碼的編碼格式
遙控碼采用脈沖,不同的脈沖個數(shù)代表不同的碼,最小為2個脈沖,最大為17個脈沖。
為了使接收可靠,第一位碼寬為3 ms,其余為1 ms,遙控碼數(shù)據(jù)幀間隔大于10 ms,其編碼波形如圖4所示。
如圖4所示,當(dāng)某個操作鍵按下時,單片機先讀出鍵值,然后根據(jù)鍵值設(shè)定遙控碼的脈沖個數(shù),再調(diào)制成40 kHz的方波由紅外線發(fā)射管發(fā)射出去。在上述的發(fā)射電路中,一共設(shè)置了4個按鍵,其中S2,S3,S4,S5的編碼分別是電器碼2,3,4,5,對于發(fā)射電路,每發(fā)送一個數(shù)據(jù)幀最短的時間間隔是10 ms。例如在按下S4時,即先發(fā)送3 ms的前導(dǎo)碼,隨后再發(fā)送5個1 ms的脈沖,就表示按鍵S4被按下了,單片機紅外接收電路在接收到一串串脈沖之后,通過軟件完成對紅外的解碼,通過設(shè)置,每個編碼對應(yīng)于電動機不同的操作,比如2這個編碼,那么單片機的P0口輸出00000000,再經(jīng)過DAC0808之后,輸出電壓為0,這樣電動機就可以停止工作了。類似的編碼3,4,5分別對應(yīng)直流電機的低速,中速和高速的操作。
4.3 單片機紅外發(fā)送和接收程序
由于程序較長,所以在本設(shè)計中只給出部分的核心的紅外發(fā)送和接收程序。關(guān)于紅外的發(fā)送程序如下:
如上面程序所示發(fā)送函數(shù)是固定不變的,在發(fā)送函數(shù)中完成了編碼的功能,在tx函數(shù)中,用到了一個swicch開關(guān)語句,分別對按鍵值的不同進(jìn)行處理,例如當(dāng)keyvol=2的時候,就發(fā)送3個脈沖信號。
關(guān)于單片機的紅外接收解碼過程,其核心程序如下:
由面的解碼程序可以知道,用到了一個中斷接收的程序,其中remotein為臨時變量,解碼時的關(guān)鍵在于對脈沖個數(shù)的計量,這樣keyvol的值就能很方便的讀出來,再用到一個switch語句就可以分別對風(fēng)速進(jìn)行控制了。
5 結(jié)束語
紅外遙控的特點是不影響周邊環(huán)境,不干擾其它電器設(shè)備。由于其無法穿透墻壁,故不同房間的家用電器可使用通用的遙控器而不會產(chǎn)生相互干擾;電路調(diào)試簡單,只要按給定電路連接無誤,一般不需任何調(diào)試即可投入工作;編解碼容易,可進(jìn)行多路遙控。由于各生產(chǎn)廠家生產(chǎn)了大量紅外遙控專用集成電路,需要時按圖索驥即可。因此,現(xiàn)在紅外遙控在家用電器、室內(nèi)近距離(小于10 m)遙控中得到了廣泛的應(yīng)用。
在本設(shè)計中,利用2個單片機就可以實現(xiàn)短距離的控制,實際上其本質(zhì)就是利用紅外進(jìn)行通信,并把通信的結(jié)果進(jìn)行處理,反饋到最終的形式就是電扇風(fēng)速的不同。另外本設(shè)計還可以進(jìn)行改進(jìn)的,比如我們在考慮單片機的功耗時,因為用于紅外接收的那個單片機在風(fēng)扇停止工作的時候,單片機如果仍在工作,那么勢必增加了系統(tǒng)的功耗,所以為了降低功耗,在用于紅外接收的那個單片機中,應(yīng)該添加一個待機模式,這樣就大大降低了功耗,節(jié)省了能源,當(dāng)有外部中斷來的時候,才喚醒單片機,讓它處于工作狀態(tài),這樣就達(dá)到低功耗的目的了。此外,若能在接收端加上一個測溫系統(tǒng),并把實時溫度顯示出來,用戶根據(jù)目前環(huán)境的溫度來對電扇進(jìn)行操作,那就更好了。
經(jīng)Proteus電路仿真驗證后,該系統(tǒng)運行良好,單片機的遙控電扇工作起來可靠性較高,用戶可以在幾米遠(yuǎn)的地方,就可以對電扇進(jìn)行實時控制了。該系統(tǒng)成本低廉,操作簡單,隨時可以根據(jù)軟件編寫新的功能。操作按鍵可擴展性強,只要稍加改變,就可以增加幾個按鍵的功能,本系統(tǒng)在當(dāng)今提倡人性化設(shè)計和健康產(chǎn)品的環(huán)境下具有非常好的市場前景。