
1、介绍
这次将介绍红外信号发射模块,事实上,它们在我们的日常生活中发挥着重要的作用。现在这样一种设备被广泛应用于许多家用电器中,如空调、电视、DVD 等,它是基于无线遥感的,也是一种遥控,有必要研究其原理和如何使用。红外发射管和红外接收管是直接将电能转化为近红外光的器件,属于二极管类,红外发射二极管发出的是调制后信号。
2、原理图
3、模块参数
引脚名称 | 描述 |
|---|---|
G | GND(电源输入负极) |
V | VCC(电源输入正极) |
S | 数字信号引脚 |
供电电压:3.3V / 5V
连接方式:2.54mm排针
安装方式:双螺丝固定
4、电路板尺寸

5、Arduino IDE示例程序
注意:程序上传时如果提示库文件报错,请先导入库文件!
Arduino IDE 库文件下载及导入教程:点击查看
示例程序(UNO开发板):
1.红外信号发送模块程序(相当于红外遥控器)
#define IR_SEND_PIN 3
#include <IRremote.h>
IRsend irsend;
void setup(){
// 启动发送,并指定引脚;开启Arduino主板L灯反馈;
IrSender.begin(IR_SEND_PIN, DISABLE_LED_FEEDBACK);
pinMode(8, INPUT);
}
void loop(){
// 定义红外发射管脚.
if (!digitalRead(8)) {
while (!digitalRead(8)) {
delay(10);
}
// 发送红外编码值
IrSender.sendNEC(0xFF00,0x45,0 );
}
}2.红外信号接收模块程序
#include <IRremote.h>
volatile int a;
const String IR_PROTOCOL_TYPE[] = {
"UNKNOWN",
"PULSE_DISTANCE",
"PULSE_WIDTH",
"DENON",
"DISH",
"JVC",
"LG",
"LG2",
"NEC",
"PANASONIC",
"KASEIKYO",
"KASEIKYO_JVC",
"KASEIKYO_DENON",
"KASEIKYO_SHARP",
"KASEIKYO_MITSUBISHI",
"RC5",
"RC6",
"SAMSUNG",
"SHARP",
"SONY",
"ONKYO",
"APPLE",
"BOSEWAVE",
"LEGO_PF",
"MAGIQUEST",
"WHYNTER"
};
IRrecv irrecv_11(11);
void setup(){
a = 0;
Serial.begin(9600);
pinMode(5, OUTPUT);
irrecv_11.enableIRIn();
}
void loop(){
if (irrecv_11.decode()) {
struct IRData *pIrData = &irrecv_11.decodedIRData;
long ir_item = pIrData->decodedRawData;
String irProtocol = IR_PROTOCOL_TYPE[pIrData->protocol];
Serial.print("IR TYPE:" + irProtocol + "\tVALUE:");
Serial.println(ir_item, HEX);
irrecv_11.resume();
Serial.println(ir_item,HEX);
//按下另一块控制板“D8”按键编码值:BA45FF00。控制开关灯。
if (0xBA45FF00 == ir_item && a == 0) {
digitalWrite(5,HIGH);
a = 1;
} else if (0xBA45FF00 == ir_item && a == 1) {
digitalWrite(5,LOW);
a = 0;
}
} else {
}
}6、ESP32 Python 示例(适用于Mixly IDE /米思齐)
开发板选择 Python ESP32 【ESP32 Generic(4MB)】切换为代码模式上传
注意:程序上传时如果提示库文件报错,请先导入库文件!
米思齐(Mixly)IDE ESP32库文件下载及导入教程:点击查看
示例程序(ESP32-Python):
1.红外信号发送模块程序(相当于红外遥控器)
import machine
import irremote
import time
pin13 = machine.Pin(13, machine.Pin.IN)
ir_tx = irremote.NEC_TX(4,False,100)
while True:
if not pin13.value():
while not pin13.value():
time.sleep_ms(10)
ir_tx.transmit(0x45,0xff00,0)2.红外信号接收模块程序
import machine
import irremote
pin15 = machine.Pin(15, machine.Pin.OUT)
value = 0
Mode = 0
ir_rx = irremote.NEC_RX(14,8)
while True:
if ir_rx.any():
value = hex(ir_rx.code[2])
if value == hex(0xba45ff00):
Mode = 1 - Mode
value = 0
if Mode == 0:
pin15.value(0)
if Mode == 1:
pin15.value(1)7、米思齐 Mixly 示例程序(图形化语言)
示例程序(UNO开发板):点击下载
注意:程序上传时如果提示库文件报错,请先导入库文件!
米思齐(Mixly)IDE Arduino库文件下载及导入教程:点击查看
1.红外信号发送模块程序(相当于红外遥控器)

2.红外信号接收模块程序

示例程序(ESP32开发板):点击下载
注意:程序上传时如果提示库文件报错,请先导入库文件!
米思齐(Mixly)IDE ESP32库文件下载及导入教程:点击查看
1.红外信号发送模块程序(相当于红外遥控器)

2.红外信号接收模块程序

8、测试环境搭建
Arduino UNO 测试环境搭建
准备配件:
HELLO STEM UNO R3 PRO 开发板 *2
USB type-c 数据线 *2
LED灯模块(HS-F08A)*1
红外信号发送模块(HS-S29A)*1
按键开关模块(HS-KEY1B)*1
红外接收模块(HS-S23A)*1
1P母对母杜邦线 *12条 或 3P母对母杜邦线 *4条
电路接线图:


ESP32 python 测试环境搭建
准备配件:
ESP32EA MOC开发板 *2
ESP32-EXP1扩展板 *2
USB type-c 数据线 *2
LED灯模块(HS-F08A)*1
红外信号发送模块(HS-S29A)*1
按键开关模块(HS-KEY1B)*1
红外接收模块(HS-S23A)*1
PH2.0 双头端子线 *4条
电路接线图:待更新...
9、视频教程
视频教程:点击查看
10、测试结果
Arduino UNO 测试结果:
器件连接好线之后,将上述程序烧录到Arduino UNO 开发板之后,再将红外信号发送实验按照文档描述接线 ,并用另一块Arduino UNO 开发板烧录红外接收程序,上电就可以看到发射和接收的效果。

ESP32 测试结果:
待更新...