arduino/mixly红外发射接收模块

一、资料

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

生成海报
点赞 0

创客@小白

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

arduino/mixly红外发射接收模块

一、资料 http://资料链接:https://pan.baidu.com/s/1idRcrVCxQ5zWLh59EFpi9g 提取码:n8ud 默认波特率9600 串口通信,可以发送也可以接收

【Arduino实验15 红外遥控电风扇】

目录 一、设计目的 二、设计要求 三、设计原理 1.舵机 2.直流电机 3.ULN2003驱动 四、硬件设计 1.舵机 2.直流电机 3.ULN2003驱动 4.红外遥控电风扇 五、软件设计 1.舵机控制程序 2.电

【Arduino实验15 红外遥控电风扇】

目录 一、设计目的 二、设计要求 三、设计原理 1.舵机 2.直流电机 3.ULN2003驱动 四、硬件设计 1.舵机 2.直流电机 3.ULN2003驱动 4.红外遥控电风扇 五、软件设计 1.舵机控制程序 2.电