💡 一、电路功能简要分析
电路图是典型的光耦隔离输入电路,用于将外部信号输入通过光耦隔离后接入 MCU 或其他控制器。我们来逐个分析,并说明你一般可以在 IN1+ / IN1− ~ IN2+ / IN2− 接口连接什么设备。
每个通道(IN1 到 IN2)都包括如下关键部分:
部件名 | 说明 |
---|---|
EL817S1(D)(TA)-F | 光耦隔离器,输入端通过光电隔离器将信号传递到输出端,起到保护 MCU 和抗干扰作用 |
D1~D4 (M7) | 快恢复二极管,防止反向电压击穿 |
R5R6, R9R10 等 | 下拉电阻,用于保证信号稳定 |
R3R4, R7R8 等 | 限流电阻,保护光耦输入电流不超标 |
CAN_5V | 给输入端提供电源(作为上拉电压) |
CAN_GD | 接地,共地参考 |
VDD_3V3 | 光耦输出侧工作电压,通常接控制电路(如 MCU)的工作电压 |
🧩 二、信号路径说明(以 IN1 为例)
-
IN1+ / IN1− 接收到外部差分信号(或者模拟电平信号)。
-
差分电压驱动光耦 LED 导通。
-
光耦输出端隔离传输信号至 MCU 侧。
-
最终信号被控制器(例如 STM32)采集处理。
🔌 三、你可以接什么设备到 IN1+ / IN1−(IN2~IN4 同理)
由于这是光耦隔离输入通道,你可以接:
✅ 常见输入源类型:
设备 | 描述 |
---|---|
开关量输入 | 如干接点、继电器输出、开关按钮等。 |
PLC 输出端口 | PLC DO(数字输出)可以接入。 |
传感器的开关量输出 | 如接近开关、光电开关、霍尔传感器输出等。 |
工业控制信号 | 如 5V / 12V / 24V 的工业电平信号,适配限流电阻即可。 |
差分信号(需要确认隔离级别) | 如果设备输出的是差分信号,也可通过此对接入。 |
⚠️ 注意事项:
-
光耦输入侧是电流驱动型,典型电流为5~10mA,所以外部设备输出必须能提供对应电流。
-
你短接 IN1+ 和 IN1−(以及其它)后能收到信号,说明光耦被导通,说明此输入是通过电压差或导通路径触发。
-
输入电压不能超过光耦耐压(通常输入电阻与限流电阻已做保护)。
-
接入差分信号或 TTL 电平需根据实际电平调整限流电阻。
🛠 四、实际接法示例
示例1:干接点(继电器常开触点)
-
接法:IN1+ 接 5V,IN1− 接干接点 -> CAN_GD(闭合后导通)
示例2:NPN 开路输出传感器
-
NPN 输出 → IN1−
-
IN1+ → 外部 5V(或通过限流接 CAN_5V)
示例3:PLC 数字输出(24V)
-
PLC DO+ → IN1+
-
PLC DO− → IN1−
-
注意加合适限流电阻(比如 R3、R4,47KΩ)
📦 总结
这个光耦输入模块可用于:
-
接入干接点信号
-
接入 NPN/PNP 型工业传感器输出
-
接入 PLC 数字量输出
-
接入 TTL 或 24V 开关量信号(需限流)
二、光耦隔离器的作用
光耦隔离器(Optocoupler 或 Optoisolator)的核心作用就是**“隔离”**——它通过光信号将输入电路和输出电路完全电气隔离开,防止高压、噪声或干扰从一侧传导到另一侧。
✅ 一句话总结:
光耦的作用是“用光传递信号,用电隔离两个系统”,保护低压控制电路的安全。
🔧 光耦的内部结构与工作原理
一个典型的光耦由两部分组成:
-
输入端:一个小功率 LED,发出红外光
-
输出端:一个光敏三极管或光电晶体管,感应红外光导通
当输入端有电流流过时,LED 点亮,发出红外光。输出端的光敏晶体管感应到光后导通,从而“传递”信号。但因为中间是光,没有电连接,所以两边完全电气隔离。
🔋 光耦隔离的作用详解
功能 | 描述 |
---|---|
🛡 电气隔离 | 把高电压/高噪声侧(如传感器、工业设备)和低电压/微控制器侧隔离,防止电压串扰、共模干扰 |
🔥 过压保护 | 外部高压或浪涌信号无法直接传导到 MCU 电路,避免烧毁芯片 |
🌩 抗干扰 | 光传输对电磁干扰不敏感,能大大提高系统可靠性 |
🔀 信号转换 | 有些光耦具备逻辑电平转换功能,如 24V 转 3.3V 信号 |
⚠ 防止地环流 | 两侧不共地,可以避免地环路产生干扰或破坏电路 |
🔌 接口适配 | 可以兼容不同电平的输入信号,如 12V、24V 工业信号转 MCU 的 3.3V 接口 |
🧪 举个实际例子:
例子:工业传感器输出 24V 信号,MCU 是 3.3V 电平
直接连 MCU:
-
一旦 24V 窜入 MCU,芯片烧毁。
加入光耦:
-
光耦输入端连接 24V,通过限流电阻驱动 LED;
-
光耦输出端与 MCU 侧(3.3V)通信;
-
无论 24V 多大,输出端都安全,因为电没有“通”过去,只是光。
🧭 常见应用场景
应用场景 | 描述 |
---|---|
工业控制输入 | 采集 PLC、继电器、传感器信号等 |
串口/通讯保护 | CAN、RS485/RS232 等接口隔离 |
电源反馈隔离 | 如开关电源反馈电路使用光耦 |
开关输入采集 | 干接点、按钮信号输入 |
PWM 驱动隔离 | 用于驱动 MOS 管、IGBT 等 |
📌 总结一句话:
光耦是一种既安全又抗干扰的信号隔离桥梁,特别适合用在 MCU 控制板与外部高压/强电干扰源之间,是工业设计中非常常用的一种保护手段。
三、47KΩ电阻是在输出端,如果在输入端接24v,光耦的内部输入端和输出端是靠光传递信号,那么当输入24V时,47KΩ电阻为什么会起到保护LED的作用
这个疑问非常有代表性,我们来澄清两个关键点,并以你电路中的 IN1 通道为例,一步步解析:
✅ 1. 明确“输入端”和“输出端”的定义:
在光耦电路中:
名称 | 是光耦的哪一侧 | 工作原理 |
---|---|---|
输入端(LED 侧) | 光耦 初级侧 | 接收电流、点亮 LED |
输出端(光敏晶体管 侧) | 光耦 次级侧 | 接收光线、输出电流信号给 MCU |
你提到的 24V 是接在 输入端(即光耦内部的 LED 两端),所以确实,我们关注的是:
是否有足够的限流措施保护光耦内部的 LED?
✅ 2. 电路结构回顾(以 IN1 通道为例):
让我们回顾下你的电路(IN1)信号输入路径:
外部信号 → IN1+ -----> D1 (M7) → R5 → 光耦 LED (引脚1) → 引脚2 → R6 → CAN_GD(地)
R3 = 47kΩ 并不在这个路径上,它是连接在 VDD_3V3 → 光耦输出(晶体管侧)
,属于输出端的上拉电阻,不影响 LED 电流路径!
🧩 所以,输入 24V 时,保护 LED 的关键是哪些电阻?
在电流路径:
24V → IN1+ → D1(保护二极管)→ R5(限流)→ LED → R6 → GND
-
真正限流的是
R5
(在 IN1+ 后) -
R6
是下拉电阻,通常在几kΩ,用于保证 GND 参考,可能也影响电流大小 -
D1 是防止反向电压的保护二极管
✅ 那么,47kΩ 是谁?
你说的 47kΩ
(R3) 是:
VDD_3V3 → R3 → 光耦输出(引脚4)
它属于光耦输出端,用于:
-
给光敏晶体管集电极提供上拉
-
与开集电极输出结构配合输出逻辑电平
这和 LED 工作电流无关,也不会保护 LED!
🔍 结论:你说得完全对!
-
✅ 你接入 24V 是在光耦输入端(LED)
-
✅ 真正保护 LED 不被烧坏的,是
R5
(而不是 R3 = 47kΩ) -
✅ R3 的作用在于光耦输出端上拉,并非限流
✅ 建议你检查每一路:
确保每个 IN+ 路径上有 限流电阻(如 R5、R9、R13、R17),这些电阻的值需要根据你接入的电压来计算:
快速计算公式(供参考):
R=Vin−VfILEDR = \frac{V_{in} - V_{f}}{I_{LED}}
-
Vin = 24V
-
Vf ≈ 1.2V
(LED 正向压降) -
I_LED ≈ 5mA
则:
R=24−1.20.005=4560Ω→可选4.7kΩ 10kΩ都可以R = \frac{24 - 1.2}{0.005} = 4560Ω → 可选 4.7kΩ ~ 10kΩ 都可以
✅ 总结
误区 | 正解 |
---|---|
R3 = 47kΩ 用来保护光耦 LED | ❌ 不是,R3 是输出端上拉电阻 |
输入 24V 会烧坏光耦 LED 吗? | ⚠ 如果 R5 太小,电流过大就会烧 |
真正保护 LED 的电阻是? | ✅ R5 (限流电阻) |
如果你不确定某个通道的 R5 值适合多少,我可以帮你计算推荐值,也可以给你列出一张完整的通道保护电阻表,要不要我帮你整理一下?
四、上拉电阻和限流电阻
这是一个非常经典的问题,尤其你提供的电路图中上拉电阻和限流电阻都实际存在,但它们分别在不同的电路段上、功能完全不同。下面我们就结合你的这张光耦输入电路来深入讲清楚它们的区别。
✅ 一图看清位置
以 IN1 通道为例(你电路中的结构):
输入侧: 光耦内部: 输出侧:
+24V ──► IN1+ ──┬─► D1 ──► R5 ──► LED ──► GND (CAN_GD)
│ ↑
└────────────────────┐ │
│ │
光耦内部 │
▼ │
光敏晶体管 (光控制导通) │
▲ │
│ ▼
VDD_3V3 ──► R3 = 47kΩ ──► 输出信号
↑ 上拉电阻
控制器侧供电
🔍 一、限流电阻(R5)
🧩 作用:
控制通过光耦 LED 的电流大小,避免因输入电压过高而烧毁 LED。
📐 位置:
在输入电压(IN1+)到光耦 LED 的路径中。
📊 电流公式:
ILED=Vin−VfR5I_{LED} = \frac{V_{in} - V_f}{R5}
-
VfV_f 是 LED 的正向压降(约 1.2V)
-
电阻越大,LED 电流越小;电阻太小 → LED 过流烧毁
🔥 不加限流电阻的后果:
输入电压一旦超过 2~3V 就可能瞬间烧毁 LED,因为 LED 是电流驱动器件,电阻为0时电流几乎无穷大。
🔧 二、上拉电阻(R3)
🧩 作用:
提供一个默认高电平,将光耦输出(开集电极)拉到 VDD_3V3,便于控制器(MCU)读取明确的高或低电平。
📐 位置:
在光耦输出(光敏三极管的集电极)与正电压(VDD_3V3)之间。
🧠 为什么需要它?
光耦输出是**“开集电极”结构**:
-
当 LED 点亮,光敏三极管导通 → 输出被拉低(接地)
-
当 LED 熄灭,三极管截止 → 输出开路(悬空) ❌
-
所以用上拉电阻将其拉成有效高电平
⚙ 类似于:
插座没电源,就算插上灯泡也不亮——上拉电阻提供“电源”让电平能被拉起来。
📋 总结对比表
项目 | 限流电阻(R5) | 上拉电阻(R3) |
---|---|---|
📌 作用 | 限制 LED 电流,保护光耦 | 将输出电平拉高,便于 MCU 读取 |
📍 位置 | 在输入电压 → 光耦 LED 之间 | 在光耦输出(三极管集电极) → 电源之间 |
🎯 主要用途 | 电流保护 | 电平确定 |
📐 常见阻值 | 1kΩ ~ 20kΩ(取决于输入电压) | 4.7kΩ ~ 100kΩ(取决于IO读取速度) |
❌ 不使用后果 | LED 可能烧毁 | 输出电平悬空、不确定(MCU误读) |
🔁 工作时是否有持续电流 | 有(LED点亮时) | 有,但很小(数十微安) |
✅ 示例图解(逻辑波形)
状态 | LED 状态 | 光敏三极管 | 输出端 | MCU读取 |
---|---|---|---|---|
IN1+ = 高电平(24V) | 点亮 | 导通(接地) | 0V | 低电平 |
IN1+ = 0V | 熄灭 | 截止 | 由 R3 拉到 3.3V | 高电平 |
🧠 类比记忆法:
类比角色 | 电阻名称 | 功能 |
---|---|---|
水龙头控制水流量 | 限流电阻 | 控制电流进光耦LED的“水量” |
弹簧把门推回原位 | 上拉电阻 | 没人推时,把门(信号)恢复为“高电平” |