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.

[via Dangerous Prototypes and Adafruit]

24 thoughts on “Using An Arduino To Measure Inductance

  1. 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.

      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. 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.

  2. 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)

  3. 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.

  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.”

    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

  5. 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

    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.

  6. 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.

  7. 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:”.

  8. Sorry to disappoint the sceptics but i found this article very useful. Thank you Mike. I used an lcr meter to input an accurate value for the capacitor and this device produced a reading within 5%.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.