|
|
(未顯示1個(gè)用戶(hù)的2個(gè)中間版本) |
第5行: |
第5行: |
| | | |
| ==規(guī)格參數(shù) == | | ==規(guī)格參數(shù) == |
? | # CR2025環(huán)保紐扣電池,容量160mah
| + | ===紅外發(fā)射模塊=== |
? | # 發(fā)射距離:8m以上(具體和周?chē)h(huán)境、接收端的靈敏度等因素有關(guān))
| + | * 供電電壓:5V |
? | # 有效角度:60度
| + | * 工作環(huán)境:-25~+85℃ |
? | # 面貼材料:0.125mmPET,有效壽命2萬(wàn)次。
| + | * 儲(chǔ)存溫度:-30~+100 ℃ |
? | # 品質(zhì)穩(wěn)定,性?xún)r(jià)比高
| + | * 波長(zhǎng):940nm |
? | # 靜態(tài)電流3-5uA,動(dòng)態(tài)電流3-5mA。
| + | * 模塊尺寸:13.7mm×27.8mm |
? | | + | * 模塊重量:1g |
| + | * 信號(hào)類(lèi)型:數(shù)字信號(hào) |
| + | * 紅外中心波長(zhǎng):約850nm-940nm |
| + | * 紅外發(fā)射角:約20度 |
| + | * 紅外發(fā)射距離:約1.3米 (5V 38Khz) |
| + | ===紅外接收模塊=== |
| + | ==規(guī)格參數(shù)== |
| + | * 供電電壓: 5V |
| + | * 工作環(huán)境: -25~+85℃ |
| + | * 儲(chǔ)存溫度: -30~+100 ℃ |
| + | * 接收頻率: 38KHz |
| + | * 模塊尺寸: 13.7mm×27.8mm |
| + | * 模塊重量: 2g |
| ==產(chǎn)品清單== | | ==產(chǎn)品清單== |
? | # 紅外發(fā)射模塊*1個(gè)
| + | * 紅外發(fā)射模塊*1個(gè) |
? | # 紅外接收模塊*1個(gè)
| + | * 紅外接收模塊*1個(gè) |
? | # 3P傳感器連接線(xiàn)*2個(gè)
| + | * 3P傳感器連接線(xiàn)*2個(gè) |
? | | + | ==相應(yīng)產(chǎn)品資料== |
? | ==使用方法== | + | ===紅外發(fā)射模塊=== |
? | * 什么是紅外接收頭?
| + | [http://www.gharee.com/wiki/index.php?title=(SKU:RB-03T004)%E7%BA%A2%E5%A4%96%E5%8F%91%E5%B0%84%E6%A8%A1%E5%9D%97 紅外發(fā)射模塊相關(guān)資料及使用方法介紹]<br/> |
? | 紅外遙控器發(fā)出的信號(hào)是一連串的二進(jìn)制脈沖碼 為了使其在無(wú)線(xiàn)傳輸過(guò)程中免受其他紅外信號(hào)的干擾,通常都是先將其調(diào)制在特定的載波頻率上,然后再經(jīng)紅外發(fā)射二極管發(fā)射出去,而紅外線(xiàn)接收裝置則要濾除其他雜波,只接收該特定頻率的信號(hào)并將其還原成二進(jìn)制脈沖碼,也就是解調(diào).
| + | ===紅外接收模塊=== |
? | * 工作原理
| + | [http://www.alsrobot.com.cn/wiki/index.php?title=(SKU:RB-03T005)%E7%BA%A2%E5%A4%96%E6%8E%A5%E6%94%B6%E6%A8%A1%E5%9D%97#.E4.BA.A7.E5.93.81.E7.9B.B8.E5.85.B3.E6.8E.A8.E8.8D.90 紅外接收模塊相關(guān)資料及使用方法介紹]<br/> |
? | 內(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í)別電路。
| + | ==視頻演示== |
? | * 紅外接收頭的引腳與連線(xiàn)
| + | [[File:hong wai wu xian01.png|400px|左|link=http://v.youku.com/v_show/id_XODc4NDg2NDYw.html?from=y1.7-2]] |
? | D為數(shù)據(jù)輸出
| + | [[File:hong wai yan se 01.png|400px|居中|link=http://v.youku.com/v_show/id_XODc4NDc4MTQw.html?from=y1.7-2]] |
? | GND為電源地
| + | <br/> |
? | VCC為電源正
| + | ==產(chǎn)品相關(guān)推薦== |
? | ==紅外遙控接收傳感器的測(cè)試 == | + | [[文件:erweima.png|230px|無(wú)框|右]] |
? | 我們使用 Arduino 控制器來(lái)做個(gè)測(cè)試,要用到硬件設(shè)備如下:
| + | ===產(chǎn)品購(gòu)買(mǎi)地址=== |
? | # Arduino 控制器×1
| + | [http://www.gharee.com/goods-151.html 紅外發(fā)射接收套件]<br/> |
? | # Arduino LCD1602 字符液晶擴(kuò)展板×1
| + | ===周邊產(chǎn)品推薦=== |
? | # 紅外遙控接收傳感器模塊×1
| + | [http://www.gharee.com/goods-151.html 紅外接收遙控套裝]<br/> |
? | # 蜂鳴器發(fā)聲模塊×1
| + | ===相關(guān)問(wèn)題解答=== |
? | # 超薄紅外遙控器×1
| + | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=2617&fromuid=10780 紅外接收發(fā)射套裝的編碼解碼技術(shù)問(wèn)題]<br/> |
? | # 通用 3P 傳感器連接線(xiàn)×2
| + | ===相關(guān)學(xué)習(xí)資料=== |
? | # USB 數(shù)據(jù)通信線(xiàn)×1
| + | [http://v.youku.com/v_show/id_XODc4NDc4MTQw.html?from=y1.7-2 視頻: 紅外無(wú)線(xiàn)發(fā)射接收之顏色識(shí)別系統(tǒng)]<br/> |
? | ==紅外遙控實(shí)驗(yàn)==
| + | [http://v.youku.com/v_show/id_XODc4NDg2NDYw.html?from=y1.7-2 視頻: 紅外無(wú)線(xiàn)傳輸之旋轉(zhuǎn)電位計(jì)控制LED燈]<br/> |
? | # 實(shí)驗(yàn)器件 紅外遙控器 1個(gè) IR Receiver Module 1個(gè) 數(shù)字傳感器連接線(xiàn) 1根
| + | [http://www.makerspace.cn/portal.php 奧松機(jī)器人技術(shù)論壇]<br/> |
? | # 實(shí)驗(yàn)原理 要想對(duì)某一遙控器進(jìn)行解碼必須要了解該遙控器的編碼方式,這就叫知己知彼,百戰(zhàn)不殆 。本產(chǎn)品使用的遙控器的編碼方式為:NEC協(xié)議。下面就介紹一下NEC協(xié)議:
| + | |
? | ?NEC協(xié)議介紹:
| + | |
? | 特點(diǎn):
| + | |
? | (1)8位地址位,8位命令位<br/>
| + | |
? | (2)為了可靠性地址位和命令位被傳輸兩次<br/>
| + | |
? | (3)脈沖位置調(diào)制<br/>
| + | |
? | (4)載波頻率38khz<br/>
| + | |
? | (5)每一位的時(shí)間為1.125ms或2.25ms <br/>
| + | |
? | ?邏輯0和1的定義如下圖:
| + | |
? | [[文件:hongwai1.jpg|500px|有框|居中]] | + | |
? | 協(xié)議如下:<br/>
| + | |
? | ?按鍵按下立刻松開(kāi)的發(fā)射脈沖:
| + | |
? | [[文件:hongwai2.jpg|500px|有框|居中]] | + | |
? | 上面的圖片顯示了NEC的協(xié)議典型的脈沖序列。注意:這是首先發(fā)送LSB(最低位)的協(xié)議。在上面的脈沖傳輸?shù)牡刂窞?x59命令為0x16。一個(gè)消息是由一個(gè)9ms的高電平開(kāi)始,隨后有一個(gè)4.5ms的低電平, (這兩段電平組成引導(dǎo)碼)然后由地址碼和命令碼。地址和命令傳輸兩次。第二次所有位都取反,可用于對(duì)所收到的消息中的確認(rèn)使用??倐鬏敃r(shí)間是恒定的,因?yàn)槊恳稽c(diǎn)與它取反長(zhǎng)度重復(fù)。如果你不感興趣, 你可以忽略這個(gè)可靠性取反,也可以擴(kuò)大地址和命令,以每16位!<br/>
| + | |
? | ?按鍵按下一段時(shí)間才松開(kāi)的發(fā)射脈沖:<br/>
| + | |
? | [[文件:hongwai3.jpg|500px|有框|居中]] | + | |
? | 一個(gè)命令發(fā)送一次,即使在遙控器上的按鍵仍然按下。當(dāng)按鍵一直按下時(shí),第一個(gè)110ms的脈沖與上圖一樣,之后每110ms重復(fù)代碼傳輸一次。這個(gè)重復(fù)代碼是由一個(gè)9ms的高電平脈沖和一個(gè)2.25ms低電平和560μs的高電平組成。<br/>
| + | |
? | ?重復(fù)脈沖<br/>
| + | |
? | [[文件:hongwai4.jpg|500px|有框|居中]] | + | |
? | 注意:脈沖波形進(jìn)入一體化接收頭以后,因?yàn)橐惑w化接收頭里要進(jìn)行解碼、信號(hào)放大和整形,故要注意在沒(méi)有紅外信號(hào)時(shí),其輸出端為高電平,有信號(hào)時(shí)為低電平,故其輸出信號(hào)電平正好和發(fā)射端相反。接收端脈沖大家可以通過(guò)示波器看到,結(jié)合看到的波形理解程序。<br/>
| + | |
? | ?本實(shí)驗(yàn)編程思想<br/>
| + | |
? | 根據(jù)NEC編碼的特點(diǎn)和接收端的波形,本實(shí)驗(yàn)將接收端的波形分成四部分:引導(dǎo)碼(9ms和4.5ms的脈沖)、地址碼16位(包括8位的地址位和8位的地址的取反)、命令碼16位(包括8位命令位和8位命令位的取反)、重復(fù)碼(9ms、2.25ms、560us脈沖組成)。 利用定時(shí)器對(duì)接收到的波形的高電平段和低電平段進(jìn)行測(cè)量,根據(jù)測(cè)量到的時(shí)間來(lái)區(qū)分:邏輯“0”、邏輯“1”、引導(dǎo)脈沖、重復(fù)脈沖。引導(dǎo)碼和地址碼只要判斷是正確的脈沖即可,不用存儲(chǔ),但是命令碼必須存儲(chǔ),因?yàn)槊總€(gè)按鍵的命令碼都不同, 根據(jù)命令碼來(lái)執(zhí)行相應(yīng)的動(dòng)作。設(shè)置遙控器上的幾個(gè)按鍵VOL+:控制LED燈亮的;VOL-:作為控制蜂鳴器響;
| + | |
? | ==實(shí)驗(yàn)代碼== | + | |
? | 程序功能:對(duì)遙控器發(fā)射出來(lái)的編碼脈沖進(jìn)行解碼,根據(jù)解碼結(jié)果執(zhí)行相應(yīng)的動(dòng)作。按下前進(jìn)鍵紅燈亮,松開(kāi)紅燈滅停止;按下后退鍵蜂鳴器響,松開(kāi)蜂鳴器停止響;這樣大家就可以用遙控器遙控你的器件了,讓它聽(tīng)你的指揮。其它按鍵的譯碼方式與這幾個(gè)鍵一樣,只要大家用示波器測(cè)出它們各自的波形,了解各自的命令碼,在執(zhí)行譯碼結(jié)果的函數(shù)中寫(xiě)上對(duì)應(yīng)的命令碼和要執(zhí)行的動(dòng)作即可。
| + | |
? | <pre style='color:blue'>
| + | |
? | #define BUZZER 10//蜂鳴器
| + | |
? | #define LED_RED 11//紅燈
| + | |
? | #define IR_IN 8 //紅外接收
| + | |
? | int Pulse_Width=0;//存儲(chǔ)脈寬
| + | |
? | int ir_code=0x00;//命令值
| + | |
? | void timer1_init(void)//定時(shí)器初始化函數(shù)
| + | |
? | {
| + | |
? | TCCR1A = 0X00;
| + | |
? | TCCR1B = 0X05;//給定時(shí)器時(shí)鐘源
| + | |
? | TCCR1C = 0X00; TCNT1 = 0X00;
| + | |
? | TIMSK1 = 0X00; //禁止定時(shí)器溢出中斷
| + | |
? | }
| + | |
? | void remote_deal(void)//執(zhí)行譯碼結(jié)果函數(shù)
| + | |
? | {
| + | |
? | switch(ir_code)
| + | |
? | {
| + | |
? | case 0xff00://停止
| + | |
? | digitalWrite(LED_RED,LOW);//紅燈不亮
| + | |
? | digitalWrite(BUZZER,LOW);//蜂鳴器不響
| + | |
? | break; case 0xfe01://VOL+
| + | |
? | digitalWrite(LED_RED,HIGH);//紅燈亮
| + | |
? | break; case 0xf609://VOL-
| + | |
? | digitalWrite(BUZZER,HIGH);//蜂鳴器響
| + | |
? | break;
| + | |
? | }
| + | |
? | }
| + | |
? | char logic_value()//判斷邏輯值“0”和“1”子函數(shù)
| + | |
? | {
| + | |
? | while(!(digitalRead(8))); //低等待
| + | |
? | Pulse_Width=TCNT1;
| + | |
? | TCNT1=0;
| + | |
? | if(Pulse_Width>=7&&Pulse_Width<=10)//低電平560us
| + | |
? | {
| + | |
? | while(digitalRead(8));//是高就等待
| + | |
? | Pulse_Width=TCNT1;
| + | |
? | TCNT1=0;
| + | |
? | if(Pulse_Width>=7&&Pulse_Width<=10)//接著高電平560us
| + | |
? | return 0;
| + | |
? | else if(Pulse_Width>=25&&Pulse_Width<=27) //接著高電平1.7ms
| + | |
? | return 1;
| + | |
? | }
| + | |
? | return -1;
| + | |
? | }
| + | |
? | void pulse_deal()//接收地址碼和命令碼脈沖函數(shù)
| + | |
? | {
| + | |
? | int i; //執(zhí)行8個(gè)0 for(i=0; i<8; i++)
| + | |
? | {
| + | |
? | if(logic_value() != 0) //不是0
| + | |
? | return;
| + | |
? | }
| + | |
? | //執(zhí)行6個(gè)1 for(i=0; i<6; i++)
| + | |
? | {
| + | |
? | if(logic_value()!= 1) //不是1
| + | |
? | return;
| + | |
? | }
| + | |
? | //執(zhí)行1個(gè)0
| + | |
? | if(logic_value()!= 0) //不是0
| + | |
? | return;
| + | |
? | //執(zhí)行1個(gè)1
| + | |
? | if(logic_value()!= 1) //不是1
| + | |
? | return;
| + | |
? | //解析遙控器編碼中的command指令
| + | |
? | ir_code=0x00;//清零
| + | |
? | for(i=0; i<16;i++ )
| + | |
? | {
| + | |
? | if(logic_value() == 1)
| + | |
? | {
| + | |
? | ir_code |=(1<<i);
| + | |
? | }
| + | |
? | }
| + | |
? | }
| + | |
? | void remote_decode(void)//譯碼函數(shù)
| + | |
? | {
| + | |
? | TCNT1=0X00;
| + | |
? | while(digitalRead(8))//是高就等待
| + | |
? | {
| + | |
? | if(TCNT1>=1563) //當(dāng)高電平持續(xù)時(shí)間超過(guò)100ms,表明此時(shí)沒(méi)有按鍵按下
| + | |
? | {
| + | |
? | ir_code = 0xff00;
| + | |
? | return;
| + | |
? | }
| + | |
? | }
| + | |
? | //如果高電平持續(xù)時(shí)間不超過(guò)100ms
| + | |
? | TCNT1=0X00;
| + | |
? | while(!(digitalRead(8))); //低等待
| + | |
? | Pulse_Width=TCNT1;
| + | |
? | TCNT1=0;
| + | |
? | if(Pulse_Width>=140&&Pulse_Width<=141)//9ms
| + | |
? | {
| + | |
? | while(digitalRead(8));//是高就等待
| + | |
? | Pulse_Width=TCNT1;
| + | |
? | TCNT1=0;
| + | |
? | if(Pulse_Width>=68&&Pulse_Width<=72)//4.5ms
| + | |
? | {
| + | |
? | pulse_deal();
| + | |
? | return;
| + | |
? | }
| + | |
? | else if(Pulse_Width>=34&&Pulse_Width<=36)//2.25ms
| + | |
? | {
| + | |
? | while(!(digitalRead(8)));//低等待
| + | |
? | Pulse_Width=TCNT1;
| + | |
? | TCNT1=0;
| + | |
? | if(Pulse_Width>=7&&Pulse_Width<=10)//560us
| + | |
? | {
| + | |
? | return;
| + | |
? | }
| + | |
? | }
| + | |
? |
| + | |
? | }
| + | |
? | void setup()
| + | |
? | {
| + | |
? | unsigned char i;
| + | |
? | pinMode(LED_RED,OUTPUT);//設(shè)置與紅燈連接的引腳為輸出模式
| + | |
? | pinMode(BUZZER,OUTPUT);//設(shè)置與蜂鳴器連接的引腳為輸出模式
| + | |
? | pinMode(IR_IN,INPUT);//設(shè)置紅外接收引腳為輸入
| + | |
? | }
| + | |
? | void loop()
| + | |
? | {
| + | |
? | timer1_init();//定時(shí)器初始化
| + | |
? | while(1)
| + | |
? | {
| + | |
? | remote_decode(); //譯碼
| + | |
? | remote_deal(); //執(zhí)行譯碼結(jié)果
| + | |
? | }
| + | |
? | }</pre>
| + | |
? | | + | |
? | 遙控器鍵值附表
| + | |
? | [[文件:QQ20150623151737.png|500px|有框|居中]]
| + | |
? | | + | |
? | ==相關(guān)鏈接==
| + | |
? | 購(gòu)買(mǎi)地址:[http://www.alsrobot.cn/goods-151.html 紅外發(fā)射接收套件]
| + | |
Arduino 紅外無(wú)線(xiàn)遙控套件由Mini超薄紅外遙控器和38KHz紅外接收模塊組成,Mini超薄紅外遙控器具有20個(gè)功能鍵,發(fā)射距離最遠(yuǎn)可達(dá)8米,非常適合在室內(nèi)操控各種設(shè)備。紅外接收模塊可接收標(biāo)準(zhǔn)38KHz調(diào)制的遙控器信號(hào),通過(guò)對(duì)Arduino進(jìn)行編程,即可實(shí)現(xiàn)對(duì)遙控器信號(hào)的解碼操作,從而可制作各種遙控機(jī)器人以及互動(dòng)作品。