首页 / 资讯中心 / 文章详情

红外收发极简电路:38kHz调制解调原理与HS38实战

红外收发极简电路:38kHz调制解调原理与HS38实战 ★ FEATURED ARTICLE
简介这是一份面向电子初学者与硬件爱好者的红外通信入门资料围绕红外发射管与HS38HS0038接收集成模块展开帮助读者理解38kHz方波信号的发射与检测原理适用于遥控、智能家居、无线传感等基础学习场景。压缩包内共1个doc文档约47KB以图文说明形式呈现电路构成与调试要点。资源重点讲解HS38在接收到38kHz方波时输出低电平、无信号时保持高电平的工作逻辑并介绍用单片机或555定时器产生方波、以20%至30%占空比降低发射功率的实用思路同时给出用示波器观察输出脚状态、通过遮挡发射源验证电路的实验方法。针对网上难以查找的38kHz红外接收模块引脚图文档还整理了一张适用于HS38、TL0038、VF0038等常见型号的引脚参考图并提示可用试触法鉴别个别不匹配的接脚。目前已有1673人学习适合作为无线通信入门的对照材料。1. 红外收发电路为什么“没有限流电阻”反而成了理解 38kHz 解调的最佳入口一块只有发射管和 HS38 接收头的电路既没有限流电阻也没有三极管驱动看起来像是初学者练手时随手搭的“半成品”。但恰恰是这种极简结构把红外通信最核心的矛盾暴露得干干净净发射端要的是足够强的 38kHz 调制光接收端要的是把 38kHz 载波从环境光里“挑”出来再还原成基带电平。HS38 这类一体化接收头内部集成了光电二极管、前置放大、带通滤波、检波和整形输出脚在收到 38kHz 方波时拉低、没有载波时拉高这个反相逻辑本身就是解调完成的标志。搞懂这块电路等于把“调制—传输—解调—整形”整条链路压缩到两个元件上看清楚后面再碰遥控编码、无线传感器网络里的红外协议就不会只停留在“接上就能用”的黑匣子里。2. HS38 解调机制38kHz 带通滤波和反相输出到底在做什么2.1 从光电流到逻辑电平接收头内部的三级处理HS38以及 TL0038、VF0038 这类同族模块并不是一个简单的光敏三极管。它的封装里通常包含光电二极管、高增益前置放大器、中心频率约 38kHz 的带通滤波器、检波器以及施密特整形输出级。光电二极管把红外光强变化转成微弱电流前置放大把它抬到可处理的电压摆幅带通滤波只让接近 38kHz 的交流分量通过检波器再把“有载波”和“无载波”区分开最后施密特触发器把模拟判决整形成干净的数字电平。这个链条解释了一个常见困惑为什么发射端必须是 38kHz 方波而不是一直点亮红外管因为接收头的带通滤波器对直流和低频环境光不敏感只有调制在载波频率上的光强变化才能穿过滤波级。太阳光、白炽灯、人体红外辐射在带通之后被大幅抑制这就是一体化接收头抗环境光干扰的底层原因。常见的实现思路是带通级 Q 值不会做得极高所以载波频率偏离 38kHz 太多时灵敏度会下降但也不会瞬间失效这给低成本发射端留了容差。输出反相也来自这个结构检波级检测到足够强的 38kHz 分量时内部比较器翻转输出脚被拉低载波消失后比较器回到另一态输出脚被上拉为高。所以示波器上看到“发射时低、遮挡时高”不是接线接反了而是解调完成的正常表现。2.2 占空比 20%–30% 的取舍峰值电流、平均功率与接收灵敏度发射管用 38kHz 方波驱动时占空比直接决定两件事平均正向电流和光输出峰值。红外发射管的允许峰值电流远高于连续直流电流所以用窄脉冲驱动可以在不超平均功耗的前提下拿到较高的瞬时辐射强度。占空比取 20%–30% 是一个工程折中太低接收头在带通滤波后拿到的载波能量偏少作用距离变短太高平均电流上升发射管和驱动器件发热增加而接收头的带通级并不需要那么长的“导通时间”就能判决。用单片机生成时常见做法是把定时器配成 38kHz 翻转再用另一个比较通道或软件计数把高电平时间压到周期的 20%–30%。用 555 时占空比由两个电阻的比值决定普通接法很难低于 50%需要加二极管或改用互补输出结构才能调到 20%–30%。这也是为什么原文说“占空比可调为 20%–30% 减小功率”——它不是随便给的范围而是峰值电流和平均功耗之间的血泪经验值。// 以常见 8 位单片机定时器为例38kHz 载波 约 25% 占空比 // 假设系统时钟 16MHz定时器预分频 8计数时钟 2MHz // 38kHz 周期约 52.6us对应计数约 105高电平约 26 个计数 25% void ir_carrier_init(void) { TCCR1A (1 COM1A1) | (1 WGM11); // 比较输出模式快速 PWM TCCR1B (1 WGM13) | (1 WGM12) | (1 CS11); // 预分频 8 ICR1 105; // 周期计数决定 38kHz OCR1A 26; // 高电平计数约 25% 占空比 DDRB | (1 PB1); // 载波输出脚 }这段代码的关键不是寄存器名字而是两个数ICR1决定载波周期OCR1A决定高电平宽度。周期算错接收头带通级就匹配不上占空比算错要么距离不够要么发射管发热。实际调试时先用示波器看发射管两端波形确认频率和占空比再去看 HS38 输出脚能少走很多弯路。2.3 输出脚的上拉与示波器观察为什么“高电平”不等于“没收到光”HS38 输出级通常是集电极开路或带内部上拉的结构不同批次、不同厂牌的细节有差异。用示波器直接看输出脚时如果模块没有内部上拉而外部也没接可能出现浮空、缓慢爬升或电平不确定的现象。原文用“示波器观察输出脚为低电平 0 / 高电平 1”来描述前提是模块输出级能给出明确的高低电平如果实测发现遮挡时电平不干净先检查输出脚是否需要外部上拉而不是怀疑接收头坏了。另一个容易翻车的点是HS38 对载波是“有则低、无则高”但它并不解码红外遥控的 0/1 编码。遥控协议里的引导码、地址码、数据码是在这个反相电平基础上再做脉宽或脉距调制。很多人第一次用 HS38 接单片机中断看到一串高低电平就以为可以直接读键值结果发现读出来的是载波包络后面还得按协议解析。这个分层理解清楚了才不会把“解调”和“解码”混成一件事。3. 发射端驱动没有限流电阻和三极管时电路到底靠什么活下来3.1 单片机 IO 直驱红外管的边界条件原文明确说“既没有限流电阻也没用三极管驱动”这在小电流、短时间、实验性场景下能工作但它有明确的边界。单片机 IO 的灌电流/拉电流能力有限红外发射管的正向压降通常在 1.2V 左右直接接在 IO 和地之间时IO 输出高电平的电压减去管压降剩下的电压落在 IO 内部等效电阻和发射管动态电阻上。38kHz 窄脉冲下平均电流不大所以短时间内不会立刻损坏但峰值电流可能已经接近 IO 的绝对最大额定值。常见的实现思路是实验板上用 IO 直驱只为“看见现象”真要稳定发射还是要在回路里串限流电阻或者用三极管/MOS 管做电流放大。原文没有写电阻值是因为它定位在“供初学者了解元件用”不是可量产电路。理解这一点很重要极简电路的价值在于把调制和解调的关系暴露出来而不是让人误以为红外发射可以长期裸奔。3.2 555 与单片机两条路径的差异用 555 产生 38kHz 时电路是纯模拟的上电就振不需要写代码适合快速验证接收头好坏。但普通 555 接法的占空比接近 50%要压到 20%–30% 得改拓扑而且 555 的输出驱动能力、频率随温度漂移这些因素会让载波频率偏离 38kHz接收距离跟着变。用单片机则可以把频率和占空比都锁在定时器里还能顺便做按键编码代价是需要一点固件开发。两条路径没有绝对优劣关键看验证目标。如果只是确认 HS38 输出脚会不会随发射变化555 更快如果后面要接协议、做低功耗间歇发射单片机更顺。原文把两种都列出来实际上是在说38kHz 载波可以由不同源产生接收头只认频率和包络不认你是谁发的。3.3 用示波器建立“发射—接收”因果链调试这类电路示波器比万用表有用得多。先把探头接发射管两端确认看到 38kHz 方波频率误差控制在接收头带通范围内再把探头移到 HS38 输出脚发射时应该看到稳定的低电平遮挡或停发时回到高电平。如果发射端波形正常而输出脚没反应优先查接收头供电和引脚定义如果输出脚有反应但边沿很脏查上拉和电源去耦。这里有个容易忽略的细节HS38 输出在载波突然出现和消失时会有一定的响应延迟数据手册里通常给的是微秒到百微秒量级。用连续方波观察电平状态没问题但如果后面要传编码包络的最小脉宽不能短于接收头的响应时间否则会出现脉宽失真。这个参数在“只看亮不亮”的阶段感受不到一旦上协议就会变成玄学丢包。4. 引脚识别与模块差异网上找不到引脚图时怎么不烧模块4.1 三脚模块的典型排列与试触法HS38 这类三脚接收头引脚通常是电源、地、输出但排列顺序不同厂牌可能不同。原文提到“网上很难找到引脚图”并给出试触法这背后是一个很实际的排查逻辑在不确定引脚定义时先用限流电阻串在电源路径上逐脚试探观察输出脚是否有正常的高低变化同时监测电流是否异常。试触法不是让你随便乱接而是在电源回路里加保护把接错的代价从“烧模块”降到“电流异常”。常见的排列有“输出—地—电源”和“电源—地—输出”两种外观上丝印有时只标型号不标功能。稳妥做法是查对应型号的数据手册查不到再用试触法配合限流电阻验证。注意试触过程中如果某个脚一接电源电流就明显跳升立刻断开不要反复试。4.2 不同厂牌 38kHz 模块的共性与例外HS38、TL0038、VF0038 这些型号在功能上高度相似中心频率 38kHz、输出反相、三脚封装。但带通带宽、输出级结构、供电范围、抗连续光干扰能力可能有差异。原文说“此图应适合大多数普通 38 模块有极个别不适合”这句话的工程含义是引脚功能层面可以按共性处理电气参数层面必须按具体型号核对。比如某些模块在强连续光下输出会误判某些模块的输出上拉能力较弱直接接单片机输入可能需要外部上拉。这些差异不会在“发射时低、遮挡时高”的定性实验里暴露但会在多模块替换、长距离、强光环境下变成常见问题。把共性当起点、把差异当排查项比背一张“万能引脚图”可靠。5. 避坑与排查红外收发实验里最容易翻车的五件事5.1 发射管不亮或接收无反应现象示波器看发射管两端没有 38kHz 波形或 HS38 输出脚始终为高。原因常见于发射管极性接反、单片机定时器输出脚没配成比较输出、555 电路电阻电容取值偏离 38kHz 太多。解决先单独验证载波源用示波器确认频率和幅值再串回发射管接收头先只接电源和地用已知工作的遥控器对着它按看输出脚有没有反相脉冲以此判断接收头本身是否正常。5.2 输出脚电平浮空、遮挡时读数乱跳现象HS38 输出脚在遮挡和发射之间没有干净的高低切换示波器上看到缓慢爬升或中间电平。原因通常是输出脚没有上拉电阻或模块输出级结构与预期不符。解决在输出脚和电源之间加一个合适的上拉电阻再用示波器看边沿同时检查电源去耦接收头对电源纹波比较敏感长导线供电时纹波会把输出搞得像玄学。5.3 占空比调了但距离反而变短现象把占空比从 50% 降到 20% 后接收距离明显缩短。原因是占空比降低后平均光功率下降接收头带通滤波后拿到的载波能量不足。解决不要一味追求低占空比先确认发射管峰值电流是否足够再在 20%–30% 范围内做距离对比如果距离不够优先检查发射管回路限流和接收头供电而不是继续压占空比。5.4 把解调输出当解码结果用现象单片机中断读到一串高低电平但无法对应遥控按键。原因是 HS38 输出的是载波包络不是协议解码后的键值。解决先抓取输出脚波形按红外协议的引导码、脉宽定义去解析或者用现成的解码库理解“接收头负责解调、单片机负责解码”的分层才不会在中断里对着包络干瞪眼。5.5 无限制流电阻导致 IO 或发射管发热现象长时间发射后单片机 IO 发烫或发射管亮度下降。原因是 IO 直驱时峰值电流超过额定值平均功耗在窄脉冲下被低估。解决串限流电阻或用三极管驱动测量实际平均电流实验性直驱只用于短时间观察不要当成长期工作电路。这个坑在“能亮就行”的阶段最容易被忽略等到换 IO 口才发现代价。6. 从极简电路到可靠链路设计取舍与验证习惯这块电路最值得琢磨的地方不是它省掉了什么而是它用最少的元件把红外链路的因果顺序摆了出来载波频率决定接收头能不能“看见”占空比决定峰值功率和平均功耗的平衡输出反相决定后续电路怎么取信号引脚定义决定模块能不能安全接入。省掉限流电阻和三极管换来的是现象直观、上手快代价是电气边界模糊、不适合长期运行。这个取舍本身就是一个很好的设计样本验证性电路追求的是把关键变量暴露出来产品电路追求的是把关键变量锁住。如果要把这个实验往可靠方向推一步我会按这样的顺序验证先用示波器确认载波频率落在接收头带通范围内再确认占空比和发射管平均电流在器件允许范围内然后看 HS38 输出脚在发射、遮挡、强环境光三种条件下的电平是否干净最后才去接协议层。这个顺序的好处是每一层都有可观测的量出问题时能定位到是载波源、发射回路、接收头还是解码逻辑而不是一上来就怀疑“模块坏了”。验证项观察点常见异常指向载波频率发射管两端波形周期定时器配置或 555 阻容取值占空比高电平宽度占周期比例驱动级拓扑或比较值接收输出HS38 输出脚高低切换供电、上拉、引脚定义环境光抗扰强光下输出是否误翻转接收头型号差异或电源纹波从那以后我每次搭这类极简收发电路都会先把发射波形和接收输出同时挂在示波器两通道上确认因果链闭合再往下做不再靠“灯亮不亮”判断。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站