紅外遙控實(shí)驗(yàn)例子_第1頁(yè)
紅外遙控實(shí)驗(yàn)例子_第2頁(yè)
紅外遙控實(shí)驗(yàn)例子_第3頁(yè)
紅外遙控實(shí)驗(yàn)例子_第4頁(yè)
紅外遙控實(shí)驗(yàn)例子_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、紅外遙控 1、紅外接收頭介紹 一、什么是紅外接收頭? 紅外遙控器發(fā)出的信號(hào)是一連串的二進(jìn)制脈沖碼。為了使其在無(wú)線傳輸過(guò)程中免受其他紅外信號(hào)的干擾,通常都是先將其調(diào)制在特定的載波頻率上,然后再經(jīng)紅外發(fā)射二極管發(fā)射出去,而紅外線接收裝置則要濾除其他雜波,叧接收該特定頻率的信號(hào)并將其還原成二進(jìn)制脈沖碼,也就是解調(diào). 二、工作原理 內(nèi)置接收管將紅外發(fā)射管發(fā)射出來(lái)癿光信號(hào)轉(zhuǎn)換為微弱的電信號(hào),此信號(hào)經(jīng)由IC內(nèi)部放大器進(jìn)行放大,然后通過(guò)自動(dòng)增益控制、帶通濾波、解調(diào)變、波形整形后還原為遙控器發(fā)射出的原始編碼,經(jīng)由接收頭的信號(hào)輸出腳輸入到電器上的編碼識(shí)別電路。 三、紅外接收頭的引腳與連線 紅外接收頭有三個(gè)引腳如

2、下圖: 用的時(shí)候?qū)OUT接到模擬口,GND接到實(shí)驗(yàn)板上的GND,VCC接到實(shí)驗(yàn)板上的+5v。紅外遙控實(shí)驗(yàn) 1、實(shí)驗(yàn)器件 n 紅外遙控器:1個(gè) n 紅外接收頭:1個(gè) n LED燈:6個(gè)n220電阻:6個(gè) n 多彩面包線:若干 2、實(shí)驗(yàn)連線 首先將板子連接好;接著將紅外接收頭按照上述方法接好,將VOUT接到數(shù)字11口引腳,將LED燈通過(guò)電阻接到數(shù)字引腳2,3,4,5,6,7。返樣就完成了電路部分的連接。 3、實(shí)驗(yàn)原理 要想對(duì)某一遙控器進(jìn)行解碼必須要了解該遙控器的編碼方式。本產(chǎn)品使用的控器的碼方式為:NEC協(xié)議。下面就介紹一下NEC協(xié)議: ·NEC協(xié)議介紹:特點(diǎn):(1)8位地址位,8位命

3、令位 (2)為了可靠性地址位和命令位被傳輸兩次(3)脈沖位置調(diào)制 (4)載波頻率38khz (5)每一位的時(shí)間為1.125ms-2.25ms ·邏輯 0和1的定義如下圖協(xié)議如下:·按鍵按下立刻松開的發(fā)射脈沖:上面圖片顯示了NEC的協(xié)議典型的脈沖序列。注意:這首先發(fā)送LSB(最低位)的協(xié)議。在上面癿脈沖傳輸?shù)牡刂窞?x59命令為0x16。一個(gè)消息是由一個(gè)9ms的高電平開始,隨后有一個(gè)4.5ms的低電平,(返兩段電平組成引尋碼)然后由地址碼和命令碼。地址和命令傳輸兩次。第二次所有位都取反,可用于對(duì)所收到的消息中的確認(rèn)使用??倐鬏敃r(shí)間是恒定的,因?yàn)槊恳稽c(diǎn)與它取反長(zhǎng)度重復(fù)。如果你不

4、感興趣,你可以忽略這個(gè)可靠性取反,也可以擴(kuò)大地址和命令,以每16位!按鍵按下一段時(shí)間才松開的發(fā)射脈沖:一個(gè)命令發(fā)送一次,即使在遙控器上的按鍵仍然按下。當(dāng)按鍵一直按下時(shí),第一個(gè)110ms癿脈沖與上圖一樣,之后每110ms重復(fù)代碼傳輸一次。返個(gè)重復(fù)代碼是由一個(gè)9ms的高電平脈沖和一個(gè)2.25ms低電平和560s癿高電平組成。·重復(fù)脈沖注意:脈沖波形進(jìn)入一體化接收頭以后,因?yàn)橐惑w化接收頭里要迕解碼、信號(hào)放大和整形,故要注意:在沒有紅外信號(hào)時(shí),其輸出端為高電平,有信號(hào)時(shí)為低電平,故其輸出信號(hào)電平正好和發(fā)射端相反。接收端脈沖大家可以通過(guò)示波器看到,結(jié)合看到的波形理解程序。遙控器鍵值: 一排一

5、= 0x00FFA25D; 一排二 = 0x00FFE01F; 一排三 =0x00FF629D; 二排一 = 0x00FFA857; 二排二 = 0x00FFE21D; 二排三 = 0x00FF906F; 三排一 = 0x00FF22DD; 三排二 = 0x00FF6897; 三排三 = 0x00FF02FD; 四排一 = 0x00FF9867; 四排二 = 0x00FFC23D; 四排三= 0x00FFB047;程序代碼#include <IRremote.h>int RECV_PIN = 11;int LED1 = 2;int LED2 = 3;int LED3 = 4;int

6、 LED4 = 5;int LED5 = 6;int LED6 = 7;long on1 = 0x00FFA25D;long off1 = 0x00FFE01F;long on2 = 0x00FF629D;long off2 = 0x00FFA857;long on3 = 0x00FFE21D;long off3 = 0x00FF906F;long on4 = 0x00FF22DD;long off4 = 0x00FF6897;long on5 = 0x00FF02FD;long off5 = 0x00FF9867;long on6 = 0x00FFC23D;long off6 = 0x00F

7、FB047;IRrecv irrecv(RECV_PIN);decode_results results;/ Dumps out the decode_results structure./ Call this after IRrecv:decode()/ void * to work around compiler issue/void dump(void *v) / decode_results *results = (decode_results *)void dump(decode_results *results) int count = results->rawlen; if

8、 (results->decode_type = UNKNOWN) Serial.println("Could not decode message"); else if (results->decode_type = NEC) Serial.print("Decoded NEC: "); else if (results->decode_type = SONY) Serial.print("Decoded SONY: "); else if (results->decode_type = RC5) Seria

9、l.print("Decoded RC5: "); else if (results->decode_type = RC6) Serial.print("Decoded RC6: "); Serial.print(results->value, HEX); Serial.print(" ("); Serial.print(results->bits, DEC); Serial.println(" bits)"); Serial.print("Raw ("); Serial.pr

10、int(count, DEC); Serial.print("): "); for (int i = 0; i < count; i+) if (i % 2) = 1) Serial.print(results->rawbufi*USECPERTICK, DEC); else Serial.print(-(int)results->rawbufi*USECPERTICK, DEC); Serial.print(" "); Serial.println(""); void setup() pinMode(RECV_PI

11、N, INPUT); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); pinMode(LED4, OUTPUT); pinMode(LED5, OUTPUT); pinMode(LED6, OUTPUT); pinMode(13, OUTPUT); Serial.begin(9600); irrecv.enableIRIn(); / Start the receiver int on = 0;unsigned long last = millis();void loop() if (irrecv.deco

12、de(&results) / If it's been at least 1/4 second since the last / IR received, toggle the relay if (millis() - last > 250) on = !on;/ digitalWrite(8, on ? HIGH : LOW); digitalWrite(13, on ? HIGH : LOW); dump(&results); if (results.value = on1 ) digitalWrite(LED1, HIGH); if (results.val

13、ue = off1 ) digitalWrite(LED1, LOW); if (results.value = on2 ) digitalWrite(LED2, HIGH); if (results.value = off2 ) digitalWrite(LED2, LOW); if (results.value = on3 ) digitalWrite(LED3, HIGH); if (results.value = off3 ) digitalWrite(LED3, LOW); if (results.value = on4 ) digitalWrite(LED4, HIGH); if (results.value = off4 ) digitalWrite(LED4, LOW); if (results.value = on5 ) digitalWrite(LED5, HIGH); if (r

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論