伍東亮
【摘要】目前,創(chuàng)客教育開始風(fēng)靡全國(guó)高校,創(chuàng)客教育是以學(xué)生興趣為依托、以創(chuàng)新創(chuàng)意為目標(biāo)、以多信息傳感融合為技術(shù)背景的新型教育模式。如何將傳感器原理通俗易懂的講解給學(xué)生并引導(dǎo)學(xué)生進(jìn)行傳感器應(yīng)用是創(chuàng)客基礎(chǔ)教育需要解決的關(guān)鍵問(wèn)題。
【關(guān)鍵詞】創(chuàng)客教育 紅外發(fā)射 傳感器
【中圖分類號(hào)】G71 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】2095-3089(2017)17-0254-01
目前創(chuàng)客教育產(chǎn)品設(shè)計(jì)中有的會(huì)采用紅外遙控功能,但是諸多老師覺得紅外遙控知識(shí)抽象、控制復(fù)雜而不能很好的進(jìn)行知識(shí)講解,在此我就紅外接收原理及解碼方法進(jìn)行研究,并思考整理出一套由易到難、循序漸進(jìn)、通俗易懂的紅外遙控教學(xué)和學(xué)習(xí)方法。
1.紅外遙控創(chuàng)客基礎(chǔ)教學(xué)之八問(wèn)八答
1.1什么是紅外光波信號(hào)?
遙控器發(fā)射的紅外光波其實(shí)就是一串亮滅不斷變化的光。那么怎么樣從這些不斷變化的光信號(hào)中讀取出它的秘密呢?我們首先要理解紅外編碼規(guī)則,看下圖1:
從上圖中可以看出,紅外遙控是通過(guò)控制紅外發(fā)送二極管的亮滅持續(xù)時(shí)間來(lái)表示數(shù)字0和1,數(shù)字1比數(shù)字0耗時(shí)時(shí)間要長(zhǎng),這種傳輸方式類似于抗戰(zhàn)片中的手電筒傳播信號(hào)。
1.2紅外遙控器發(fā)射光波里包含了什么內(nèi)容?
一幀完整的紅外遙控信號(hào),它由引導(dǎo)碼(最前面的兩個(gè)4.5ms的高低電平構(gòu)成)、客戶代碼(代表公司,比如0x01格力,0x02長(zhǎng)虹)、數(shù)據(jù)碼(按鍵鍵值,我們編程最關(guān)心的)、數(shù)據(jù)碼反碼(用來(lái)驗(yàn)證接收數(shù)據(jù)是否正確)及SY(同步信號(hào))共五部分組成(見圖2)。只要明白一幀數(shù)據(jù)的構(gòu)成,才能進(jìn)行數(shù)據(jù)分析,解析紅外信息。
1.3如何接收紅外信號(hào)?
以51單片機(jī)為例來(lái)舉例說(shuō)明如何接收紅外信號(hào)。紅外信號(hào)是通過(guò)一組持續(xù)時(shí)間不同的高低電平來(lái)表示數(shù)字0和1,那么要怎樣才能精確計(jì)算出一組高低電平持續(xù)時(shí)間呢?這個(gè)計(jì)量時(shí)間是比較苛刻的,為了減少誤差選用單片機(jī)定時(shí)器選用方式2(自動(dòng)重裝)來(lái)減少計(jì)時(shí)誤差。方式2下一次定時(shí)中斷耗時(shí)根據(jù)晶振頻率而定。11.0592M時(shí), T = 256*(12/11.0592)= 277US。
接收紅外信號(hào)其實(shí)就是接收每一組高低電平持續(xù)時(shí)間,這個(gè)時(shí)間通過(guò)外部中斷刷新定時(shí)器中斷計(jì)數(shù)來(lái)獲得,所以接收到的原始信號(hào)數(shù)據(jù)是一組定時(shí)器溢出次數(shù)的數(shù)據(jù)。以51單片機(jī)為例,將紅外接收信號(hào)引腳與單片機(jī)外部中斷引腳相連,采用外部中斷來(lái)接收紅外數(shù)據(jù),當(dāng)中斷引腳接收到一個(gè)紅外下降沿信號(hào)時(shí),首先將定時(shí)器溢出次數(shù)清零,定時(shí)器每溢出中斷一次計(jì)數(shù)加一,當(dāng)外部中斷接收到下一個(gè)下降沿信號(hào),將當(dāng)前溢出次數(shù)存儲(chǔ)作為第一個(gè)時(shí)間數(shù)據(jù)。
當(dāng)單片機(jī)接收到第一個(gè)時(shí)間數(shù)據(jù)后,要立即分析是否為紅外遙控的起始信號(hào)。一般的引導(dǎo)碼大約為9000us,在8.8ms與13.8ms之間認(rèn)為是引導(dǎo)碼,以11.0592M晶振為例,中斷溢出一次耗時(shí)277us,8.8ms約中斷32次,13.8ms約中斷50次,如果溢出次數(shù)符合32-50次范圍,可以認(rèn)為是紅外信號(hào)的引導(dǎo)碼,我們將定時(shí)器中斷次數(shù)存入數(shù)組Time[ 0 ]中。
引導(dǎo)碼之后是客戶碼和數(shù)據(jù)碼。后續(xù)數(shù)據(jù)是由多個(gè)持續(xù)時(shí)間不同的高低電平組成,每一個(gè)高低電平會(huì)觸發(fā)單片機(jī)產(chǎn)生一次中斷。只需在前一次中斷中將定時(shí)器溢出中斷計(jì)數(shù)變量清零,在下一次中斷發(fā)生后讀取定時(shí)器溢出中斷計(jì)數(shù)變量值,并將值按順序存入數(shù)組Time[ ] 即可。一幀完整信號(hào)總共有34組高低電平信號(hào)(引導(dǎo)碼1組 + 用戶碼8組 + 用戶碼8組 + 數(shù)據(jù)碼8組 + 數(shù)據(jù)反碼8組 + 同步碼1組)。一幀數(shù)據(jù)會(huì)觸發(fā)單片機(jī)外部中斷次數(shù)為34次。所以當(dāng)中斷計(jì)數(shù)為34時(shí),表示數(shù)據(jù)接收完畢。
1.4 如何解碼紅外信號(hào)?
紅外信號(hào)接收到全部數(shù)據(jù)后,開始解析紅外信號(hào)。數(shù)據(jù)0和1高低電平時(shí)間長(zhǎng)度不一樣,只需要設(shè)定一個(gè)參考時(shí)間值,這個(gè)參考時(shí)間值如何設(shè)定才合理?可以將一個(gè)0和一個(gè)1總時(shí)間相加除以2得到。(例如:0耗時(shí)1.125毫秒,1耗時(shí)2.25毫秒,參考時(shí)間為:(1.125+2.25)/2=1.687ms=1687US,轉(zhuǎn)化為定時(shí)器溢出次數(shù)為1687/277=6次,判斷溢出次數(shù)如果大于6則為數(shù)據(jù)1,小于6則為數(shù)據(jù)0。將全部溢出次數(shù)數(shù)據(jù)按此規(guī)則進(jìn)行轉(zhuǎn)換,得到一組二進(jìn)制數(shù)值。
紅外數(shù)據(jù)中的用戶碼和數(shù)據(jù)碼都是一個(gè)8bit的數(shù)據(jù)構(gòu)成,低字節(jié)在前,高字節(jié)在后。將解析出來(lái)的二進(jìn)制數(shù)據(jù)通過(guò)右移位來(lái)實(shí)現(xiàn)8位的字節(jié)數(shù)據(jù)。紅外遙控一幀數(shù)據(jù)包括4個(gè)字節(jié)的數(shù)據(jù),要依次解析出這四個(gè)數(shù)據(jù),并將數(shù)據(jù)存入數(shù)組中。
1.5 如何驗(yàn)證接收數(shù)據(jù)正確性?
一幀紅外數(shù)據(jù)包含有一個(gè)數(shù)據(jù)碼和一個(gè)數(shù)據(jù)反碼,只需將解碼后的數(shù)據(jù)碼和數(shù)據(jù)反碼進(jìn)行取反比較即可驗(yàn)證接收數(shù)據(jù)是否正確。
1.6如何讀取紅外遙控按鍵鍵值?
紅外遙控器每個(gè)按鍵對(duì)應(yīng)一個(gè)按鍵鍵值,如何才能得到每個(gè)按鍵對(duì)應(yīng)的鍵值呢?問(wèn)題四解碼過(guò)程中解析出來(lái)的數(shù)據(jù)碼即為按鍵鍵值,可以通過(guò)串口打印或者液晶顯示即可將按鍵鍵值顯示出來(lái)。
1.7 如何利用遙控器進(jìn)行遙控編程控制?
通過(guò)上述方法得到控制按鍵的鍵值后,解析每次接收到的紅外遙控?cái)?shù)據(jù)碼碼值,通過(guò)條件分支語(yǔ)句switch比較碼值并進(jìn)行軟件編程控制即可。
1.8 不同的遙控器解碼方式有差異嗎?
據(jù)我了解不同的遙控器紅外編碼方式大體一樣,差別主要在于以下三個(gè)方面:
(1)數(shù)字0、1高低點(diǎn)持續(xù)時(shí)間不一樣。
(2)引導(dǎo)碼高低電平持續(xù)時(shí)間不一樣
(3)一幀數(shù)據(jù)構(gòu)成不一樣(很少)
不同的遙控器要找遙控器對(duì)應(yīng)的控制芯片,查看它的說(shuō)明書,查找以上數(shù)據(jù),結(jié)合數(shù)據(jù)對(duì)程序做適當(dāng)修改即可。
2.結(jié)語(yǔ)
通過(guò)多次的紅外遙控教學(xué)嘗試發(fā)現(xiàn),學(xué)生只要有一定的單片機(jī)C語(yǔ)言編程基礎(chǔ)和良好的外部中斷和定時(shí)器編程使用能力,通過(guò)以上思路可以很好的掌握和理解紅外遙控接收編程。
參考文獻(xiàn):
[1]智能遙控技術(shù)的研究與實(shí)現(xiàn)探微[J].許永樂.廈門科技.2013(04)