利用电视遥控器控制灯与风扇:基于 Arduino 的简易红外控制项目
组件与物料清单
| 组件 | 数量 | 备注 |
|---|---|---|
| IR 接收模块 (TSOP 系列,38kHz) | 1 | 引脚定义可能因型号不同而异 |
| Arduino UNO | 1 | 永久安装可改用裸片 ATmega328P |
| HL-525 继电器模块 (2 路及以上) | 1 | 低电平触发,输入 LOW 闭合继电器 |
所需工具
- 一只电视遥控器(作为红外发射端)
项目原理
利用家中现成的电视遥控器(38kHz 红外载波)配合低成本 TSOP 接收头(约 ¥10),实现沙发上无线控制灯/风扇。TSOP 空闲时输出高电平,检测到 38kHz 红外信号时输出低电平。继电器模块低电平触发,与 TSOP 逻辑天然匹配。


继电器接灯/风扇接线(⚠ 涉及市电,务必断电操作)
继电器三端子:NC(常闭)、COM(公共)、NO(常开)。将火线接入 COM,灯/风扇火线接 NO,通电后继电器吸合即接通回路。

重要安全提示: 继电器模块左侧有 DVcc、Vcc、GND 三针,建议拔除跳帽,给 DVcc 单独供 5V(光耦隔离侧),防止高压浪涌损坏单片机。
Arduino 代码
使用 IRremote 库(库管理器可直接安装)。注意: 不同遥控器按键对应的十六进制码不同,下方代码中的码值仅为示例,实际使用时请先运行读取码值程序获取自家遥控器的真实编码。
#include <IRremote.h>
#include <IRremoteInt.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
pinMode(3, OUTPUT); // 继电器 1 控制脚
pinMode(4, OUTPUT); // 继电器 2 控制脚
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX); // 串口打印十六进制码值
translateIR();
irrecv.resume();
}
}
void translateIR() {
switch (results.value) {
case 0x80BFC13E: digitalWrite(3, LOW); break; // 继电器 1 吸合 (灯开)
case 0x80BF4BB4: digitalWrite(3, HIGH); break; // 继电器 1 释放 (灯关)
case 0x80BF837C: digitalWrite(4, LOW); break; // 继电器 2 吸合 (风扇开)
case 0x80BF9966: digitalWrite(4, HIGH); break; // 继电器 2 释放 (风扇关)
}
}
原理图与调试

TSOP 接线:OUT → Arduino D11,VCC → 5V,GND → GND。继电器控制脚接 D3、D4(低电平触发)。

串口监视器会实时显示接收到的十六进制码值,按下遥控器按键即可获取对应编码填入代码。

制造工艺
- 温控风扇DIY:媒体柜散热的继电器驱动方案
- 树莓派多传感器温度光照监测系统:DS18B20 实战构建
- 基于树莓派的卫生间占用传感器:通过 Twilio 实现语音与短信提醒
- 树莓派 + Hologram Nova 短信控制智能交流电源开关
- 改造废弃红外遥控器控制树莓派:LIRC实现关机重启
- ROObockey:精准辅助的遥控街头曲棍球机器人
- 仪表盘灯光全解码:颜色含义、常见报警灯与指示灯图文详解
- 色彩传感器:工作原理与关键应用
- BH1750环境光传感器:规格、特性与实战应用
- 光敏电阻(LDR):功能、类型与实际应用
- 环境光传感器:功能、设计与关键应用
- Al₂O₃与SiO₂纳米颗粒联合超声波显著降低水的过冷度