放大器
电压放大器
背景:作者接触LM358(经典型号)是来自 Arduino Uno 和 Arduino Mega 2560 中的LMV358IDGKR
特征:
- 电压增益高,输入阻抗高,输出阻抗低
- 输入一个小电压信号,输出更大的电压信号
- 负回授:通过将输出信号的一部分反向送回输入端,让运放自动调节,使输出稳定且线性可控
工作模式
| 模式 | IN+ 接法 | IN− 接法 | 输出特点 | 主要用途 |
|---|---|---|---|---|
| 1️⃣ 同相放大器 (Non-Inverting Amplifier) | 接输入信号 | 由电阻分压网络 (Rf、Rin) 反馈到 GND | 输出信号与输入同相,放大倍数 ≥ 1 | 电压放大、不改变极性 |
| 2️⃣ 反相放大器 (Inverting Amplifier) | 接地 | 通过电阻 Rin 接输入信号,并用 Rf 从 OUT 反馈 | 输出信号反相,放大倍数 = Rf / Rin | 信号反相放大、加权求和等 |
| 3️⃣ 比较器 (Comparator) | 输入信号之一 | 另一路固定参考电压(如 Vref、GND、VCC) | 输出只有高或低电平(饱和) | 电压比较、阈值检测、过温保护 |
| 4️⃣ 电压跟随器 (Voltage Follower / Buffer) | 接输入信号 | 直接接 OUT | 输出 = 输入,不放大电压 | 阻抗变换、信号隔离、驱动负载 |
负回授vs正回授
| 类型 | 结果 | 用途 |
|---|---|---|
| 负回授 | 稳定、线性、可控 | 放大器、缓冲器、调节电路 |
| 正回授 | 可能振荡、不稳定 | 比较器、振荡器、触发器 |
开环/闭环增益
开环增益(Open-Loop Gain,AOL)
开环增益就是运放不加任何负反馈时,输出电压与输入差模电压的比例。
公式:
$$
A_\text{OL} = \frac{V_\text{out}}{V_+ - V_-}
$$
- V_+ - V_- = 输入差模电压
- Vout = 输出电压
特点:开环增益非常大,所以即使输入差压很小,输出也可能饱和。
闭环增益(Closed-Loop Gain,ACL)
闭环增益是加了负反馈后的运放增益,由外部电阻或反馈网络决定,输出 = 增益 × 输入。
公式(同相放大器):
$$
A_\text{CL} = 1 + \frac{R_f}{R_g}
$$
公式(反相放大器):
$$
A_\text{CL} = - \frac{R_f}{R_\text{in}}
$$
- 由外部电阻比设定
- 不依赖运放内部开环增益(只要开环增益远大于闭环增益 × 100~1000)
关键关系
闭环负反馈下:
$$
V_\text{out} = A_\text{CL} \cdot V_\text{in}
$$
而开环公式仍然成立:
$$
V_\text{out} = A_\text{OL} \cdot (V_+ - V_-)
$$
所以:
$$
V_+ - V_- = \frac{V_\text{out}}{A_\text{OL}} = \frac{A_\text{CL} \cdot V_\text{in}}{A_\text{OL}} \ll V_\text{in}
$$
✅ 差压很小 → 输出被反馈控制 → 保持闭环增益稳定
同相放大器
电路:信号直接接 **IN+**,IN- 通过分压电阻 R1, R2 接 OUT 与 GND。
公式:
$$
V_{out} = \left( 1 + \frac{R_f}{R_{in}} \right) \cdot V_{in}
$$
👉 特点:
- 没有负号(不反相)。
- 增益 ≥ 1。
反相放大器
电路:信号从 **电阻 Rin → 运放的 IN-**,IN+ 接地,反馈电阻 Rf 从 OUT 接回 IN-。
公式:
$$
V_{out} = -\frac{R_f}{R_{in}} \cdot V_{in}
$$
- Rin:输入电阻
- Rf:反馈电阻
- 负号代表输出信号与输入信号相反(反相)
- 放大倍数 $A_v = -R_f / R_{in}$
比较器
电路:IN+ 作为输入信号,IN-作为参照信号(固定)
公式:
$$
V_{out} =
\begin{cases}
V_{CC}, & \text{若 } V_{in+} > V_{in-} \
0, & \text{若 } V_{in+} < V_{in-}
\end{cases}
$$
例
Arduino Uno 和 Arduino Mega 2560 中的LMV358IDGKR放大器的其中一路pin 5 6 7作为比较器:

比较器自动判断 USB 电源和外部电源(VIN/DC 插座)谁来给 Arduino 供电
Arduino 的供电来源有两种:
- USB 5V
- 外部电源(DC 插座 / VIN)
需要判断:
- 是否插入了 外部电源
- 如果插入,就 关闭 USB 供电路径
判断逻辑:
比较:
1 | VIN/2 vs 3.3V |
结果:
| 条件 | 输出 |
|---|---|
| VIN/2 < 3.3V | 外部电源不足 → 开启P沟道MOS 使用 USB 供电 |
| VIN/2 > 3.3V | 外部电源存在 → 关闭P沟道MOS 不使用 USB 供电 |
电压跟随器
电路:信号接 IN+,OUT 直接接 IN-。
公式:
$$
V_{out} = V_{in}
$$
👉 特点:
- 增益 = 1。
- 输入阻抗极高,输出阻抗极低(隔离用)。
例1
图中 1 2 3 引脚放大器作为电压跟随器:

**引脚 3 (non-inverting +)**:输入信号端。
引脚 2 (inverting –):接到了输出(引脚 1),形成全反馈。
**引脚 1 (output)**:运放输出。
原理:
运放有一个**很大的开环增益 (AOL, open-loop gain,通常 > 100,000)**。
输出电压公式:
$$
V_{out} = A_{OL} \cdot (V_{+} - V_{-})
$$在负反馈作用下,(V+ - V–) 必须极其接近 0,否则输出就会“拉到极限”。
所以结果就是:
$$
V_{out} \approx V_{in+}
$$
如何理解(V+ - V–) 必须极其接近 0:
假设闭环增益 = 1,输入 Vin = 0.1 V。
闭环电路要求:
$$
V_\text{out} = A_\text{CL} \cdot V_\text{in} = 0.1\text{V}
$$
运放动作原理:
- 开环增益 AOL= 100,000
- 输出公式:Vout=AOL⋅(V+−V−)
- 为了产生 0.1 V 输出,需要差模电压:
$$
V_+ - V_- = \frac{V_\text{out}}{A_\text{OL}} = \frac{0.1}{100,000} = 1~\mu\text{V}
$$
也就是说,这里的 123 引脚组合不是“放大了相同倍数”,而是 让输入电压直接复制到输出 即:电压跟随器。
作用:
这种配置的目的并不是获得电压增益,而是:
- 输入阻抗高 → 减少对信号源的负担。
- 输出阻抗低 → 可以驱动后级电路。
- 信号缓冲 → 电压保持不变,但能带动更多负载。
例2
P8X32A-Q44 主控芯片引脚32(DACOUT)输出到AD8655ARZ的IN+,OUT 直接接 IN-,AD8655ARZ作为电压跟随器。由于其主控芯片无DAC功能,引脚32将输出的为:0-255的8bit数字信号再经过Σ-Δ(Sigma-Delta)内部算法,将8bit数字信号转换成均匀且高频PWM信号,再通过低通RC电路将高频PWM信号转换成不同电压的直流电,简单理解为PWM + RC + 运放 的伪 DAC。





