把 iPad 改造成 IR Remote(红外遥控器)这个想法,我其实惦记了很久。客厅茶几上遥控器越来越多,电视、空调、机顶盒、风扇,每个都要分开按,实在烦人。如果能把所有遥控功能收进一个 iPad,屏幕大、界面可以随便定制,体验肯定比几十块钱的万能遥控器好太多。但 iPad 本身没有红外发射硬件,所以问题就变成了:怎么给 iPad 装一个“外挂红外眼”。
这一篇是系列的第一部分,先把最关键的硬件方案讲透。我会把“为什么选耳机口而不是蓝牙”“38kHz 载波到底是怎么回事”“电阻三极管怎么选”这些基础原理一次说清楚,然后给出一个新手也能搭出来的硬件电路。适合动手能力强一点的读者,也适合完全零基础但愿意按步骤操作的朋友。整个系列分两篇:这一篇负责把硬件做出来、让 iPad 能“发光”;下一篇再讲 App 端怎么做编码匹配,真正实现万能遥控。
1. 方案选型:为什么我最后选了耳机口而不是蓝牙
1.1 三种常见方案横向对比
给 iPad 加红外发射能力,市面上能走的路子大概有三条:蓝牙外设、Wi-Fi 中转、耳机音频口直驱。我一开始也纠结了很久,把三种方案都研究了一遍,这里直接给结论。
蓝牙方案最“现代”,买个现成的蓝牙红外发射器,或者用 ESP32 做一个小模块,iPad 通过 BLE 给它发指令,模块再驱动红外 LED。优点是无线、不用插线,缺点是协议开发量大。BLE 的数据通道要自己定,模块端还要写红外编码表,而且很多现成模块只支持自家 App,想自己控制就得逆向或者重新烧固件。对于只是想做个遥控器的人来说,这个门槛偏高。
Wi-Fi 中转方案更简单粗暴:路由器 + 单片机 + 红外发射管,iPad 通过 HTTP 或 UDP 给单片机发指令。好处是距离不受限制,坏处是要么买现成的智能网关,要么自己折腾嵌入式开发板。如果只是想在沙发上对着电视操作,Wi-Fi 中转有点杀鸡用牛刀,而且延迟和稳定性都得调。
耳机音频口方案,也就是我最终选的这条路:用 iPad 的 3.5mm 耳机口输出特定频率的音频信号,直接驱动红外 LED。这个方案的灵魂在于“音频信号本身就能当载波”。遥控器发射红外时,本质是让 LED 以 38kHz 的频率快速闪烁,而 38kHz 恰好落在音频可输出的频率范围内,所以只要让 iPad 播放一段 38kHz 的波形,再用这个波形去驱动 LED,就能发出可以被家电接收的红外光。
1.2 耳机口方案的优势和代价
耳机口方案最大的优点是开发链路短。iPad 端只需要搞定音频播放,不需要蓝牙权限、不需要网络权限、不需要额外的系统授权。硬件端就更简单了,一个耳机插头、一个电阻、一个三极管、一两个红外 LED,加起来成本不到十块钱。而且音频口方案对老设备支持极好,很多旧 iPad 自带 3.5mm 孔,插上就能用,连转接头都不用。
代价当然也有。最大的限制是“单工”:耳机口只能输出,不能接收红外信号,所以你要想做成“学习型遥控器”,还得额外加一个红外接收头,走耳机麦克风通道或者另想办法。另外,音频口输出的是交流信号,没法长时间输出恒定电平,所以电路设计上要利用交流特性,这和简单的直流驱动 LED 不太一样。再有就是 iPad 现在新款都取消了耳机孔,需要用 Lightning 或 USB-C 转 3.5mm 的转接线,这会让体积稍微大一点。
但综合下来,对于“做一个能用的万能遥控器”这个目标,耳机口方案是性价比最高、最可控的一条路。后续就算要加大功率或延长距离,也可以通过外部电源和三极管放大来解决,没必要一开始就上蓝牙。
2. 硬件准备:材料清单与红外基础原理
2.1 红外遥控为什么讲究 38kHz
家电红外遥控的原理,说穿了就是“用红外光脉冲传递二进制数据”。但你直接让 LED 持续亮着没用,因为红外光本身人眼看不见,接收端也分不清环境光和遥控光。所以标准做法是把红外光调制成一个固定频率的脉冲,比如 38kHz,也就是每秒闪 38000 次,接收端只认这个频率的光,其他频率一概过滤掉。这就像两个人约定用同一个频道说话,其他频道的噪音全被忽略。
为什么偏偏是 38kHz 而不是 20kHz 或者 100kHz?这是几十年来家电行业形成的默契。38kHz 这个频率在红外接收头的滤波器上实现成本低,而且能避开大部分环境光干扰,包括阳光和白炽灯里的红外成分。实际上你也会看到 36kHz、40kHz、56kHz 的接收头,但 38kHz 是绝对的多数。我做的第一个版本就直接上 38kHz,适配市面上大多数电视、空调、机顶盒。
这个知识点直接决定了后面所有操作:我们要让 iPad 输出 38kHz 左右的音频波形,用这个波形去驱动红外 LED,LED 就会以 38kHz 闪烁。这还不够,真正发遥控码的时候,还需要按照 NEC 或 RC5 等协议,控制“有载波”和“无载波”的时间段来代表 0 和 1。但那是 Part 2 的内容,这一篇先把“持续发射 38kHz 载波”跑通,能证明硬件工作正常,就已经成功一半了。
2.2 全部材料清单与获取途径
这一份清单是照着最简单的电路列出来的,所有东西都能在电子市场或淘宝买到,总价控制在十块钱左右。
- 3.5mm 音频插头一个,最好是带螺丝端子或者可焊接的,方便接线。如果你是焊工新手,可以买那种免焊接的音频头,直接拧线。
- 红外发射 LED 两个,波长选 940nm 的,这是遥控器最常见的波长。注意别买成红外接收管,长得像但工作方式完全不同。
- NPN 三极管一个,型号选 2N2222 或者 S8050 都行。这个管子在这里当开关用,负责放大电流。
- 电阻:1kΩ 一个、10Ω 一个,功率 1/4W 就够。阻值不是死的,后面会讲怎么算。
- 面包板一块、杜邦线若干,先搭电路测试用。
- 洞洞板和电烙铁,测试通过以后焊成正式模块。
- 两节 5 号电池和电池盒一个,或者一块 3.7V 锂电池,给放大电路供电。
- 手机一台,用来验证红外 LED 是否点亮(用摄像头看)。
这里面最容易被忽略的是“电池盒”。很多人以为直接从耳机口取电就行,但实际上 iPad 的音频输出功率很有限,直接驱动 LED 只能凑合在几十厘米内用,稍微远一点就失灵。加上外部电源之后,信号源只负责控制通断,功率由电池提供,遥控距离能拉到三四米以上,这才是能实际用的状态。
2.3 电阻和三极管参数怎么选
很多新手在选电阻时直接抄网上的图,但抄完发现电压对不上、电流不够,最后 LED 根本亮不起来。这里我给出完整的计算思路,你后面改电路可以照着算。
先看三极管放大部分。三极管在这里工作在开关状态:基极接耳机口输出的音频信号,集电极接 LED 和电池,发射极接地。当音频信号输出正半周期时,基极电压超过 0.7V,三极管导通,LED 通电发光;负半周期时基极电压低于 0.7V,三极管截止,LED 熄灭。所以最终 LED 的闪烁频率和音频信号一致,而闪烁的电流大小由集电极电路的限流电阻决定。
电池我选两节碱性电池,标称电压 3.0V,LED 正向压降约 1.4V。如果两个 LED 串联,总压降 2.8V,那么限流电阻两端的电压就是 3.0 - 2.8 = 0.2V,假设想要 30mA 电流,电阻就是 0.2 / 0.03 = 6.7Ω,取 10Ω 问题不大。这里电流可以适当往低了走,因为红外 LED 本身就是高亮度器件,20mA 在近距离已经够用,30mA 对续航和寿命影响也不大。如果你只用一个 LED,限流电阻就要按 (3.0 - 1.4) / 0.03 ≈ 53Ω 取,建议用 47Ω 或 51Ω。
基极电阻的作用是限制流入基极的电流,保护 iPad 的耳机功放。iPad 耳机口输出电平大概在 0.5V 到 1V 之间,而三极管的 Vbe 约 0.7V,所以基极电流很小。但功放不能直接短路到地,得串联一个电阻。取 1kΩ 到 4.7kΩ 都可以,我用 1kΩ,主要是希望信号损耗小一点,三极管反应快一点。至于要不要加电容隔离,音频口本身已经有隔直电容,外部不需要再处理。
3. 电路搭建:从面包板到焊接
3.1 电路连接图和引脚说明
在面包板上搭这个电路,熟练的话十分钟就能完成。整个电路分两部分:信号输入部分和功率输出部分。信号输入就是从耳机口引线到三极管基极,功率输出就是电池、三极管和 LED 组成的开关回路。
先说 3.5mm 插头的引脚。现在绝大多数音视频设备用的是 CTIA 标准,也就是从插头尖端往后数,四个触点分别是左声道、右声道、地线、麦克风。我们只需要用到左声道和地线两根线。左声道对应耳机插头最尖端的那个触点,地线对应倒数第二个或第三个金属环,具体看插头的机械结构,用万用表蜂鸣档可以自己量出来。
接线顺序是这样的:iPad 耳机口左声道信号经过 1kΩ 电阻接到三极管基极;三极管发射极接地,集电极接两个串联的 LED 的负极;LED 的正极接电池盒正极;电池盒负极接到三极管的发射极那一侧的公共地。这样整个回路是:电池正极 → LED → 三极管集电极 → 三极管发射极 → 电池负极。当三极管基极有信号时,集电极和发射极之间导通,LED 亮。
3.2 搭建步骤和焊接注意事项
搭电路千万别一上来就焊洞洞板,先在面包板上把所有模块拉通。我的习惯是先把电池盒的正负极用杜邦线引到面包板两个不同的电源轨上,再把三极管插到面包板中间,确认三个引脚的位置,最后才接 LED 和电阻。
接线顺序建议从电源开始,先确认电池能正常点亮一个普通 LED,排除电源问题。然后把红外 LED 和三极管、限流电阻接好,用一个 3V 的直流电压直接加在三极管基极上,看红外 LED 是不是常亮。这一步绕过了音频信号,纯粹验证功率输出回路有没有问题。如果你有万用表,可以量一下集电极电流,确认在 20mA 到 40mA 之间。
确认功率回路没问题之后,再接入耳机口信号。拿一根音频线,把左声道通过 1kΩ 电阻接到三极管基极,地线接到公共地。这里特别注意:iPad 播放音频时如果你插的插头接触不良,会有很大的咔哒声,严重时可能损坏功放或三极管。所以最好在插头完全插紧后再开始播放。
焊接洞洞板时,顺序反过来,先焊小元件再焊大元件。我的习惯是先焊电阻和三极管,然后是红外 LED,最后焊音频线的引出线。LED 的极性不能搞反,长脚是正极,短脚是负极。如果你用的是拆机 LED,引脚长短不一,可以用万用表二极管档确认,或者看 LED 内部两个电极的大小,大的是负极。焊完以后用万用表蜂鸣档检查相邻焊点有没有短路,特别是三极管的三个引脚距离很近,焊锡多了容易连在一起。
3.3 用手机摄像头做初步验证
这是整个过程中最有成就感的一步:把电路接好,iPad 开始播放 38kHz 音频,然后用手机摄像头对着红外 LED 看。正常情况下,你通过手机屏幕能看到 LED 发出一种淡淡的紫色或粉紫色光,但肉眼直接看是看不见任何光的。这个现象是因为手机摄像头里的图像传感器对红外光敏感,能捕捉到人眼看不见的波长。
所以验证红外 LED 是否点亮的唯一可靠方法就是手机摄像头。我个人建议在摄像头视角下观察 LED 的同时,看左上角有没有“IR”图标或画面有没有轻微闪烁,这能进一步确认 LED 是在以 38kHz 闪烁,而不是常亮。如果只是常亮,说明三极管被直流击穿导通或者基极信号不对,需要关掉音频再重新测。
这一步如果失败了,不要急着怀疑电路。先把音量调到最大,确认 iPad 没有静音,再检查耳机口是不是真的被识别成了耳机模式。很多时候问题出在 iPad 因为转接头兼容性或者插头没插紧,声音还是从扬声器出来,耳机口根本没信号。
4. 信号源准备:让 iPad 输出 38kHz 红外载波
4.1 用 Audacity 生成 38kHz 方波
硬件搭好以后,得让 iPad 发出 38kHz 的音频信号。最简单的方式不是写 App,而是先用电脑上的 Audacity 生成一段 38kHz 的波形文件,导入 iPad 播放。这个方式能在一小时之内跑通整个硬件链路,等确认没问题再做 App。
打开 Audacity,新建一个音频轨道,然后在菜单栏选“生成 → 音调”。在音调设置里把波形选成“方波”,频率填 38000,振幅设置成 0.6 到 0.8,时长可以先给 30 秒。为什么用方波而不是正弦波?因为红外接收头对载波的要求不算特别严格,方波包含的谐波成分更多,对三极管的开关驱动也更干脆,实际上更接近真实遥控器里单片机输出的 PWM 波形。
但这里有个细节要跟新手讲清楚:计算机声卡和 iPad 耳机口输出的“方波”,到了模拟电路里其实会被低通滤波成有点圆润的波形,不是理想方波。不过这完全不影响使用,因为接收头内部有自己的检波和解调电路,只要载波频率在 38kHz 附近,它就能把“有没有载波”这个信息提取出来。你甚至可以临时用 36kHz 或者 40kHz 的波形测试兼容性,很多接收头都能覆盖这附近一段范围。
4.2 把音频文件传输到 iPad 并正确播放
Audacity 生成好之后,导出成 WAV 格式。WAV 是无损格式,虽然文件大一点,但保证波形不被压缩破坏。如果你图省事想导出 MP3 或者 AAC 也行,只要码率别太低,高频信息还能保留。但第一次测试建议用 WAV,少一个变量。
把文件传到 iPad 上,最省事的方法是隔空投送(AirDrop)。传完之后在 iPad 的“文件”App 里找到这个音频文件,点击播放。播放的时候要确保音量调到 80% 以上,不然三极管基极的驱动电压不够,LED 亮度会很低。还有一点,iOS 系统在拔掉耳机或者切换音频输出的时候会稍微停顿一下,所以播放过程中别去碰插头。
这里推荐一个更稳的播放方式:把音频文件导入到系统自带的“语音备忘录”或者一个专门的音频播放器 App,因为文件 App 里的内置播放器会受“静音开关”影响。老款 iPad 的静音拨片如果处于静音状态,即使音量打开,音频输出也可能是静音的,别被这个坑到。
4.3 实测注意点与音量设置
实测时我把 iPad 音量调到最大,红外 LED 的亮度在手机摄像头下非常明显,遥控距离在四米左右仍然能触发电视的接收。这里有几个细节值得记录一下。
第一,iPad 插上耳机口之后,系统会弹出一个“此配件不受支持”之类提示的可能是转接头不兼容,换一个 Lightning 转 3.5mm 的官方转接线就能解决。第二,音量大小直接影响三极管基极驱动电压,所以音量太低 LED 不工作。但也不是越高越好,音量太高会让波形顶部被削波,反而可能让三极管发热,长时间测试最好把音量控制在 80% 左右。第三,测试时如果电视没反应,不要急着认为是遥控码不对,先用手机摄像头确认 LED 在闪,如果是常亮或者不亮,那就是硬件问题而不是编码问题。
5. 常见问题与排查技巧实录
5.1 LED 不亮排查清单
遇到 LED 不亮,我的排查顺序是:电源 → 三极管 → LED 极性 → 信号。
先量电池盒输出电压,确认有 3V 左右。然后跳过三极管,直接用导线把电池正极和 LED 正极接起来,看能不能亮。如果这也不亮,换一个 LED 试试,因为红外 LED 很容易因为引脚接反或电流过大烧坏。如果 LED 亮了,就把三极管接回电路,用一根导线把三极管基极直接碰一下电池正极,模拟一个高电平,这时候 LED 应该亮。如果还不亮,大概率是三极管引脚接错了或者已经击穿。
最后才查信号路径。用万用表交流档量三极管基极对地电压,播放 38kHz 音频的时候应该能测到 mV 级别的交流电压。如果测不到,检查音频线左声道和地线是否接反,或者 iPad 根本没把声音送到耳机口。还有一个常见问题:转接头的 CTIA 引脚定义和普通耳机插头不完全一样,买转接头的时候最好看产品描述里写了“支持音频输出”而不是“仅支持充电”。
5.2 距离和角度问题
很多人在这一步问“为什么贴着电视才行,离远一点就没反应”。原因基本就三个:LED 驱动电流不够、红外 LED 角度太窄、接收头被遮挡。
驱动电流不够是最普遍的。如果你没用外部电源,只靠耳机口直接驱动 LED,电流可能只有几毫安,红外光强不够,当然传不远。解决办法就是按前面说的加电池盒和三极管放大。红外 LED 的发射角度也很关键,普通 LED 的发射角度大约 20 度,意思是它主要朝正前方发光,旁边几乎没光。你可以把两个 LED 焊成约 45 度夹角,扩大覆盖范围,或者在电路里并联不同朝向的 LED。还有一种提升距离的方法:在 LED 外面套一个小的反光杯或者用热缩管固定一个透镜,但这属于锦上添花,对第一次做的人来说不用太执着。
5.3 兼容性和协议问题
如果你用 38kHz 载波测了好几个家电都没反应,先别怀疑电路坏了,大概率是协议不匹配。不同品牌的遥控器用的编码协议不一样,NEC 协议是最常见的,但索尼用 SIRC,飞利浦用 RC5,空调厂商更是经常用自定义变种。一个只发 38kHz 载波的硬件,本身不具备“懂协议”的能力,它只能输出什么就发什么。
所以 Part 1 的硬件做出来之后,你可能会发现它能控制电视机音量,但控制不了空调。这不奇怪,因为只有载波没有数据,家电接收端根本不知道你想让它干什么。到 Part 2 我们会用一个 App 在音频信号里合成完整的协议波形,比如 NEC 协议的引导码 9ms 载波加 4.5ms 空闲,再按数据位的长短区分 0 和 1。硬件端不用改,只要 App 能把波形精确放出来,同一个电路就能控制所有红外设备。
另外一个容易踩的坑是载波频率差异。虽然大多数家电用 38kHz 接收头,但有些空调用的不是标准 38kHz,而是 36kHz 或者 40kHz。建议在 Audacity 里多生成几个频率的测试音频,逐个试,找到最灵敏的那个频率。我实测下来,带“变频”功能的空调遥控器往往对频率更敏感,几乎只能认自己特定的载波。
5.4 硬件保护与使用习惯
还有几个长期使用才能发现的注意点,提前分享给你。
iPad 耳机功放输出端不能长时间短路,所以在面包板测试阶段,尽量别让金属导线碰到插头的裸露部分。焊接好的模块,建议把音频线接头和电路板整体用热缩管包起来,只露出 LED 和电池盒的接线。这既防止短路,也防止不小心摔断焊点。电池建议用可充电的镍氢电池,虽然电压只有 1.2V 一节,两节串联 2.4V 也能工作,只是亮度稍微低一点,但比碱性电池环保,长期放着也不会漏液。
6. 接下来可以怎么扩展
做完这个硬件之后,我自己的体会是“原理通了,剩下都是工程问题”。耳机口方案的三个关键点:第一,音频信号可以当载波用,这不是什么高深技术,但想通了之后很多物联网调试都能复用;第二,三极管放大是新手最值得掌握的基础电路,它把一个微弱的信号变成了能驱动负载的开关动作;第三,红外遥控器的协议层和物理层是分离的,物理层搞好之后,上层协议可以慢慢加。
这一篇已经把物理发射层讲完了。你手头应该已经有一个能通过 iPad 播放音频来控制红外 LED 闪烁的装置,可以用手机摄像头看到 LED 的紫色光芒,甚至在某些家电上已经能触发一点反应。下一篇会讲 App 端怎么做:解析 NEC 协议格式、把遥控码转换成音频波形、以及如何做一个简单的界面把按钮和编码对应起来。到时候你会回来发现,Part 1 的硬件一个元件都不用改,直接就能用上。