Capacitance Meter for Range 1 µF to 4700 µF
Circuit Diagram
Components Required
- Arduino UNO
- 16 x 2 LCD Display
- 10 KΩ Potentiometer
- 10 KΩ Resistor (1/4 Watt)
- 220 Ω Resistor (1/4 Watt)
- Breadboard
- Connecting wires
- Power supply
- Capacitor under test
Working Principle
In
order to measure the capacitance in the range of 1 µF to 4700 µF, we
have to use the above circuit. Before explaining the working of the
project, we will first see the principle behind this method of
capacitance measurement.
The
principle behind this capacitance meter lies in one of the basic
property of the capacitor: The Time Constant. Time Constant (denoted by
Greek Alphabet Tau – τ) is defined as the time taken to charge a
capacitor (C) through a resistor (R) to reach 63.2 % of the maximum
supply voltage.
Alternatively, the Time Constant (τ) of a capacitor can also be defined
as the time taken by a fully charged capacitor C to discharge to 36.8 %
of its maximum voltage through a resistor R.
Smaller
capacitors will have less time constant as they take less time to
charge. Similarly, larger capacitors will have higher time constants.
Mathematically, Time Constant
TC or τ = R x C (τ = RC).
Here,
τ or TC is the time constant of Capacitor in seconds (s), C is the
Capacitance of the Capacitor in Farads (F) and R is the Resistance of
the Resistor in Ohms (Ω).
The
following circuit and graph will show you the time constant curve for a
Capacitor C, charging to supply voltage V through a Resistor R.
We
use the same concept in our Arduino based Capacitance Meter. We will
charge an unknown capacitor through a known resistance using Arduino
pins and calculate the time it takes to reach 63.2 % of supply voltage
(3.1 V approximately). Based on the time, we can calculate the
Capacitance from the formula C = τ / R.
We
will use a 10 KΩ Resistor to charge the capacitor and a 220 Ω Resistor
to discharge it. The charge and discharge pins on Arduino are 8 and 9
respectively. The voltage across the capacitor is measured using the
Analog Input pin A0.
Initially,
we will discharge the capacitor using pin 9 (by setting it as OUTPUT
and LOW) to make sure that the capacitor has no charge. We will then
start the timer and charge capacitor using the charge Pin8 (by setting
it as OUTPUT and HIGH).
Now,
we have to monitor the voltage across the capacitor at the analog pin
and once it reaches 63.2% of 5V (approximately 648 from analog pin), we
have to stop the timer and calculate the capacitance.
This
circuit is suitable for comparatively higher capacitance values as we
can clearly measure the time constant. For smaller capacitance values,
this circuit might not be suitable.
Code
#include <LiquidCrystal.h> |
LiquidCrystal lcd(6, 7, 2, 3, 4, 5); |
unsigned long start_timer=0; |
unsigned long stop_timer=0; |
unsigned long duration=0; |
//////////////////////////////// |
///////////////////////////////// |
lcd.print("RANGE 1uF-4700uF"); |
lcd.print("place capacitor "); |
pinMode(discharge,INPUT); |
digitalWrite(charge,HIGH); |
while(measure()>=1010 && measure()<=1030) |
lcd.print("place capacitor "); |
//////////////////////////////////////////////discharging |
pinMode(discharge,OUTPUT); |
digitalWrite(discharge,LOW); |
lcd.print("Discharging-");//12 |
answer=voltage * (99.0 / 1023.0); |
lcd.print((99-answer),0); |
lcd.print("charging-");//9 |
//////////////////////////////////////////////charging |
pinMode(discharge,INPUT); |
digitalWrite(charge,HIGH); |
lcd.print(measure()*(100.0/1023.0),1); |
duration=stop_timer-start_timer; |
lcd.print("reset to measure"); |
value=analogRead(analogPin); |
}