LC Meter using Arduino: Measuring Inductance and Frequency
All embedded lovers are familiar with multimeter which a great tool to measure voltage, current, resistance etc. A multimeter can measure them easily. But sometimes we need to measure inductance and capacitance which is not possible with a normal multimeter. There are some special multimeters that can measure inductance and capacitance but they are costly. We already built Frequency Meter, Capacitance Meter and Resistance meter using Arduino. So today we are going to make an Inductance LC Meter using Arduino. In this project, we will show the inductance and capacitance values along with the frequency over 16×2 LCD display. A push button is given in the circuit, to switch between capacitance and inductance display.
- Arduino Uno
- 741 opamp IC
- 3v battery
- 100-ohm resistor
- 1n4007 diode
- 10k resistor
- 10k pot
- Power supply
- Push button
- Breadboard or PCB
- Connecting wires
Calculating Frequency and Inductance
In this project we are going to measure inductance and capacitance by using an LC circuit in parallel. This circuit is a like a ring or bell which start resonating at certain frequency. Whenever we apply a pulse, this LC circuit will start resonating and this resonance frequency is in form of analog (sinusoidal wave) so we need to convert it in squire wave. To do this, we apply this analog resonance frequency to opamp (741 in our case) that will convert it in squire wave (frequency) at 50% of the duty cycle. Now we measure the frequency by using Arduino and by using some mathematical calculation we can find the inductance or capacitance. We have used the given LC circuit frequency response formula.
where time is output of pulseIn() function
now we have LC circuit Frequency:
f=1/2*Pi* square root of (LC)
we can solve it to get inductance:
f2 = 1/ (4Pi2LC)
L= 1/ (4Pi2 f2C)
L = 1/(4* Pi * Pi * f * f * C)
As we already mentioned that our wave is sinusoidal wave so it has the same time period in both positive and negative amplitude. Its means the comparator will convert it into square wave having a 50% duty cycle. So that we can measure it by using pulseIn() function of Arduino. This function will give us a time period which can be easily converted into a frequency by inverting the time period. As pulseIn function measure only one pulse, so now to get correct frequency we have to multiply it by to 2. Now we have a frequency which can be converted into inductance by using the above formula.
Note: while measuring inductance (L1), capacitor (C1) value should be 0.1uF and while measuring capacitance (C1), inductor (L1) value should be 10mH.
Circuit Diagram and Explanation
In this LC Meter circuit diagram, we have used Arduino to control the project operation. In this, we have used an LC circuit. This LC circuit consists of an Inductor and a capacitor. To convert sinusoidal resonance frequency to digital or square wave we have used operational amplifier namely 741. Here we need to apply negative supply to op-amp to get accurate output frequency. So we have used a 3v battery connected in reverse polarity, means 741 negative pin is connected to battery negative terminal and positive pin of the battery is connected to the ground of the remaining circuit. For more clarification see the circuit diagram below.
Here we have a push button to change the mode of operation whether we are measuring inductance or capacitance. A 16×2 LCD is used to show inductance or capacitance with the frequency of LC circuit. A 10k pot is used for controlling the brightness of the LCD. Circuit is powered with the help of Arduino 5v supply and we can power the Arduino by 5v using USB or 12v adaptor.
The programming part of this LC Meter project is very easy. Complete Arduino code is given at the end of this article.
First we have to include library for LCD and declare some pins and macros.
LiquidCrystal lcd(A5, A4, A3, A2, A1, A0);
#define charge 3
#define freqIn 2
#define mode 10
#define Delay 15
double frequency, capacitance, inductance;
int flag: 1;
After it, in setup function we have initialized LCD and Serial communication to show measured values over the LCD and serial monitor.
lcd.print(” LC Meter Using “);
lcd.print(” Arduino “);
Then in loop function, apply a pulse of a fixed time period to LC circuit that will charge the LC circuit. After removing pulse LC circuit starts resonating. Then we read its square wave conversion, coming from op-amp, by using pulseIn()function and convert that by multiplying by 2. Here we have taken some samples of this too. That’s how frequency is calculated:
double Pulse = pulseIn(freqIn, HIGH, 10000);
if (Pulse > 0.1)
frequency+= 1.E6 / (2 * Pulse);
Serial.print( frequency );
Serial.print(” Hz “);
lcd.print( frequency );
lcd.print(” Hz “);
After getting frequency value, we have converted them into inductance by using given piece of code
capacitance = 0.1E-6;
inductance = (1. / (capacitance * frequency * frequency * 4.*3.14159 * 3.14159)) * 1.E6;
Serial.print( inductance/1000 );
Serial.print( inductance );
lcd.print( inductance/1000 );
lcd.print(” mH “);
lcd.print( inductance );
lcd.print(” uH “);
And by using given code we calculated capacitance.
inductance = 1.E-3;
capacitance = ((1. / (inductance * frequency * frequency * 4.*3.14159 * 3.14159)) * 1.E9);
if((int)capacitance < 0)
Serial.println(” uF “);
if(capacitance > 47)
lcd.print(” uF “);
lcd.print(” nF “);
So this is how we calculated frequency, capacitance and Inductance using Arduino and displayed it on 16×2 LCD.
Read More Information…..
JLCPCB – Prototype 10 PCBs for $2 + 2 days Lead Time
China’s Largest PCB Prototype Enterprise, 300,000+ Customers & 10,000+ Online Orders Per Day
Inside a huge PCB factory: https://www.youtube.com/watch?v=_XCznQFV-Mw