1. 项目概述从“关不掉”的烦恼到“一键清静”的实践不知道你有没有过这样的经历在餐厅吃饭墙上挂着的电视正播放着吵闹的广告在候车室多台电视同时播放着不同的节目让人心烦意乱。你只想安安静静地待一会儿但那些屏幕却固执地亮着。传统的解决方案是找遥控器或者干脆忍受。但今天我们要聊的是一个极客范儿的解决方案——自己动手制作一个“电视终结者”TV-B-Gone。这不仅仅是一个恶作剧玩具更是一个绝佳的红外遥控技术学习平台它把开源硬件的乐趣和实用的电子工程知识打包进了一个小小的焊接套件里。这个项目的核心是一个名为TV-B-Gone的焊接套件。它的功能简单而直接内置一个预编程了全球230多种常见电视品牌关机代码的微控制器具体型号是ATTINY85当你按下按钮它会依次发射这些红外关机指令直到其中一条成功“命中”目标电视让它安静地黑屏。听起来像魔法其实背后是标准的消费电子通信协议。通过亲手焊接组装这个套件你将透彻理解红外通信的核心原理、如何用晶体管驱动大功率红外LED以及微控制器如何精确控制时序。无论你是想学习基础电子焊接的初学者还是希望深入嵌入式系统控制的爱好者这个项目都能提供从原理到实操的完整路径。接下来我们就从红外原理开始一步步拆解这个有趣的DIY项目。2. 红外遥控技术原理深度解析2.1 红外通信的基本模型看不见的光如何传递信息红外遥控的本质是利用人眼不可见的红外光波长通常在940nm左右作为载体进行简单的数字通信。你可以把它想象成一种极其快速的“光电报”。发送端遥控器是一个红外发光二极管IR LED接收端电视上的小黑点是一个红外接收二极管配合解码芯片。整个通信过程基于一个简单的“有光”和“无光”的状态。但直接让LED常亮或常灭来代表0和1是行不通的原因主要有两个抗干扰和节能。环境中有大量的红外噪声比如阳光、白炽灯都包含红外成分。如果只是简单地亮/灭接收器很难从背景噪声中分辨出有效信号。其次为了获得足够的发射距离IR LED需要在极短的时间内通过很大的电流可达1安培但它不能长时间承受这样的电流否则会过热损坏。因此工程师们引入了一个聪明的设计脉冲宽度调制PWM载波。具体来说微控制器并不会直接让LED发出稳定的红外光而是以很高的频率例如37kHz或38kHz快速地开关它。这个高频的开关信号就是“载波”。然后再用我们想要发送的数据一串0和1去控制这个载波的“有”和“无”。也就是说数据位“1”可能对应着一段持续时间内载波存在LED高频闪烁数据位“0”则对应着载波消失LED完全熄灭。这样做的好处显而易见接收器可以被设计成只对特定频率如38kHz的光脉冲敏感就像收音机只接收特定频率的电台一样这极大地抑制了环境光的干扰。同时由于LED在高频闪烁其平均功率和发热都得到了有效控制允许它在瞬间通过大电流实现更远的发射距离。2.2 编码协议从脉冲序列到具体指令理解了载波我们再来看数据是如何组织的。不同的设备制造商索尼、松下、三星等定义了不同的编码协议它们规定了数据帧的结构、逻辑“0”和“1”的表示方法以及帧头的特征。最常见的两种协议是脉冲距离编码和脉宽编码。以项目资料中提到的索尼SonySIRC协议为例它采用脉宽编码。一个逻辑“1”由一个长的高电平脉冲约1.2ms后跟一个短的低电平间隔约0.6ms来表示而一个逻辑“0”则由一个短的高电平脉冲约0.6ms后跟一个短的低电平间隔约0.6ms来表示。每一个完整的指令比如“电源开关”就是由这样一串特定顺序的脉冲和间隔组成的。TV-B-Gone套件中的ATTINY85微控制器内部就存储了上百个这样的脉冲序列数组每一个数组对应一个品牌电视的关机代码。当你按下按钮微控制器会从存储器中依次读取这些脉冲序列数据并通过一个IO口输出相应的电平信号。这个信号太微弱无法直接驱动大功率IR LED所以需要晶体管驱动电路进行放大。最终这个放大后的信号控制IR LED以38kHz的频率闪烁出对应的脉冲序列。如果电视的红外接收器“听”到了与自己品牌匹配的编码它就会向电视的主控芯片发送一个“关机”指令整个过程在毫秒级内完成。注意红外通信是直线传播且易受阻挡的。像遥控器一样你需要将设备的IR LED大致对准电视前方的红外接收窗口通常是一个深色的小塑料片。强光直射接收窗口也可能干扰信号接收。3. TV-B-Gone套件硬件设计与选型解析3.1 核心大脑ATTINY85微控制器的角色在这个项目中ATTINY85扮演了绝对的核心角色。这是一颗来自Atmel现Microchip的8位AVR微控制器虽然只有8个引脚和8KB的Flash存储空间但用于存储和播放红外编码序列绰绰有余。它的工作流程非常清晰上电或复位后从内部的程序存储器中依次读取预存的脉冲时序数据通过IO口PB0输出控制波形。为什么选择ATTINY85而不是更简单的逻辑电路因为灵活性。电视品牌成百上千关机代码各不相同且编码长度和格式差异很大。使用微控制器我们可以用软件定义复杂的脉冲序列轻松存储和管理数百个代码库。如果需要支持新的电视型号也只需要更新固件重新编程芯片而无需改动硬件电路这充分体现了开源硬件可编程、易迭代的优势。套件中为ATTINY85配备了一个8MHz的陶瓷谐振器而非使用芯片内部的RC振荡器。这是为了保证时序精度。红外编码对脉冲宽度非常敏感误差大了可能导致电视无法识别。外部谐振器提供的时钟信号比内部RC振荡器更稳定、更精确确保了发射的38kHz载波频率和每一位数据的脉宽都符合标准。3.2 动力源泉电源方案与功耗考量套件采用两节AA电池供电标称电压3V。这是一个兼顾了输出功率、设备体积和成本的经典选择。设计文档特别强调电源电压需在2.5V到5V之间。电压过低如低于2.5V可能导致微控制器和驱动电路无法正常工作电压过高如使用9V电池则可能直接烧毁脆弱的ATTINY85芯片。功耗管理是便携设备设计的重点。TV-B-Gone的工作模式是爆发式的在按下按钮后的约两分钟内四颗大功率IR LED会间歇性全力发射此时电流消耗可能高达数百毫安。一旦所有代码发送完毕程序会使微控制器进入深度睡眠模式此时整机电流消耗可降至微安级几乎可以忽略不计。这种设计使得用普通碱性电池也能获得可观的使用寿命。资料中也提到使用高性能的锂铁电池如劲量L91可以获得更稳定的电压和更远的发射距离而镍氢充电电池由于电压较低约1.2V每节性能会稍打折扣。3.3 能量发射器IR LED与驱动电路设计这是整个硬件设计中工程含量最高的部分直接决定了设备的有效距离。问题在于微控制器IO口的驱动能力通常只有20-40mA而为了达到远距离目标150英尺发射每个IR LED需要瞬间通过100mA以上的电流。解决方案是使用晶体管作为开关和电流放大器。套件使用了两种晶体管四个NPN型晶体管如PN2222作为最终的LED驱动器一个PNP型晶体管如PN2907作为前级驱动器。我们以其中一个通道为例解析其工作原理信号通路当ATTINY85的PB0引脚输出高电平时PNP晶体管Q5截止其集电极连接四个NPN晶体管基极的节点被上拉电阻拉高。这使得四个NPN晶体管Q1-Q4的基极获得电流而导通相当于将四颗IR LED的阴极接地LED点亮。电流放大微控制器引脚只需要提供极小的基极电流流入PNP晶体管基极再通过PNP控制流向四个NPN基极的电流而流过IR LED的100mA级大电流则由电池直接提供经由NPN晶体管的集电极-发射极通路完成。晶体管在这里起到了“用小电流控制大电流”的开关作用。电路演进资料提到了电路设计的迭代。v1.0版本是一个IO口直接驱动四个NPN晶体管基极电流被分摊驱动能力有限。v1.1改为两个IO口各驱动两个晶体管增加了驱动电流。v1.2版本即当前版本则引入了PNP晶体管Q5作为缓冲级用一个IO口就能强有力地驱动所有四个NPN晶体管同时节省出另一个IO口用于区域选择通过焊接R3电阻选择北美或欧洲代码库。IR LED本身也有讲究。套件混合使用了两种窄光束型和宽光束型。窄光束型LED发射角小能量更集中射程更远宽光束型LED发射角大覆盖范围广更容易对准目标。两者结合提高了设备在不同距离和角度下的命中率。4. 套件组装全流程与焊接实战要点4.1 工具与物料准备工欲善其事必先利其器。组装这个套件你需要准备以下工具它们也是电子DIY的常备伙伴电烙铁推荐使用可调温的焊台如常见的936或T12系列。恒温控制能避免温度过高损坏元件或焊盘。务必避免使用“冷焊”烙铁它们不适合精密电子焊接容易产生虚焊或损坏电路板。焊锡建议使用直径0.6-0.8mm的含铅松香芯焊锡丝如63/37锡铅比例。对于初学者含铅焊锡流动性好熔点低更容易形成光亮饱满的焊点。请注意在通风良好处操作并事后洗手。助焊剂可选但推荐在焊接多引脚芯片或清洁焊盘时少量助焊剂能显著改善焊接效果。吸锡器或吸锡线用于修正焊接错误移除多余焊锡。尖头镊子用于夹取和放置小型元器件。斜口钳或水口钳用于剪除元件焊接后过长的引脚。万用表用于焊接完成后的电路通断测试和电压检查是排查故障的利器。放大镜或台灯可选对于视力检查或精细焊接有帮助。在开始焊接前请对照套件提供的物料清单BOM清点所有元件。特别是电阻、电容、晶体管和LED它们的型号和数值各不相同混用会导致电路无法工作甚至损坏。4.2 焊接步骤详解与核心技巧焊接顺序一般遵循“先矮后高、先内后外、先耐热后怕热”的原则。对于这个套件推荐的焊接顺序是轻触开关 - 电阻 - 指示灯LED - 陶瓷电容 - 晶振与芯片座 - 电池座 - 电解电容 - 晶体管 - 红外LED - 最后安装微控制器芯片。第一步轻触开关与电阻轻触开关SW1是对称元件没有方向性平整地放在PCB对应位置即可。焊接时先固定一个对角引脚检查元件是否贴紧板子再焊接其余引脚。电阻如R1, R5同样没有极性。色环电阻的阻值需要仔细辨认例如棕黑红金代表1kΩ。将电阻引脚弯成直角插入孔位在背面焊接。焊点应呈光滑的圆锥形。剪脚时留出约1-2mm的引脚不要齐根剪断以免焊盘受力脱落。第二步LED与电容的极性识别这是容易出错的地方。所有发光二极管LED都有极性。通常长脚为正极阳极短脚为负极阴极从内部看较小的电极是正极。PCB上会在正极焊盘旁标有“”号。务必确认绿色指示灯LEDLED5和四个红外LEDLED1-LED4安装方向正确否则不会发光或烧毁。电解电容C2也有极性其外壳上通常有一条灰色带状区域对应负极引脚也是长正短负。PCB上同样有“”标记。第三步芯片座与微控制器的安装务必先焊接8脚芯片座IC1’千万不要直接把ATTINY85芯片焊死在板上芯片座上的缺口方向要与PCB丝印上的缺口方向一致。焊接芯片座时可以先焊接一个对角引脚固定位置确认平整后再焊接其余引脚。ATTINY85芯片本身的方向至关重要芯片一端有一个小圆点或凹坑表示第1引脚。插入芯片座时这个标记必须与芯片座及PCB上的缺口标记方向一致。插反通电会立即损坏芯片。第四步晶体管与红外LED的安装四个NPN晶体管Q1-Q4和那个PNP晶体管Q5的引脚顺序可能不同。常见的TO-92封装当平面朝向自己引脚朝下时从左到右通常是E发射极、B基极、C集电极。但务必以PCB丝印上的晶体管符号轮廓为准确保三个引脚对应插入正确的孔位。红外LED需要向外弯折90度使其朝向正前方以获得最佳发射角度。实操心得在焊接每个元件前花10秒钟确认其位置、方向和数值。养成“看一眼PCB丝印看一眼元件再焊”的习惯能避免绝大多数返工。焊接晶体管和LED时动作要快停留时间不宜过长一般2-3秒避免过热损坏。可以使用镊子夹住元件引脚帮助散热。4.3 组装完成后的功能测试焊接完成后不要急于装上外壳。先进行目视检查看看有无明显的焊桥短路、虚焊焊点不光滑、有裂缝或元件错位。然后装入两节全新的AA电池进行通电测试。基础功能测试装上电池后绿色的指示灯LEDLED5应该开始快速闪烁。这表示微控制器已经上电并开始运行程序。如果指示灯不亮首先检查电池极性、电池电量然后重点检查电源路径电池座焊点、开关焊点、以及ATTINY85的电源引脚VCC和GND是否焊接良好。红外发射测试人眼看不到红外光但手机的摄像头尤其是前置摄像头通常对红外光敏感。打开手机的相机应用将TV-B-Gone的红外LED对准手机镜头按下按钮。在手机屏幕上你应该能看到红外LED发出微弱的紫色或白色光点。这是验证所有四个IR LED及其驱动晶体管是否正常工作的最直观方法。区域代码选择套件v1.2版本支持北美和欧洲两套代码库。如果你在欧洲、英国、澳大利亚等地使用需要焊接上R3位置的那个10kΩ电阻。如果在北美或亚洲使用则不要焊接R3。这个电阻连接到一个微控制器的IO口上电时芯片会检测这个引脚的电平从而决定调用哪一套代码。5. 使用技巧、问题排查与进阶玩法5.1 高效使用指南与场景建议使用TV-B-Gone非常简单但掌握一些小技巧能显著提高成功率瞄准是关键尽量将设备的红外LED对准电视正面的红外接收窗口。接收窗口通常是一个深色黑色或深红色的小塑料区域。保持稳定按下并释放按钮后设备会持续工作约两分钟。在此期间尽量保持设备稳定指向电视不要晃动或反复按压按钮反复按压会导致重置从头开始发射。距离与角度在开阔无遮挡的环境下有效距离可达30米以上。但实际距离受电视接收器灵敏度、环境光干扰、电池电量等因素影响。如果一次不成功可以稍微调整角度或靠近一点再试。它不是万能的该设备针对电视设计对大多数显示器和广告屏无效因为它们可能没有红外接收功能或者使用了非标准的协议。5.2 常见问题排查速查表即使按照教程组装也可能遇到一些问题。下表列出了常见故障现象及排查思路问题现象可能原因排查步骤装上电池后绿色指示灯完全不亮1. 电池没电或装反2. 电源开关焊接不良3. 电源路径断路电池座、开关、芯片VCC/GND4. ATTINY85芯片损坏或方向插反1. 用万用表测量电池电压应2.5V。2. 检查开关焊点用万用表通断档测量按下开关时是否导通。3. 沿着PCB上的电源走线检查各关键点电压。4.重点断电后检查芯片方向重新拔插。绿色指示灯常亮或不规则闪烁不发射红外信号1. 8MHz晶振未焊接好或损坏2. 微控制器程序紊乱静电击穿1. 检查晶振三个引脚焊接是否牢固有无虚焊。2. 尝试重新拔插芯片先断电。如果问题依旧可能是芯片或晶振损坏。绿色指示灯正常闪烁但手机摄像头看不到IR LED发光1. 某个或所有IR LED焊反2. 驱动晶体管Q1-Q4, Q5焊错型号或引脚顺序3. 晶体管或LED本身损坏4. 限流电阻旧版R1-R4值错误或未焊1. 确认四个IR LED的极性安装正确。2.重点对照资料确认五个晶体管的型号和安装方向。用万用表二极管档测量晶体管好坏。3. 检查为IR LED提供通路的晶体管集电极-发射极在触发时是否导通。有效距离非常近3米1. 电池电量不足特别是使用充电电池2. IR LED驱动电流不足晶体管未完全饱和导通3. 使用了窄光束LED但未对准1. 更换全新的碱性电池测试。2. 检查驱动电路特别是PNP晶体管Q5的基极电阻R11kΩ是否焊接正确。3. 尝试调整设备角度。对某些电视无效1. 该电视品牌代码未收录在230个代码中2. 电视红外接收器故障或被遮挡3. 环境强光干扰如阳光直射接收器1. 尝试对其他品牌电视确认设备本身工作正常。2. 确保对准电视接收窗避开强光。3. 这是概率问题并非设备故障。5.3 进阶修改与编程探索作为开源硬件项目TV-B-Gone的魅力在于其可扩展性。PCB上预留了6针的ICSP编程接口需要自行焊接排针。这意味着你可以使用AVR编程器如USBasp重新烧写ATTINY85芯片。更新代码库你可以从社区寻找或自己抓取更多电视品牌的红外代码修改源代码编译后烧录进去增加设备的“杀伤范围”。修改行为默认是按下按钮后自动循环播放所有代码。你可以修改程序让它只发射特定品牌的代码或者改变发射模式如单次发射、循环发射等。硬件改造如果你需要更远的距离可以尝试将2节AA电池供电改为3节注意总电压不要超过ATTINY85的极限。也可以尝试更换更大功率的IR LED或使用透镜聚焦光束。但要注意增加电压或电流可能会超出原有晶体管和LED的额定参数存在烧毁风险改造前务必查阅元件数据手册。集成到其他项目你可以将TV-B-Gone的核心板作为一个“红外关机模块”集成到你的自动化项目中。例如配合Arduino和人体传感器制作一个“检测到无人就自动关电视”的装置。6. 从项目实践到知识体系的构建完成这个TV-B-Gone套件远不止是获得了一个有趣的工具。它是一次浓缩的电子工程实践串联起了多个关键知识点首先它巩固了电路基础。你亲手焊接了一个包含电源、数字逻辑微控制器、模拟驱动晶体管和光电器件LED的完整系统理解了电流如何从电池流出经过开关、芯片、晶体管最终驱动LED发光。其次它揭示了嵌入式系统的典型工作流程。你看到了一个资源受限的微控制器ATTINY85如何通过精准的定时器控制GPIO口产生复杂的PWM波形从而与外部世界电视进行通信。这是理解物联网设备、智能硬件如何工作的绝佳入门。再者它展示了信号与系统的简化模型。红外通信中的载波、编码、调制与解调是通信原理的直观体现。通过示波器观察脉冲序列如项目资料中的截图你能将抽象的“0/1数据”与真实的物理信号联系起来。最后它体现了开源硬件与社区协作的价值。从Mitch Altman的最初创意到Adafruit的套件化与改进v1.0到v1.2的电路优化再到全球爱好者分享的代码和改造方案这个项目是集体智慧的结晶。你不仅是在组装一个产品更是在参与一个持续的创造过程。我个人在焊接和调试这类套件时最大的体会是耐心和系统性排查是成功的关键。第一次通电不成功是常态不要慌张。按照“电源 - 时钟 - 复位 - 核心芯片 - 输出外设”的顺序用万用表和逻辑分析仪或简单的LED探头一步步验证绝大多数问题都能被定位和解决。这个TV-B-Gone套件就像一把钥匙为你打开了通往硬件 hacking 世界的大门。当你第一次用它成功让远处的电视屏幕暗下来时那种通过自己双手创造的、对物理世界施加控制的成就感是纯软件项目难以比拟的。