你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文

智能學(xué)習(xí)型紅外空調(diào)遙控器的設(shè)計(jì)與實(shí)現(xiàn)

發(fā)布時(shí)間:2015-01-17 責(zé)任編輯:echolady

【導(dǎo)讀】本文設(shè)計(jì)的是一款基于單片機(jī)的紅外智能空調(diào)遙控器,這種遙控器能采用測(cè)量脈沖寬度的方法學(xué)習(xí)紅外信號(hào),同時(shí)使用游程編碼算法對(duì)數(shù)據(jù)進(jìn)行壓縮后存儲(chǔ),并利用單片機(jī)內(nèi)部定時(shí)器PWM模式產(chǎn)生紅外載波,成功實(shí)現(xiàn)了對(duì)紅外遙控的學(xué)習(xí)與再現(xiàn)。下面請(qǐng)看詳細(xì)設(shè)計(jì)流程。

系統(tǒng)總體結(jié)構(gòu)與硬件設(shè)計(jì)

系統(tǒng)采用模塊化設(shè)計(jì),各模塊通過(guò)接口電路與主控芯片相連。主要模塊有:矩陣鍵盤,液晶顯示,存儲(chǔ)模塊,紅外發(fā)送模塊,紅外接收模塊,RS232、RS485 通信模塊,以及溫度檢測(cè)模塊。系統(tǒng)結(jié)構(gòu)圖如圖1 所示。

系統(tǒng)以Atmega16 單片機(jī)作為主控芯片,Atmega16具有16K 字節(jié)的系統(tǒng)內(nèi)可編程Flash ,512 字節(jié)EEPROM,1K 字節(jié)SRAM,32 個(gè)通用I/O 口線,32 個(gè)通用工作寄存器,用于邊界掃描的JTAG 接口,支持片內(nèi)調(diào)試與編程,三個(gè)具有比較模式的靈活的定時(shí)器/計(jì)數(shù)器(T/C),片內(nèi)/外中斷,可編程串行USART,有起始條件檢測(cè)器的通用串行接口,8 路10 位具有可選差分輸入級(jí)可編程增益的ADC,具有片內(nèi)振蕩器的可編程看門狗定時(shí)器,一個(gè)SPI 串行端口,以及六個(gè)可以通過(guò)軟件進(jìn)行選擇的省電模式。該芯片功能強(qiáng)大,滿足系統(tǒng)設(shè)計(jì)需要并提供了充分的擴(kuò)展空間。主控芯片使用8MHz 的晶振,晶振電路靠近主控芯片,盡量減少輸入噪聲。復(fù)位電路采用低電平復(fù)位。

智能學(xué)習(xí)型紅外空調(diào)遙控器的設(shè)計(jì)與實(shí)現(xiàn)
圖1 系統(tǒng)結(jié)構(gòu)圖

矩陣鍵盤采用3*3 的設(shè)計(jì),設(shè)置了8 個(gè)功能鍵,方便用戶進(jìn)行手動(dòng)操作。其中單獨(dú)設(shè)計(jì)了一顆模式切換鍵,可在學(xué)習(xí)、發(fā)射、通信模式中切換。為了實(shí)現(xiàn)學(xué)習(xí)功能, 紅外接收模塊使用了一體化接收頭NB1838,其光電檢測(cè)和前置放大器集成于同一封裝,中心頻率為37.9KHz. NB1838 的環(huán)氧樹(shù)脂封裝結(jié)構(gòu)為其提供了一個(gè)特殊的紅外濾光器,對(duì)自然光和電場(chǎng)干擾有很強(qiáng)的防護(hù)性。NB1838 對(duì)接收到的紅外信號(hào)進(jìn)行放大、檢波、整形,并調(diào)制出紅外編碼,得到TTL 波形,反相后輸入單片機(jī),再由單片機(jī)進(jìn)行進(jìn)一步的處理,存儲(chǔ)到EEPROM 中,接收電路如圖2 所示。

智能學(xué)習(xí)型紅外空調(diào)遙控器的設(shè)計(jì)與實(shí)現(xiàn)
圖2 接收硬件電路圖。

考慮到系統(tǒng)需要的存儲(chǔ)空間比較大,設(shè)計(jì)了單獨(dú)的存儲(chǔ)模塊,選用的EEPROM 是AT24C64,它提供了8KB 的容量,通過(guò)IIC 協(xié)議與Atmega16 TWI 接口通信,將學(xué)習(xí)到的紅外指令存儲(chǔ)在此,掉電不丟失。

在發(fā)射模式下,系統(tǒng)從EEPROM 讀取相應(yīng)數(shù)據(jù)信息,利用三極管9013 組成的放大電路,通過(guò)大功率紅外發(fā)射管將調(diào)制好的紅外信號(hào)發(fā)射出去。發(fā)射電路如圖3所示,非發(fā)送狀態(tài)時(shí),三極管工作在截止?fàn)顟B(tài),紅外發(fā)射管不工作,有利于降低功耗以及延長(zhǎng)紅外發(fā)射管的使用壽命。經(jīng)實(shí)際測(cè)試,發(fā)射距離可達(dá)到10m 左右。

智能學(xué)習(xí)型紅外空調(diào)遙控器的設(shè)計(jì)與實(shí)現(xiàn)
圖3 發(fā)射硬件電路圖。

通信模式中,系統(tǒng)通過(guò)RS232 電路與上位機(jī)通信,在與上位機(jī)通信時(shí)使用DS18B20 反饋溫度信息,DS18B20 一線總線設(shè)計(jì)大大提高了系統(tǒng)的抗干擾性,獨(dú)特而且經(jīng)濟(jì)。系統(tǒng)還增加了RS485 模塊,便于組網(wǎng),以實(shí)現(xiàn)對(duì)多個(gè)紅外設(shè)備進(jìn)行控制。RS485 在組網(wǎng)時(shí)只需要用一對(duì)雙絞線將子設(shè)備的"A"、"B"端連接起來(lái),這種接線方式為總線式拓?fù)浣Y(jié)構(gòu),在同一總線上可掛接多個(gè)結(jié)點(diǎn),連接方便。

為了增加設(shè)備的實(shí)用性,系統(tǒng)設(shè)計(jì)了兩個(gè)電源方案,一個(gè)是直接接入5V 直流電源,一個(gè)是接入12V直流電源,然后通過(guò)L7805 構(gòu)成的變壓電路降壓為5V使用。
[page]
系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)

系統(tǒng)程序主要分為三個(gè)部分:學(xué)習(xí)模式,發(fā)送模式以及通信模式。當(dāng)?shù)谝淮芜M(jìn)入系統(tǒng)時(shí),初始化設(shè)置設(shè)備地址,然后設(shè)置通信的波特率,提供1200、9600 以及19200 三種選擇。系統(tǒng)主程序即在三個(gè)模式間切換,默認(rèn)進(jìn)入通信模式,可以通過(guò)模式切換按鍵改變模式,也可以通過(guò)上位機(jī)直接更改。出于系統(tǒng)的穩(wěn)定性需要,在程序中加入了軟件看門狗,防止程序"跑飛".

學(xué)習(xí)功能設(shè)計(jì)

學(xué)習(xí)模式

紅外遙控器的碼型多樣,編碼一般包括:幀頭、系統(tǒng)碼、操作碼、同步碼、幀間隔碼、幀尾,且同步碼與幀間隔碼出現(xiàn)的位置不固定,因此碼型格式靈活多變,很難區(qū)分各種碼型的編碼含義;各個(gè)紅外遙控的編碼長(zhǎng)度不盡相同,發(fā)送方式也多種多樣,最常用的有三種:完整幀只發(fā)送一次、完整幀重復(fù)發(fā)送兩次、先發(fā)送一個(gè)完整幀,后重復(fù)發(fā)送幀頭和一個(gè)脈沖。面對(duì)如此多樣化的編碼方式,如果區(qū)分每種編碼的含義進(jìn)行學(xué)習(xí),學(xué)習(xí)的復(fù)雜度將會(huì)很高,并且通用性也會(huì)受到影響。所以,為了避開(kāi)各色碼型的干擾,系統(tǒng)在學(xué)習(xí)時(shí)并不關(guān)心碼型數(shù)據(jù)的實(shí)際意義,只記錄脈沖的時(shí)間寬度。系統(tǒng)主要針對(duì)載波頻率為38KHz(周期為26us)的紅外遙控器,利用變量IR_time 記錄接收到的脈沖寬度。學(xué)習(xí)程序流程如圖4 所示。

智能學(xué)習(xí)型紅外空調(diào)遙控器的設(shè)計(jì)與實(shí)現(xiàn)
圖4 學(xué)習(xí)程序流程圖。
 
壓縮存儲(chǔ)

由于不考慮具體的碼型數(shù)據(jù)意義,只記錄脈沖的寬度,系統(tǒng)的學(xué)習(xí)功能通用性得到了提高,但這種方式學(xué)習(xí)到的數(shù)據(jù)量很大,對(duì)存儲(chǔ)的要求就變得很高。

盡管系統(tǒng)針對(duì)存儲(chǔ)的大容量需求設(shè)計(jì)了單獨(dú)的存儲(chǔ)模塊,但考慮到應(yīng)在不增加硬件開(kāi)銷的情況下保證足夠的存儲(chǔ)容量,以及滿足未來(lái)擴(kuò)展的需要,在進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí),采取了數(shù)據(jù)壓縮技術(shù)。

從學(xué)習(xí)到的電平數(shù)據(jù)可以發(fā)現(xiàn),無(wú)論數(shù)據(jù)是1 還是0,都有相同時(shí)長(zhǎng)的電平出現(xiàn),這符合游程編碼的特點(diǎn)。游程編碼是一種簡(jiǎn)單的非破壞性資料壓縮法,其好處是加壓縮和解壓縮都非???,其方法是計(jì)算連續(xù)出現(xiàn)的資料長(zhǎng)度壓縮之。比如:一張二值圖像的數(shù)據(jù)為:

WWWWWWWWBWWWWBBBWWWWWWWBWWWWW

使用游程編碼壓縮可得:8W1B4W3B7W1B 5W.

可見(jiàn),壓縮效率極高,且可避免復(fù)雜的編碼和解碼運(yùn)算。所以,在存儲(chǔ)時(shí),系統(tǒng)對(duì)學(xué)習(xí)到的數(shù)據(jù)進(jìn)行游程編碼壓縮[7,8].例如,學(xué)習(xí)到的一組空調(diào)遙控器的數(shù)據(jù)為[157 153 23 53 … 23 53 23 180 156 152 23 53 …53 23],如圖5 所示,對(duì)重復(fù)的電平數(shù)據(jù)采用游程編碼壓縮后,原本需要199 字節(jié)的空調(diào)遙控碼,只需要106個(gè)字節(jié)即可存儲(chǔ),壓縮率達(dá)53.27%.因此,在存儲(chǔ)時(shí)針對(duì)學(xué)習(xí)到的數(shù)據(jù)特點(diǎn)采取游程編碼壓縮,可以有效節(jié)約存儲(chǔ)空間。

智能學(xué)習(xí)型紅外空調(diào)遙控器的設(shè)計(jì)與實(shí)現(xiàn)
圖5 一組典型的空調(diào)數(shù)據(jù)幀。
 
發(fā)射功能設(shè)計(jì)

現(xiàn)有的紅外遙控器很多都是采用外部電路產(chǎn)生載波信號(hào),例如使用NEC555 振蕩器產(chǎn)生載波信號(hào)。為了減少硬件開(kāi)銷,本系統(tǒng)使用單片機(jī)內(nèi)部的定時(shí)器產(chǎn)生載波。系統(tǒng)使用的是Atmega16 單片機(jī),其定時(shí)器功能強(qiáng)大,具有普通模式、CTC 模式、快速PWM 模式、相位修正PWM 模式等工作模式,系統(tǒng)利用定時(shí)器1,使其工作在快速PWM 模式,產(chǎn)生占空比為1:3 的38KHz 的PWM 波。當(dāng)發(fā)送某條指令時(shí),單片機(jī)從對(duì)應(yīng)的EEPROM 中提取指令信息,然后調(diào)制到生成的載波上,再通過(guò)發(fā)射電路即可完成紅外信號(hào)的發(fā)射。
[page]
通信功能設(shè)計(jì)

上位機(jī)通信

本遙控器除了能通過(guò)功能按鍵實(shí)現(xiàn)手動(dòng)操作外,還可以通過(guò)上位機(jī)軟件對(duì)遙控器進(jìn)行控制。遙控器與上位機(jī)通過(guò)RS232 模塊進(jìn)行通信,首先配置上位機(jī)軟件,確定串口號(hào),選擇與設(shè)備相同的波特率及主從設(shè)備地址,然后根據(jù)需要選擇相應(yīng)的指令,點(diǎn)擊發(fā)送即可通過(guò)上位機(jī)對(duì)設(shè)備進(jìn)行控制。由于本遙控器是基于空調(diào)遙控器進(jìn)行研究的,在與上位機(jī)通信時(shí),系統(tǒng)中的溫度檢測(cè)模塊會(huì)上傳實(shí)時(shí)溫度,便于用戶進(jìn)行調(diào)整。圖6 為上位機(jī)軟件流程圖。

智能學(xué)習(xí)型紅外空調(diào)遙控器的設(shè)計(jì)與實(shí)現(xiàn)
圖6 上位機(jī)軟件流程圖。

組網(wǎng)控制

為了實(shí)現(xiàn)對(duì)多個(gè)設(shè)備的聯(lián)網(wǎng)控制,還設(shè)計(jì)了RS485 模塊。各子遙控器通過(guò)RS485 模塊的"A"、"B"端連接在一起,組成控制網(wǎng)絡(luò),如圖7 所示,其中一個(gè)作為主遙控器,與上位機(jī)通過(guò)RS232 模塊進(jìn)行串口通信。當(dāng)上位機(jī)需要對(duì)某個(gè)子設(shè)備進(jìn)行控制時(shí),選擇相應(yīng)的子設(shè)備地址號(hào),發(fā)送指令即可,主遙控器收到指令信息后,會(huì)將指令發(fā)給對(duì)應(yīng)的子設(shè)備。與主遙控器相連的上位機(jī)PC 連接Internet,作為本地服務(wù)器,可實(shí)現(xiàn)遠(yuǎn)程控制。

用戶登錄遠(yuǎn)程客戶端,經(jīng)身份驗(yàn)證后與服務(wù)器建立連接,可發(fā)送指令給本地服務(wù)器,本地服務(wù)器再經(jīng)過(guò)串口通信對(duì)遙控器進(jìn)行相應(yīng)操作。如果遙控器主機(jī)與上位機(jī)距離較遠(yuǎn),RS232 不能滿足通信需要,也可不使用遙控器主機(jī),在上位機(jī)PC 上使用RS232-485 轉(zhuǎn)接頭,通過(guò)RS485 直接將遙控器網(wǎng)絡(luò)與PC 機(jī)485 接口相連,利用上位機(jī)對(duì)遙控器網(wǎng)絡(luò)直接進(jìn)行控制。

智能學(xué)習(xí)型紅外空調(diào)遙控器的設(shè)計(jì)與實(shí)現(xiàn)
圖7 控制網(wǎng)絡(luò)示意圖。

本文設(shè)計(jì)了一款智能空調(diào)遙控器。該系統(tǒng)采用只記錄紅外信號(hào)脈沖寬度,不考慮紅外編碼格式的方式,通過(guò)游程編碼算法將紅外信號(hào)壓縮后保存到EEPROM 中,并直接利用主控芯片定時(shí)器的PWM 模式產(chǎn)生38KHz 的載波,節(jié)約了硬件成本,除手動(dòng)操作外還可以通過(guò)上位機(jī)對(duì)遙控器進(jìn)行控制,使用方便。

系統(tǒng)成功實(shí)現(xiàn)了對(duì)多種空調(diào)遙控器的學(xué)習(xí)與功能再現(xiàn),操作靈活,性能穩(wěn)定。本系統(tǒng)還可用于智能家居中,對(duì)不同的紅外設(shè)備進(jìn)行控制,也可用于遠(yuǎn)程網(wǎng)絡(luò)控制,為智能家居及遠(yuǎn)程監(jiān)控提供了一種實(shí)現(xiàn)方法。

相關(guān)閱讀:

技術(shù)帝教你DIY紅外遙控LED電子鐘
一款單線紅外遙控開(kāi)關(guān)電路設(shè)計(jì)
萬(wàn)能紅外遙控開(kāi)關(guān)DIY,讓你實(shí)現(xiàn)隨時(shí)開(kāi)關(guān)

要采購(gòu)開(kāi)關(guān)么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
共模電感 固態(tài)盤 固體繼電器 光傳感器 光電池 光電傳感器 光電二極管 光電開(kāi)關(guān) 光電模塊 光電耦合器 光電器件 光電顯示 光繼電器 光控可控硅 光敏電阻 光敏器件 光敏三極管 光收發(fā)器 光通訊器件 光纖連接器 軌道交通 國(guó)防航空 過(guò)流保護(hù)器 過(guò)熱保護(hù) 過(guò)壓保護(hù) 焊接設(shè)備 焊錫焊膏 恒溫振蕩器 恒壓變壓器 恒壓穩(wěn)壓器
?

關(guān)閉

?

關(guān)閉