Arduino使用红外收发模块
目录
Arduino UNO连接红外发射模块:
Arduino D1连接红外接收模块:
有一个Arduini UNO板子和一个Arduino D1板子,我想通过红外发射模块和红外接收模块让他们进行通信。
先看结果:
Arduino UNO连接红外发射模块:
发射模块引脚 | 连接到 Arduino UNO | 说明 |
---|---|---|
GND | GND | 地 |
VCC(有些模块有) | 5V | 电源 |
SIG / OUT | D3(推荐) | 发射控制信号(必须是支持定时器的引脚) |
#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) |
---|---|
VCC | 3.3V(注意不是 5V) |
GND | GND |
OUT | D5(也就是 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板子,也就是连接了红外线接收模块的板子哟个数据线连接到电脑,打开串口监视器就能看见获取的数据了。