简介:这是一份面向电子初学者与硬件爱好者的红外通信入门资料,围绕红外发射管与HS38(HS0038)接收集成模块展开,帮助读者理解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 输出脚高低切换 | 供电、上拉、引脚定义 |
| 环境光抗扰 | 强光下输出是否误翻转 | 接收头型号差异或电源纹波 |
从那以后我每次搭这类极简收发电路,都会先把发射波形和接收输出同时挂在示波器两通道上,确认因果链闭合再往下做,不再靠“灯亮不亮”判断。希望帮到你。
本文还有配套的精品资源,点击获取