Given an inductor of an unknown (though magnitude-estimatable) value, and a resistor of precisely known resistance, how can one calculate the inductance of the inductor?

Tools I have at my disposal:

  • Oscilloscope (both digital and analogue)
  • Signal generator (can make any waveform up to around 20KHz)
  • DMM

Some things I have noticed during my experimentations:

  • If I apply a sine wave I see a phase shift.
  • If I vary the frequency I see different levels of attenuation.
  • If I apply a square wave I see sharp peaks at the rising edge and sharp troughs at the falling edge.

Ultimately I'd like something I can sample in some way with a microcontroller - be that with analogue inputs, the use of timers / input capture / output compare, etc, or whatever other means, to then calculate the inductance in use.

I know how to do phase measurement of digital signals, but can this be adapted to measuring the phase of a sine wave?

Alternatively, could I use an LC circuit and use the resonant frequency of that combination in some way?


4 Answers 4


We've actually thought about how to do this from a microcontroller to make a cheap L/C/R meter. It needs to be cheap and small because we plan to make a business card that has a useful circuit on it.

Anyway, the answer is probably different from doing this manually with a signal generator and scope or automatically with a microcontroller.

Manually, you can set up a L-R low pass filter. That means input signal to one side of L, R to ground and output other side of L. By feeding in a square wave and looking at the result on a scope you can measure the exponential time constant. The time constant is T = L/R. When L is in Henrys, R in Ohms, then T is in seconds. This will be the time a step gets to 1 - 1/e of its final value, or about 63%. It may be easier to measure the 1/2 decay time, which occurs in .693 time constants. From that you can find the time constant, and from the equation above the inductance by knowing the resistance.

The automated way we will probably use is to measure the magnitude of a known AC signal fed thru the same filter. Higher frequencies will be attenuated more. If you feed in a square wave instead of a single pure frequency (sine wave), then you'll have to do a little more math. But the inductance can be calculated if you know exactly what you stuck in, the value of the resistance, and the magnitude of the outcoming AC signal.

  • \$\begingroup\$ I like your thinking. Playing around with some breadboard, a 470Ω resistor, a selection of inductors and a 10KHz sine wave has shown some quite promising results. \$\endgroup\$
    – Majenko
    Dec 17, 2011 at 20:35
  • \$\begingroup\$ We once made a circuit to measure (change in) inductance by having the inductor form one part of an oscillator. The MCU would then count the number of oscillations per unit time, which gave the measurement. \$\endgroup\$ Aug 9, 2012 at 12:01

One option would be to form a series RL circuit and apply a sinusoidal voltage, \$v_i\$, of a given frequency, \$f\$. Then measure the phase difference between the input and output voltage. From the voltage divider equation \$\frac{v_{o}}{v_{i}}=\frac{j\omega L}{R+j\omega L}\$ the phase difference is equal to \$90^{\circ}-\arctan(\frac{\omega L}{R})\$. Thus you can solve for L.

You can make this even simpler by varying the resistance and/or frequency of the sinusoidal source until the phase shift between input and output voltages is exactly \$45^{\circ}\$. At this point, the reactance of the inductor is equal to the resistance and the inductance is given by \$L = R/(2\pi f)\$.


I think you're going to have to end up using a few more analog components. One thing you could do with the inductor is use it use it like the dual of a capacitor. How do you measure the size of a capacitor? Apply a voltage step function of well known amplitude to an RC circuit and measure the rise time. You can easily do the same thing with an RL circuit and measuring the rise time of the current flowing through the inductor. Note that you have to measure the current flowing through it, not the voltage. Now, you can get more complicated and measure the complex impedance of an RL circuit as well, but that will require a good sinewave source and two ADCs looking at the voltage and the current, plus some DSP to calculate the impedance. It can be done, but it will probaly be more complex.


This seems to work out for me. Process:

Calculating L in RL Circuit

  1. Determine peak circuit current from known resistor.
  2. Determine Overall circuit Impedance from supply voltage and circuit current
  3. Determine Inductor Reactance 'XL' using Pythagoras
  4. Given 'XL', Determine 'L' from XL = 2.Pi.f.L


  • Vs = Peak V from Signal supply
  • Vr = Peak V across Resistor
  • Zt = Total Impedance
  • Zl = Impedance of Inductor
  • Xl = Reactance of Inductor
  • R = Resistance of Resistor
  • I = circuit current.


    I  = Vr / R
    Zt = Zl + Zr, also given by:
    Zt = Vs / I
       = Vs.R/Vr
    Xl = Sqrt(Zt^2 - R^2)
    L  = Xl / 2.Pi.f (using XL=2.Pi.f.L)
       = Sqrt(Zt^2 - R^2) / 2.Pi.f

Therefore (putting it all together):

    L  = Sqrt([Vs.R/Vr]^2 - R^2) / 2.Pi.f

Example: 2.5mH coil in series with 1K Resistor, 20KHz sinewave, 5V supply. Measure with oscilloscope Vr (peak voltage across R)

Vr = 4.77V (measured with Oscilloscope)
L  = Sqrt([5*1K/4.77]^2 - 1K^2) / 2.Pi.20K
   = 2.5mH

See this link for: Simulation of example

Maybe someone else can improve the textual layout here. Let me know if I missed something.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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