“(SKU:RB-03T005)紅外接收模塊”的版本間的差異
來自ALSROBOT WiKi
(→?模塊測試) |
(→?例子程序) |
||
(未顯示2個(gè)用戶的10個(gè)中間版本) | |||
第1行: | 第1行: | ||
? | |||
[[文件:12345005.jpg|500px|有框|右]] | [[文件:12345005.jpg|500px|有框|右]] | ||
? | == | + | ==產(chǎn)品概述== |
:IR Receiver Module是一款A(yù)rduino兼容的38KHz紅外線接收模塊,可接收標(biāo)準(zhǔn)38KHz調(diào)制的遙控器信號,通過對Arduino進(jìn)行編程,即可實(shí)現(xiàn)對遙控器信號的解碼操作??墒褂肁rduino制作一款帶學(xué)習(xí)功能的萬能遙控器。 | :IR Receiver Module是一款A(yù)rduino兼容的38KHz紅外線接收模塊,可接收標(biāo)準(zhǔn)38KHz調(diào)制的遙控器信號,通過對Arduino進(jìn)行編程,即可實(shí)現(xiàn)對遙控器信號的解碼操作??墒褂肁rduino制作一款帶學(xué)習(xí)功能的萬能遙控器。 | ||
? | == | + | ==規(guī)格參數(shù)== |
? | + | * 供電電壓: 5V | |
? | + | * 工作環(huán)境: -25~+85℃ | |
? | + | * 儲存溫度: -30~+100 ℃ | |
? | + | * 接收頻率: 38KHz | |
? | + | * 模塊尺寸: 13.7mm×27.8mm | |
? | + | * 模塊重量: 2g | |
+ | |||
==引腳定義== | ==引腳定義== | ||
? | + | 紅外接收傳感器引腳的定義是<br/> | |
* S:輸出信號 | * S:輸出信號 | ||
* +:電源(VCC) | * +:電源(VCC) | ||
* -:地(GND) | * -:地(GND) | ||
? | [[文件: | + | [[文件:hongwaijieshou01.jpg|500px|有框|居中]] |
? | == | + | ===連接示意圖=== |
? | [[文件: | + | [[文件:hongwaijieshoujiexian01.jpg|700px|有框|居中]] |
? | == | + | ==使用方法== |
? | + | ===使用硬件=== | |
? | + | * [http://lifestyle201.com/goods-546.html Carduino UNO R3 控制器] * 2 | |
? | + | * [http://lifestyle201.com/goods-147.html Arduino 傳感器擴(kuò)展板V5.0] * 2 | |
? | + | * [http://lifestyle201.com/goods-155.html 紅外發(fā)射模塊] * 1個(gè) | |
? | + | * [http://lifestyle201.com/goods-157.html 紅外接收模塊] * 1個(gè) | |
? | + | * [http://lifestyle201.com/goods-167.html 電位計(jì)模塊] * 1個(gè) | |
? | + | * [http://lifestyle201.com/goods-133.html LED 發(fā)光模塊] * 1個(gè) | |
+ | * [http://lifestyle201.com/goods-90.html USB 數(shù)據(jù)通信線] * 2個(gè) | ||
[[文件:324325-4.jpg|500px|有框|居中]] | [[文件:324325-4.jpg|500px|有框|居中]] | ||
? | + | ===接線方法=== | |
? | :將發(fā)送部分代碼編譯后下載到作為發(fā)送部分的Arduino里,將接收部分代碼編譯后下載到作為接收部分的Arduino里,就可以在串口助手窗口上顯示接收到的當(dāng)前值(注:串口助手波特率調(diào)到115200 )。Arduino實(shí)驗(yàn)代碼如下。 | + | {|border="1" cellspacing="0" align="center" cellpadding="5" width="400px" |
? | : | + | |- |
? | <pre style='color:blue'>#define ADD 0x00 | + | |align="center"|產(chǎn)品 |
+ | |align="center"|UNO引腳 | ||
+ | |- | ||
+ | |align="center"|紅外發(fā)射模塊 | ||
+ | |align="center"|數(shù)字接口2 | ||
+ | |- | ||
+ | |align="center"|紅外接收模塊 | ||
+ | |align="center"|數(shù)字接口2 | ||
+ | |- | ||
+ | |align="center"|旋轉(zhuǎn)角度電位計(jì) | ||
+ | |align="center"|模擬接口0 | ||
+ | |- | ||
+ | |align="center"|LED模塊 | ||
+ | |align="center"|數(shù)字接口9 | ||
+ | |} | ||
+ | <br> | ||
+ | :將發(fā)送部分代碼編譯后下載到作為發(fā)送部分的Arduino里,將接收部分代碼編譯后下載到作為接收部分的Arduino里,就可以在串口助手窗口上顯示接收到的當(dāng)前值(注:串口助手波特率調(diào)到115200 )。Arduino實(shí)驗(yàn)代碼如下。 | ||
+ | ===例子程序=== | ||
+ | 程序安裝前,需要先進(jìn)行庫文件的安裝,IRremote 庫文件 | ||
+ | |||
+ | 鏈接: https://pan.baidu.com/s/1CWBaxYwmneVpBWZKH3KSDQ?pwd=f9as 提取碼: f9as | ||
+ | ====發(fā)送部分程序==== | ||
+ | <pre style='color:blue'> | ||
+ | #define ADD 0x00 | ||
int IR_S = 2; // 定義數(shù)字口2 為發(fā)射模塊接口 | int IR_S = 2; // 定義數(shù)字口2 為發(fā)射模塊接口 | ||
int a; | int a; | ||
第94行: | 第118行: | ||
} </pre> | } </pre> | ||
:此代碼的功能是從模擬口0 讀取電位計(jì)的值,并通過紅外發(fā)射頭將讀取的數(shù)值發(fā)送出去。 | :此代碼的功能是從模擬口0 讀取電位計(jì)的值,并通過紅外發(fā)射頭將讀取的數(shù)值發(fā)送出去。 | ||
? | + | ====接收部分程序==== | |
? | <pre style='color:blue'>#define IR_LED 2 //IR 接收數(shù)字口2 | + | <pre style='color:blue'> |
+ | #define IR_LED 2 //IR 接收數(shù)字口2 | ||
#define MAX 128 | #define MAX 128 | ||
#define MICRO_STEP 10 | #define MICRO_STEP 10 | ||
第149行: | 第174行: | ||
{IRCOM[i] = IRCOM[i] | 0x80;} | {IRCOM[i] = IRCOM[i] | 0x80;} | ||
} | } | ||
? | z= pulses[i*8+j+1]; | + | z= pulses[i*8+j+1]; //將接收到的脈沖數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制 |
? | + | ||
? | + | ||
? | + | ||
if(z<800) | if(z<800) | ||
w=10000000; //如果Z 小于800 w=10000000 | w=10000000; //如果Z 小于800 w=10000000 | ||
第159行: | 第181行: | ||
f=f>>1; // 將f 右移1 位 | f=f>>1; // 將f 右移1 位 | ||
f=f+w; | f=f+w; | ||
? | |||
} | } | ||
} | } | ||
第168行: | 第189行: | ||
} </pre> | } </pre> | ||
? | + | ===程序效果=== | |
+ | 此代碼的功能是通過紅外接收頭接收發(fā)送部分發(fā)送出的電位計(jì)的值,將讀到的值來控制LED的亮度,并通過串口助手顯示當(dāng)前接收到的值。如下圖所示左側(cè)串口助手(串口號為:117 )顯示的是紅外發(fā)送部分當(dāng)前發(fā)送出的電位計(jì)的值,右側(cè)串口助手(串口號為:88)顯示的是紅外接收部分接收到的數(shù)值。這樣就實(shí)現(xiàn)了通過旋轉(zhuǎn)角度電位計(jì)模塊無線控制接收端的LED亮度。 | ||
[[文件:324325-5.jpg|500px|有框|居中]] | [[文件:324325-5.jpg|500px|有框|居中]] | ||
? | + | ||
+ | ==視頻演示== | ||
+ | [[File:hong wai wu xian01.png|400px|左|link=http://v.youku.com/v_show/id_XODc4NDg2NDYw.html?from=y1.7-2]] | ||
+ | [[File:hong wai yan se 01.png|400px|居中|link=http://v.youku.com/v_show/id_XODc4NDc4MTQw.html?from=y1.7-2]] | ||
+ | <br/> | ||
+ | ==產(chǎn)品相關(guān)推薦== | ||
+ | [[文件:erweima.png|230px|無框|右]] | ||
+ | ===產(chǎn)品購買地址=== | ||
+ | [http://lifestyle201.com/goods.php?id=155 紅外發(fā)射模塊]<br/> | ||
+ | ===周邊產(chǎn)品推薦=== | ||
+ | [http://lifestyle201.com/goods-151.html 紅外接收遙控套裝]<br/> | ||
+ | [http://lifestyle201.com/goods-153.html 紅外接收發(fā)射套裝]<br/> | ||
+ | [http://lifestyle201.com/goods-155.html 紅外發(fā)射模塊]<br/> | ||
+ | ===相關(guān)問題解答=== | ||
+ | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=2617&fromuid=10780 紅外接收發(fā)射套裝的編碼解碼技術(shù)問題]<br/> | ||
+ | ===相關(guān)學(xué)習(xí)資料=== | ||
+ | [http://v.youku.com/v_show/id_XODc4NDc4MTQw.html?from=y1.7-2 視頻: 紅外無線發(fā)射接收之顏色識別系統(tǒng)]<br/> | ||
+ | [http://v.youku.com/v_show/id_XODc4NDg2NDYw.html?from=y1.7-2 視頻: 紅外無線傳輸之旋轉(zhuǎn)電位計(jì)控制LED燈]<br/> | ||
+ | [http://www.makerspace.cn/portal.php 奧松機(jī)器人技術(shù)論壇]<br/> |
2022年4月19日 (二) 15:42的最后版本
目錄 |
產(chǎn)品概述
- IR Receiver Module是一款A(yù)rduino兼容的38KHz紅外線接收模塊,可接收標(biāo)準(zhǔn)38KHz調(diào)制的遙控器信號,通過對Arduino進(jìn)行編程,即可實(shí)現(xiàn)對遙控器信號的解碼操作。可使用Arduino制作一款帶學(xué)習(xí)功能的萬能遙控器。
規(guī)格參數(shù)
- 供電電壓: 5V
- 工作環(huán)境: -25~+85℃
- 儲存溫度: -30~+100 ℃
- 接收頻率: 38KHz
- 模塊尺寸: 13.7mm×27.8mm
- 模塊重量: 2g
引腳定義
紅外接收傳感器引腳的定義是
- S:輸出信號
- +:電源(VCC)
- -:地(GND)
連接示意圖
使用方法
使用硬件
- Carduino UNO R3 控制器 * 2
- Arduino 傳感器擴(kuò)展板V5.0 * 2
- 紅外發(fā)射模塊 * 1個(gè)
- 紅外接收模塊 * 1個(gè)
- 電位計(jì)模塊 * 1個(gè)
- LED 發(fā)光模塊 * 1個(gè)
- USB 數(shù)據(jù)通信線 * 2個(gè)
接線方法
產(chǎn)品 | UNO引腳 |
紅外發(fā)射模塊 | 數(shù)字接口2 |
紅外接收模塊 | 數(shù)字接口2 |
旋轉(zhuǎn)角度電位計(jì) | 模擬接口0 |
LED模塊 | 數(shù)字接口9 |
- 將發(fā)送部分代碼編譯后下載到作為發(fā)送部分的Arduino里,將接收部分代碼編譯后下載到作為接收部分的Arduino里,就可以在串口助手窗口上顯示接收到的當(dāng)前值(注:串口助手波特率調(diào)到115200 )。Arduino實(shí)驗(yàn)代碼如下。
例子程序
程序安裝前,需要先進(jìn)行庫文件的安裝,IRremote 庫文件
鏈接: https://pan.baidu.com/s/1CWBaxYwmneVpBWZKH3KSDQ?pwd=f9as 提取碼: f9as
發(fā)送部分程序
#define ADD 0x00 int IR_S = 2; // 定義數(shù)字口2 為發(fā)射模塊接口 int a; void setup() { pinMode(IR_S, OUTPUT); //定義IR_S為輸出模式 Serial.begin(115200); //定義頻率為115200 } void loop() { uint8_t dat,temp; { a=analogRead(0); // 讀取模擬口0 的值 temp =a/4; Serial.println(temp,DEC ); // 將讀取的數(shù)值打印到串口上 IR_Send38KHZ(280,1);//發(fā)送9ms 的起始碼 IR_Send38KHZ(140,0);//發(fā)送4.5ms 的結(jié)果碼 IR_Sendcode(ADD);//用戶識別碼 dat=~ADD; IR_Sendcode(dat);//用戶識別碼反嗎 IR_Sendcode(temp);// 操作碼 dat=~temp; IR_Sendcode(dat);//操作碼反碼 IR_Send38KHZ(21,1);// 發(fā)送結(jié)束碼 } delay(200); } void IR_Send38KHZ(int x,int y) //產(chǎn)生38KHZ紅外脈沖 { for(int i=0;i<x;i++)//15=386US { if(y==1) { digitalWrite(IR_S,1); delayMicroseconds(9); digitalWrite(IR_S,0); delayMicroseconds(9); } else { digitalWrite(IR_S,0); delayMicroseconds(20); } } } void IR_Sendcode(uint8_t x) { for(int i=0;i<8;i++) { if((x&0x01)==0x01) { IR_Send38KHZ(23,1); IR_Send38KHZ(64,0); } else { IR_Send38KHZ(23,1); IR_Send38KHZ(21,0); } x=x>>1; } }
- 此代碼的功能是從模擬口0 讀取電位計(jì)的值,并通過紅外發(fā)射頭將讀取的數(shù)值發(fā)送出去。
接收部分程序
#define IR_LED 2 //IR 接收數(shù)字口2 #define MAX 128 #define MICRO_STEP 10 #define IDLE_PULSE 4000 unsigned long pulses[MAX]; unsigned char IRCOM[7]; unsigned long z; int w; byte f=B00000000; // 定義f 為位 int n; int ledpin=9; // 定義數(shù)字口9 為LED 模塊接口 void setup() { pinMode(IR_LED, INPUT); Serial.begin(115200); pinMode(ledpin,OUTPUT); //定義ledpin 為輸出模式 } void loop() { if( digitalRead(IR_LED) == LOW) { // 開始接收數(shù)據(jù) int count = 0; int exit = 0; while(!exit) { while( digitalRead(IR_LED) == LOW ) delayMic roseconds(MICRO_STEP); unsigned long start = micros(); int max_high = 0; while( digitalRead(IR_LED) == HIGH ) { delayMic roseconds(MICRO_STEP); max_high += MICRO_STEP; if( max_high > IDLE_PULSE ) { exit = 1; break; } } unsigned long duration = micros() - start; pulses[count++] = duration; } for(int i=3; i<4; i++) { for(int j=0;j<8;j++) { if(pulses[ i*8+j+1] < IDLE_PULSE) { IRCOM[i]=IRCOM [i] >> 1; if((pulses[i*8+j+1])>1000) {IRCOM[i] = IRCOM[i] | 0x80;} } z= pulses[i*8+j+1]; //將接收到的脈沖數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制 if(z<800) w=10000000; //如果Z 小于800 w=10000000 else w=00000000; //如果Z 大于800 w=00000000 f=f>>1; // 將f 右移1 位 f=f+w; } } n=int(f); Serial.print(n);// 將接收到的數(shù)據(jù)打印到串口上 analogWrite(ledpin,n); //將接收到的數(shù)據(jù)寫入ledpin 接口,控制LED 亮度 } }
程序效果
此代碼的功能是通過紅外接收頭接收發(fā)送部分發(fā)送出的電位計(jì)的值,將讀到的值來控制LED的亮度,并通過串口助手顯示當(dāng)前接收到的值。如下圖所示左側(cè)串口助手(串口號為:117 )顯示的是紅外發(fā)送部分當(dāng)前發(fā)送出的電位計(jì)的值,右側(cè)串口助手(串口號為:88)顯示的是紅外接收部分接收到的數(shù)值。這樣就實(shí)現(xiàn)了通過旋轉(zhuǎn)角度電位計(jì)模塊無線控制接收端的LED亮度。
視頻演示
產(chǎn)品相關(guān)推薦
產(chǎn)品購買地址
周邊產(chǎn)品推薦
紅外接收遙控套裝
紅外接收發(fā)射套裝
紅外發(fā)射模塊
相關(guān)問題解答
相關(guān)學(xué)習(xí)資料
視頻: 紅外無線發(fā)射接收之顏色識別系統(tǒng)
視頻: 紅外無線傳輸之旋轉(zhuǎn)電位計(jì)控制LED燈
奧松機(jī)器人技術(shù)論壇