使用Arduino构建共射极放大器 | AI生成和翻译
使用 Arduino 构建共发射极(CE)放大器是个有趣的项目,但需要明确各自的作用:Arduino 本身并不充当放大器(它是数字微控制器),但可以作为使用双极结型晶体管(BJT)构建的 CE 放大器电路的信号源或测量工具。CE 放大器是经典的模拟电路,使用 NPN 或 PNP 晶体管放大微小输入信号,提供适中的电压增益和电流增益。
下面我将指导您设计一个基于 NPN 晶体管的 CE 放大器,使用 Arduino 生成输入信号(通过 PWM)并测量输出。这种设置将演示放大效果,同时利用 Arduino 的功能。
共发射极放大器概述
- 目的: 放大微小的交流信号(例如音频或正弦波)。
- 主要特点:
- 晶体管工作在放大区。
- 输入信号施加于基极,输出信号取自集电极。
- 电压增益由电阻比和晶体管特性决定。
- 组件:
- NPN 晶体管(例如 2N3904 或 BC547)
- 电阻(用于偏置和负载)
- 电容器(用于耦合交流信号)
- Arduino(信号源和测量工具)
步骤 1:设计电路
所需组件
- NPN 晶体管(例如 2N3904)
- 电阻:R1 = 47kΩ,R2 = 10kΩ(偏置),RC = 1kΩ(集电极),RE = 220Ω(发射极)
- 电容器:C1 = 10µF(输入耦合),C2 = 10µF(输出耦合),CE = 100µF(发射极旁路,可选,用于提高增益)
- Arduino(例如 Uno)
- 面包板、跳线
- 电源(Arduino 的 5V 引脚或外部 9V 电源,根据需要调整)
电路原理图
Vcc (5V) ---- R1 ----+---- RC ---- 集电极 (C)
47kΩ | 1kΩ |
| |
基极 (B) --- C1 -----+ |
10µF | |
Arduino PWM (引脚 9) R2 |
10kΩ 输出 --- C2 ---- 连接至 Arduino A0
| | 10µF
| |
+---- RE ---- 发射极 (E) --- CE (可选) --- GND
220Ω 100µF
|
GND
- 偏置(R1、R2): 设置晶体管的工作点。
- RC: 集电极电阻,用于输出信号。
- RE: 发射极电阻,用于稳定电路。
- C1、C2: 阻隔直流,通过交流信号。
- CE(可选): 旁路 RE,提高交流增益。
工作点
- 目标:将晶体管偏置在放大区(例如,对于 5V 电源,VCE ≈ 2.5V)。
- 分压器(R1、R2):\( V_B = V_{CC} \cdot \frac{R2}{R1 + R2} = 5 \cdot \frac{10k}{47k + 10k} \approx 0.88V \)。
- \( V_E = V_B - V_{BE} \approx 0.88 - 0.7 = 0.18V \)。
- \( I_E = \frac{V_E}{RE} = \frac{0.18}{220} \approx 0.82 \, \text{mA} \)。
- \( V_C = V_{CC} - I_C \cdot RC \approx 5 - 0.82 \cdot 1k \approx 4.18V \)。
- \( V_{CE} = V_C - V_E \approx 4.18 - 0.18 = 4V \)(适用于 5V 电源)。
步骤 2:使用 Arduino 作为信号源
Arduino 的作用
- 使用 PWM(脉冲宽度调制)在引脚 9(支持 PWM)上生成微小的交流信号。
- 使用简单的 RC 低通滤波器(可选)对 PWM 进行滤波,以近似正弦波。
生成信号的代码
const int pwmPin = 9; // PWM 输出引脚
void setup() {
pinMode(pwmPin, OUTPUT);
// 设置 PWM 频率(可选,默认约为 490 Hz)
}
void loop() {
// 使用 PWM 模拟正弦波(范围 0-255)
for (int i = 0; i < 360; i += 10) {
float sineValue = sin(radians(i)); // 正弦波范围 -1 到 1
int pwmValue = 127 + 127 * sineValue; // 缩放到 0-255
analogWrite(pwmPin, pwmValue);
delay(10); // 调整频率(例如,此处约为 100 Hz)
}
}
- 输出: 约 0–5V 的 PWM 信号,以 2.5V 为中心,峰峰值约为 2.5V。
- C1: 去除直流偏置,仅将交流分量(约 1.25V 峰值)传递到基极。
可选滤波器
在引脚 9 和 GND 之间串联一个 1kΩ 电阻和一个 0.1µF 电容器,在 C1 之前提取信号,以将 PWM 平滑为粗略的正弦波。
步骤 3:测量输出
Arduino 测量
- 将放大器输出(经过 C2 后)连接到 A0。
- 使用 Arduino 读取放大后的信号,并通过串行监视器显示。
测量和显示的代码
const int inputPin = A0; // 在此处测量输出
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(inputPin); // 0-1023 映射到 0-5V
float voltage = sensorValue * (5.0 / 1023.0);
Serial.print("输出电压 (V): ");
Serial.println(voltage);
delay(100); // 调整采样率
}
预期增益
- 电压增益 \( A_v = -\frac{RC}{RE} = -\frac{1k}{220} \approx -4.5 \)(负号表示相位反转)。
- 输入:约 1.25V 峰值(经过耦合后)。
- 输出:约 4.5 × 1.25 = 5.625V 峰值(但由于电源限制,在 5V 处被削波)。
步骤 4:搭建和测试
组装
- 按照原理图在面包板上连接电路。
- 将信号生成代码上传到 Arduino,并将引脚 9 连接到 C1。
- 通过 Arduino 的 5V 为电路供电(或使用 9V 电源并调整电阻)。
- 上传测量代码并打开串行监视器(波特率 9600)。
验证
- 输入信号: 经过 C1 后约为 1–2V 峰峰值(如果可用,请使用万用表或示波器测量)。
- 输出信号: 应更大(例如 4–5V 峰峰值)且相位反转。
- 使用万用表检查 VCE(约 2–4V),确保工作在放大区。
提示和故障排除
- 增益过低: 在 RE 两端添加 CE(100µF)以提高交流增益(消除 RE 的退化效应)。
- 削波: 如果输出超过 5V,请减小输入幅度(调整 PWM 范围)或增加 Vcc(例如使用 9V 外部电源)。
- 噪声: PWM 信号类似方波;使用更好的正弦波(通过外部发生器或滤波器)可以改善结果。
- 晶体管规格: 确保 2N3904 能够处理电流(Ic < 200mA,此处安全)。
这种设置演示了 CE 放大器的核心行为——电压放大——同时集成 Arduino 进行信号生成和分析。想要调整增益、添加扬声器播放音频或优化信号吗?请告诉我!