# Using An Arduino To Measure Inductance

Measuring an inductor is not something that most multi-meters can do. You usually need a high precision resistor (1% or better) in series with the inductor, a function generator to put a signal through the circuit, and an oscilloscope to measure the result. But what can you do if you don’t have these tools on hand? [Andrew Moser] has a method that lets you pull it off with an Arduino and an LM339 quad comparator.

The circuit works by feeding a signal in from the Arduino. This waveform is affected by the LC circuit, filtered by the comparator chip, then read back out the other side by the Arduino. That resulting signal is a square wave, which is an easy target for the Arduino to measure. That timing measured from the square wave can then be used to calculate the inductor’s value.

This is quite handy if you’re winding your own inductors. Now you can precisely tune that Joule Thief you’ve been working on.

## 24 thoughts on “Using An Arduino To Measure Inductance”

1. Weasel says:

Hahaha I was literally just about to look this up and it was in my RSS feed. I just need a few components.

2. NATO says:

For the cost, this is fine, but don’t expect anything even comparable to a real LCR meter. If you want useful results, you need to be measuring the inductance at the frequency and current you’ll be using the inductor with. I assume that this project uses a frequency low enough that the parasitic capacitance won’t be an issue, but this also means that your mesurement results will be poor.

This is a good way to get a ballpark figure for getting a ballpark figure for inductance, but if you want good results, get a real LCR meter.

3. Too bad inductance varies with frequency and current :p

1. Pete Olivier says:

No, inductance does not vary with frequency. Inductive REACTANCE varies with frequency.

1. Try measuring ANY inductance at a frequency LESS than its self resonant frequency then measure the same inductance ABOVE its self resonant frequency ..you won’t get the same result because inductance certainly varies with frequency .

1. Pete says:

The self resonant frequency of an inductor is the frequency at which the parasitic capacitance of the inductor resonates with the ideal inductance of the inductor resulting in an extremely high impedance. This apparent change in inductance is due to inter-winding capacitance (and that will vary with other factors such as core material, etc.). An inductor of x henries might not have the same self-resonant frequency as another of the same value because they are wound on different cores or out of different gauge wire or whatever, but the differences at the “self-resonant frequencies” will be due to the parasitic capacitance interfering with the measurement. Inductance itself is not frequency dependent.

4. He says on the website: “if you’ve taken a statistics class – most capacitors with 10% tolerance will be well under 10%.”

Things are actually a bit different. The bell curve may be narrow so that within 3% you get 99.x % of your parts, but where the peak of the bell is varies in time during production, so that the parts produced over a long time can be within say 10% tolerance.

He is also forgetting to add out the other sources of errors which might bring it up to 15%.

And, just like some previously seen arduino projects, he misses the already existent internal comparator…(in some other cases built in SPI interface, USART etc)

5. Yes I agree with your comments, and you must keep in mind that this is for the individual who needs an idea of the inductor:

If you require a very accurate measurement for a system running at a high frequency, then this method is definitely not for you.

And yes this method uses low current to measure inductance, so saturation information will be unavailable.

@NATO: this method uses less than 5\$ of parts and a ‘real LCR meter’ typically costs 150\$+. Yes you will get better results with an LCR meter that allows you to select measurement frequency.

6. Matt says:

“He says on the website: “if you’ve taken a statistics class – most capacitors with 10% tolerance will be well under 10%.”

Things are actually a bit different. The bell curve may be narrow so that within 3% you get 99.x % of your parts, but where the peak of the bell is varies in time during production, so that the parts produced over a long time can be within say 10% tolerance.”

Actually there may be another reason why the statement isn’t true. The question you have to ask is where do they get +-5% capacitors from? How do they produce +-1% devices that makes them more accurate from the others? Explanation in this funny article (well worth a read) – http://www.edn.com/article/509250-7_solution.php

7. Moser says:

I guess it wasn’t explained enough how this method isn’t going to give perfect results.

No the <5\$ (excluding micro) circuit will not give you better results compared to a real professional grade RLC meter

8. NATO says:

Let’s just go ahead and admit that this is more or less useless, and has been done and published a thousand times over (here and elsewhere)…

1. Sorry I can’t seem to find a link to any of your work. This circuit can be made pretty accurate enough for many peoples use case very simply using a few known reference parts. Frequency can be adapted in the tank oscillator in both software and the load capacitance and also adding a series reference inductance to get decent nH readings. The only real thing to avoid here is the AT328 which has crummy timer precision, or to increase the size of the tank capacitance.

9. @Matt thanks for the info! Guess I am not the only one that didn’t realize it while trying to find 2% capacitors in 10% batch.

The cups half empty mentality is why so many EE’s never become great.
So what if reference caps are 20% off or circuit capacitance is a factor!
Just use a freaking good LCR meter to measure your reference components plus a few test components. Yes you can walk into grainger or some other supply store and demo a \$500 unit while testing a handfull of components. Then use those correct values in your software and bam 20% goes to 1% and the internal impedance can be calculated and corrected for using those extra know Value componets you “demo” with at the tool store.. Jeez people you are giving up without thinking of solutions.

1. isn’t it always very easy to judge other people’s work? Since you’re clearly so competent please write a guide. Grainger? never heard of it.

1. DainBramage1991 says:

WW Grainger is an industrial supplier that has a few outlets here in the Northeastern part of the USA. I’m not sure where else they can be found.

1. John says:

Houston, for one, and I am sure they are in every other metropolis in America, probably also throughout Europe. @moser, what rock have you been living under?

11. Stripe says:

This works fine. Keep theory aside.

12. Naysayers abound…and they only use mega-dollar equipment. The rest of us live in the real world and use our brains to accuratize our measurements with less expensive solutions.

13. shansana says:

give me sourse code

14. Duane says:

The LM339 has an open collector output so the output floats when V+ > V-. You either need to add a 10kΩ pullup resistor to the output or change the Arduino code from “pinMode(11, INPUT);” to “pinMode(11, INPUT_PULLUP);”.
Without this fix, you see any output on the serial port after “Inductance meter:”.

1. Duane says:

I didn’t look at the diagram at the top of the post where there is a 330Ω pullup resistor.