低端 Arduino 用 74HCU04 振荡器把 LC 阻抗测量转为频率计数

声明: Turning Impedance into Frequency: An LC Experiment 是一个开源项目,作者为 nobcha(Hackaday 项目页)。本文是阅读该项目源码与文档后整理的学习笔记,用于理解「阻抗转频率」式 LC 测量的工程实现方式。本文作者不是该项目的开发者,未参与该项目的任何代码贡献。 文中工程细节均来自对开源代码的分析,不代表本文作者的设计决策。

性能很弱的 MCU 也能完成 L/C 测量。这个项目给出的做法是:根本不用 MCU 去做采样或信号生成。待测电感或电容被放进 LC 谐振槽,由 74HCU04 反相器构成 Franklin 振荡器,输出频率由 f = 1/(2π√(LC)) 决定。MCU 只负责数这个频率。阻抗到频率的映射全部发生在模拟物理层面,代码里没有任何 ADC 或相位解调。

谐振频率映射阻抗的物理机制

传统阻抗测量(例如 VNA)需要注入扫频信号、同步采样电压与电流、再解算复阻抗。这个项目的做法绕开了整条链路:把待测件接入谐振槽,让振荡器自发工作在由槽路参数决定的频率上。

关键点在分工:74HCU04 加 LC 槽是真正的模拟前端,承担阻抗到频率的全部转换;ATmega328P 不参与波形生成,也不做任何模拟采集。复杂度下沉到电路,MCU 退化为一个计数器。

信号链:74HCU04 振荡器把阻抗映射为频率,Arduino 只数频率

MCU 闸门计数与共振方程

ATmega328P 通过 FreqCount 库,在 1 秒闸门内对 Pin 5 的上升沿计数,直接得到整数频率。固件做两件事:

全文检索不到 analogRead、analogWrite、tone 或任何 ADC、同步采样调用。MCU 的全部负担是数脉冲加几行浮点除法。

复阻抗塌缩为标量频率的测量边界

振荡器只输出一个频率 f,它只反映槽路的净电抗。这一简化带来四个硬性边界:

复阻抗塌缩为标量频率:VNA 给出矢量,振荡器只给一个标量 f

适用边界与设计取舍

优势是硬件极简、电路透明,下限可到约 0.1 μH 小电感,成本远低于 VNA。

取舍同样明确:作者以结构清晰为目标,不追求绝对精度;每次上电或温度显著变化需重新校准,量程被固定 1–2 MHz 的槽路锁死,且 f 对 L 的映射是非线性的。

选型建议:只关心单个 L/C 的数值、且希望用最廉价 MCU 完成时,这套方案合适。需要复阻抗矢量、Q 值或在板测量时,仍应使用 VNA。