I am using the circuit below to measure inductances. It works together with Arduino. We introduce a 5V pulse for a few milliseconds and then resonate the LC tank at the resonant frequency. This oscillating signal is transformed to a binary signal with the comparator (LM339). So if we measure the duration of the pulses at the comparator output we can obtain the inductance from the equation L=1/(2pisqrt(L*C)).


simulate this circuit – Schematic created using CircuitLab

I tried to measure different values ​​of inductances with this circuit and approximately from 50 uH it measures in an acceptable way. The problem is that I expected that with high values ​​of inductance (on the order of mH) it would not give a problem and it turns out that with inductances greater than about 2.5 mH it does not measure well.

For these tests, I used color-coded inductances (resistor format). I have realized that the greater the inductance of this type of coil, its resistance increases. So I thought that could be why. Although I don't know if there is another reason or if there is any way to improve the circuit. Any suggestion?

  • 1
    \$\begingroup\$ Do you have a split supply for the LM339? If IN+ is going far below GND in single supply mode, the input may clip the voltage or may fail at all. (Have a look at your equation) \$\endgroup\$
    – Jens
    Jun 11, 2022 at 1:24

1 Answer 1


If you simulate or measure the behavior of the circuit, it becomes clear that the amplitude of the "ringing" voltage is tiny. The comparator doesn't have enough sensitivity to pick it up reliably outside of the range of inductances you've noted.

If you want to keep this approach, then the voltage needs to be amplified a bit. A simple transistor amplifier will do. It will also help to choose smaller resonant capacitors, so that lower-Q inductors can be accommodated.

SW1 and SW2 are really just GPIO outputs. Set both to 0 (low) output. Then C1 and C2 are connected. Set SW2 to input. Then C2 is disconnected. Or set SW1 to input - then C1 is disconnected.

When Q is low - mostly due to the coil's ESR, and there are few or no transitions on the output after the pulse, switch from C2 to C1 - otherwise the inductor will discharge too fast due to low Q, so a lower resonant C will help.

The pulse should be short as well - not milliseconds, but 10us, or even less. Otherwise you'll be saturating inductors, and can even magnetize some of them.

The circuit as shown will work with V1, SW1 and SW2 being GPIO outputs.

The amplifier Q1 has gain 10. The comparator LM339 needs R10 connected to output. CircuitLab fails when you do that, so I've left it "unconnected". In reality, you'd need to connect it. LM339's output is open-collector, and the internal weak pullups in most MCUs are not suitable for the relatively fast switching we expect here (up to a MHz).


simulate this circuit – Schematic created using CircuitLab

With setup as shown, the waveforms look as follows:

Analog waveforms at various points in the circuit

Comparator output

To eliminate the comparator chatter in the physical realization of this circuit, you'd need to add a slight feedback from the comparator output to the emitter of Q1, to provide hysteresis. The feedback would be capacitively coupled perhaps.

The circuit above works from about 100nH to 0.5H - about 6 orders of magnitude.

In any case, there are much better circuits you could use. A phase measurement in closed loop would work better, i.e. you excite the tank, sweep the frequency and detect resonance when 90 degree phase shift exists.

  • \$\begingroup\$ The idea then, would be to use the low capacitance for low inductances so that the Q factor increases and therefore the resistance of the series RLC circuit decreases (R=X/Q). The same would happen with high inductances since the ESR increases with the value of inductance and a low Q factor would help to reduce it. Is this more or less the reasoning? \$\endgroup\$
    – Sharik_97
    Jun 11, 2022 at 13:40
  • \$\begingroup\$ The higher the static resistance of the coil (the ESR at 0Hz), the smaller the capacitor needs to be so that you can capture a few cycles of oscillation before the inductor discharges. \$\endgroup\$ Jun 11, 2022 at 18:01
  • \$\begingroup\$ Generally, detecting a resonant null is more sensitive than attempting to detect a resonant maximum. \$\endgroup\$ Jun 11, 2022 at 18:07
  • \$\begingroup\$ Sure, by reducing the capacitor the power dissipated due to ESR (by comparison) would be less, right? \$\endgroup\$
    – Sharik_97
    Jun 12, 2022 at 23:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.