
用Arduino和变容二极管打造你的迷你FM收音机记得小时候第一次拆开收音机时看到里面密密麻麻的元件和线圈总觉得那是个神秘的魔法盒子。如今我们完全可以用几块钱的电子元件亲手复现收音机最核心的调谐原理。本文将带你用Arduino和变容二极管制作一个会跳舞的FM调谐电路通过电压变化直观看到频率如何被驯服。1. 变容二极管藏在电子元件中的调频魔术师变容二极管在电路符号中看起来平平无奇就像普通二极管加了个电容符号。但当你给它施加反向电压时奇妙的事情就发生了——它的结电容会随着电压变化而改变。这种特性源于PN结内部的耗尽层零偏压状态耗尽层最窄相当于平行板电容的极板距离最近此时电容值最大反向偏压增大耗尽层像被拉开的弹簧极板间距增大电容值减小典型参数BB109变容二极管在0V时约100pF12V时降至约10pF提示选择变容二极管时重点关注电容变化比C0/C12和Q值这对调谐灵敏度至关重要用万用表测量变容二极管时会发现它和普通二极管完全不同——反向电阻不再是无穷大而是会随测试电压变化的动态值。这正验证了它的可变电容特性。2. 搭建硬件从零开始的调谐电路2.1 材料清单元件规格数量备注Arduino Uno-1也可用ESP32变容二极管BB109或1N40071推荐BB109电感线圈0.1μH1可用漆包线自制电位器10kΩ1线性型电阻10kΩ21/4W碳膜电容22pF2瓷片电容面包板-1830孔2.2 电路连接步骤将电感与变容二极管并联构成LC谐振回路连接22pF耦合电容到谐振回路Arduino的PWM引脚如D9通过10kΩ电阻连接变容二极管负极电位器中间引脚接Arduino模拟输入A0两端分别接5V和GND用另一10kΩ电阻将变容二极管正极接地// 简易调谐电压生成代码 void setup() { pinMode(9, OUTPUT); // PWM输出引脚 } void loop() { int potValue analogRead(A0); int tuneVoltage map(potValue, 0, 1023, 0, 255); analogWrite(9, tuneVoltage); delay(50); }3. 原理揭秘LC谐振与频率公式当旋转电位器时Arduino输出的PWM电压经RC滤波后形成直流控制电压。这个电压改变变容二极管的电容值进而影响LC回路的谐振频率谐振频率 f 1/(2π√(LC))假设我们使用的电感L0.1μH变容二极管电容C从100pF到10pF变化C100pF时f ≈ 50.3MHzC10pF时f ≈ 159.2MHz这正好覆盖了FM广播频段88-108MHz。实际调试时可以通过拉伸或压缩电感线圈来微调频率范围。4. 进阶实验用示波器观察波形如果没有专业收音机芯片我们仍然可以用示波器直观看到调频效果将LC回路输出接至示波器探头缓慢旋转电位器观察波形频率变化尝试用音频信号调制PWM输出可以看到载波频率随音频变化// 添加音频调制的进阶代码 #include pitches.h void setup() { pinMode(9, OUTPUT); } void loop() { int potValue analogRead(A0); int baseFreq map(potValue, 0, 1023, 30, 70); for (int i0; i100; i) { int tuneVoltage baseFreq sin(i/10.0)*10; analogWrite(9, tuneVoltage); delay(1); } }这个实验虽然不能真正接收广播信号但它完美演示了FM收音机最核心的调谐原理。当你在示波器上看到频率随电位器转动而变化时那种亲手操控电磁波的成就感是教科书上的公式永远无法给予的。