尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

用iPad做红外遥控器:音频口输出38kHz载波的DIY硬件方案

用iPad做红外遥控器:音频口输出38kHz载波的DIY硬件方案 把 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 左右的音频波形用这个波形去驱动红外 LEDLED 就会以 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.0VLED 正向压降约 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 的硬件一个元件都不用改直接就能用上。
返回列表