Arduino使用红外收发模块

目录

 Arduino UNO连接红外发射模块:

 Arduino D1连接红外接收模块:


 

有一个Arduini UNO板子和一个Arduino D1板子,我想通过红外发射模块和红外接收模块让他们进行通信。

 

先看结果:

 Arduino UNO连接红外发射模块:

发射模块引脚连接到 Arduino UNO说明
GNDGND
VCC(有些模块有)5V电源
SIG / OUTD3(推荐)发射控制信号(必须是支持定时器的引脚)
#define IR_SEND_PIN 3  // 红外发射引脚,必须在 include 之前定义
#include <IRremote.h>

void setup() {
  Serial.begin(9600);
  IrSender.begin();  // 使用默认引脚(IR_SEND_PIN)初始化
  Serial.println("Ready to send IR signal...");
}

void loop() {
  Serial.println("Sending IR signal: 0x45 (NEC)");
  IrSender.sendNEC(0xFF00, 0x45);  // 发射 NEC 协议信号
  delay(5000);  // 每 5 秒发射一次
}

 注意:这里使用arduino ide编译上传时候要选择对应的板子

 Arduino D1连接红外接收模块:

红外接收模块引脚连接到 D1 Mini (ESP8266)
VCC3.3V(注意不是 5V)
GNDGND
OUTD5(也就是 GPIO14)
#include <IRrecv.h>
#include <IRremoteESP8266.h>
#include <IRutils.h>

// 接收引脚,D5 对应 GPIO14
const uint16_t kRecvPin = 14;

IRrecv irrecv(kRecvPin);
decode_results results;

void setup() {
  Serial.begin(115200);
  irrecv.enableIRIn();  // 启动红外接收
  Serial.println("IR Receiver Ready (ESP8266 D1)");
}

void loop() {
  if (irrecv.decode(&results)) {
    // 打印原始调试信息(protocol, address, command, rawdata)
    Serial.println(resultToHumanReadableBasic(&results));

    // 如果需要原始脉冲数据也可用:
    // Serial.println(resultToTimingInfo(&results));
    // Serial.println(resultToSourceCode(&results));

    irrecv.resume();  // 接收下一个信号
  }
}

 注意:这里使用arduino ide编译上传时候要选择对应的板子

最后把Aeduino D1板子,也就是连接了红外线接收模块的板子哟个数据线连接到电脑,打开串口监视器就能看见获取的数据了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值