Pages: [1]   Go Down
Author Topic: Measuring small capacitances  (Read 2953 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi everyone,
I am working on a part of my project that is essentially a capacitance meter. So far it works well for capacitances from 2 nano Farads upwards.
I have a 10 M Ohm resistor in series with the unknown capacitor and the code measures the time taken for the voltage across the capacitor to reach 63% of its final value.
This is the RC time constant, and is equal to RC, from which C can then be determined.

However, I need it to go down to measure values lower that a few nano Farads. Ideally it needs to be able to measure a capacitance of a few pico Farads.
Of course at the moment the RC time constant would be undetectable (a few nano seconds). So I would need to either increase the resistance, or find a new way to measure.

Is increasing the resistance into the Giga-Ohm range viable?

If not, does any one have any suggestions of how to measure small values of capacitance using Arduino microcontrollers?

Thanks guys, would appreciate any help.
Logged

Offline Offline
Edison Member
*
Karma: 9
Posts: 1016
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Increasing the resistance to giga-ohm will cause so a lot inaccuracy (noise, leak currents), so that you can't tell what value the capacitor is.

The normal way is to pass a frequency through the capacitor, and measure how much of the signal is left.
To select a range for lower values, the frequency is increased.
A simple analog circuit could be accurate to 20pF.

I think the only way to test picoFarads is to use a high frequency.
A timer output should be high enough for picoFarads.
But you need a circuit to detect how much is passed through the capacitor.
This is an example : http://www.hqew.net/circuit-diagram/Capacitance-Meter_2768.html
The Arduino could automatically select the range, by setting the timer output frequency.

I was not able to find an example schematic of such circuit for an Arduino.
Search for LC-meter.
For example this one : http://www.kerrywong.com/2010/10/16/avr-lc-meter-with-frequency-measurement/

Logged

Montreal
Offline Offline
Faraday Member
**
Karma: 27
Posts: 2566
Per aspera ad astra.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

http://www.elektor.com/magazines/2011/april/pico-c.1738839.lynkx
Logged

Offline Offline
Edison Member
*
Karma: 9
Posts: 1016
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Is a schematic available ?
Logged

Montreal
Offline Offline
Faraday Member
**
Karma: 27
Posts: 2566
Per aspera ad astra.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 I can't post a schematics, due copy-wrong issue, there is an alternative link:

http://electronics-diy.com/lc_meter.php
Logged

Denmark
Offline Offline
Edison Member
*
Karma: 35
Posts: 1057
Happy Hobbyist
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

This one claimes

About 1% accuracy, <2% error
Measuring range: 1pF - 500uF

https://www.sparkfun.com/products/9485?

And comes with a schematic.
Logged

United Kingdom
Offline Offline
Tesla Member
***
Karma: 224
Posts: 6593
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

One way that I've used to measure lower capacitance values with an Arduino is to use the capacitance under test in a CMOS 555 oscillator circuit, and use the Arduino to measure the osciilation frequency.
Logged

Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi everyone,
Thanks for the replies.
How do I go about measuring frequencies of up to 50 kHz as would be required for measuring picofarads in a 555 setup?
Logged

United Kingdom
Offline Offline
Tesla Member
***
Karma: 224
Posts: 6593
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

How do I go about measuring frequencies of up to 50 kHz as would be required for measuring picofarads in a 555 setup?

Feed the 555 output into the T1 pin (aka digital pin 5 on an Arduino Uno) and use timer/counter 1 to count the number of input pulses in a fixed period of time. That works for input frequencies up to about 3MHz when the input is a square wave.

Alternatively, feed the input to digital pin 2 or 3, generate an interrupt on one edge, and increment a counter in the ISR. Measure the number of transitions in a fixed interval. That should be workable up to at least 50kHz.
« Last Edit: February 05, 2013, 04:03:33 am by dc42 » Logged

Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

Latvia
Offline Offline
Newbie
*
Karma: 1
Posts: 5
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Take a look at this http://aade.com/lcmeter.htm, there is schematic in user manual. The idea is to use LC tank with known L, measure it's resonant frequency and calculate C from L and frequency.
Logged

Pages: [1]   Go Up
Jump to: