一、资料
http://资料链接:https://pan.baidu.com/s/1idRcrVCxQ5zWLh59EFpi9g 提取码:n8ud
默认波特率9600
串口通信,可以发送也可以接收
发送格式
二、器材
红外解码模块
红外接收模块
arduino uno*2
三、接线
红外接收模块 | arduino uno1 |
VCC | 5V |
GND | GND |
S | D6 |
红外解码模块 | arduino uno2 |
VCC | 5V |
GND | GND |
RX | D3 |
TX | D2 |
四、程序
这里的程序效果是红外发射端发射编码A,延时1S再发送编码B,再延时1S依次循环,
红外接收端接收红外发射端发射的编码,如果是编码A,D13灯就亮,如果是编码B,D13灯就灭
注意的是比如红外发射端要发射的值是 00 FF 45,接收端接收到的就不是00 FF 45,而是0xFFA25D,这个之间有一个对应关系,可以打印接收的值来查看
发射端程序
mixly程序
arduino程序
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2,3);
unsigned char kai[5]={0xA1,0xF1,0x00,0xFF,0X45};
unsigned char guan[5]={0xA1,0xF1,0x00,0xFF,0X46};
void setup(){
mySerial.begin(9600);
}
void loop(){
mySerial.write(kai,5);
delay(1000);
mySerial.write(guan,5);
delay(1000);
}
接收端程序
mixly程序
arduino程序
#include <IRremote.h>
long ir_item;
IRrecv irrecv_6(6);
decode_results results_6;
void setup(){
Serial.begin(9600);
pinMode(13, OUTPUT);
irrecv_6.enableIRIn();
}
void loop(){
if (irrecv_6.decode(&results_6)) {
ir_item=results_6.value;
String type="UNKNOWN";
String typelist[18]={"UNUSED", "RC5", "RC6", "NEC", "SONY", "PANASONIC", "JVC", "SAMSUNG", "WHYNTER", "AIWA_RC_T501", "LG", "SANYO", "MITSUBISHI", "DISH", "SHARP", "DENON", "PRONTO", "LEGO_PF"};
if(results_6.decode_type>=1&&results_6.decode_type<=17){
type=typelist[results_6.decode_type];
}
Serial.println("IR TYPE:"+type+" ");
Serial.println(ir_item,HEX);
if (ir_item == 0xFFA25D) {
digitalWrite(13,HIGH);
}
if (ir_item == 0xFF629D) {
digitalWrite(13,LOW);
}
irrecv_6.resume();
} else {
}
}
五、效果
红外接收端的D13LED间隔1S亮灭
版权声明:本文为CSDN博主「创客@小白」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/moshanghuaw/article/details/122122795
一、资料
http://资料链接:https://pan.baidu.com/s/1idRcrVCxQ5zWLh59EFpi9g 提取码:n8ud
默认波特率9600
串口通信,可以发送也可以接收
发送格式
二、器材
红外解码模块
红外接收模块
arduino uno*2
三、接线
红外接收模块 | arduino uno1 |
VCC | 5V |
GND | GND |
S | D6 |
红外解码模块 | arduino uno2 |
VCC | 5V |
GND | GND |
RX | D3 |
TX | D2 |
四、程序
这里的程序效果是红外发射端发射编码A,延时1S再发送编码B,再延时1S依次循环,
红外接收端接收红外发射端发射的编码,如果是编码A,D13灯就亮,如果是编码B,D13灯就灭
注意的是比如红外发射端要发射的值是 00 FF 45,接收端接收到的就不是00 FF 45,而是0xFFA25D,这个之间有一个对应关系,可以打印接收的值来查看
发射端程序
mixly程序
arduino程序
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2,3);
unsigned char kai[5]={0xA1,0xF1,0x00,0xFF,0X45};
unsigned char guan[5]={0xA1,0xF1,0x00,0xFF,0X46};
void setup(){
mySerial.begin(9600);
}
void loop(){
mySerial.write(kai,5);
delay(1000);
mySerial.write(guan,5);
delay(1000);
}
接收端程序
mixly程序
arduino程序
#include <IRremote.h>
long ir_item;
IRrecv irrecv_6(6);
decode_results results_6;
void setup(){
Serial.begin(9600);
pinMode(13, OUTPUT);
irrecv_6.enableIRIn();
}
void loop(){
if (irrecv_6.decode(&results_6)) {
ir_item=results_6.value;
String type="UNKNOWN";
String typelist[18]={"UNUSED", "RC5", "RC6", "NEC", "SONY", "PANASONIC", "JVC", "SAMSUNG", "WHYNTER", "AIWA_RC_T501", "LG", "SANYO", "MITSUBISHI", "DISH", "SHARP", "DENON", "PRONTO", "LEGO_PF"};
if(results_6.decode_type>=1&&results_6.decode_type<=17){
type=typelist[results_6.decode_type];
}
Serial.println("IR TYPE:"+type+" ");
Serial.println(ir_item,HEX);
if (ir_item == 0xFFA25D) {
digitalWrite(13,HIGH);
}
if (ir_item == 0xFF629D) {
digitalWrite(13,LOW);
}
irrecv_6.resume();
} else {
}
}
五、效果
红外接收端的D13LED间隔1S亮灭
版权声明:本文为CSDN博主「创客@小白」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/moshanghuaw/article/details/122122795
暂无评论