Pages: [1]   Go Down
 Author Topic: Measuring small capacitances  (Read 429 times) 0 Members and 1 Guest are viewing this topic.
Offline
Newbie
Karma: 0
Posts: 6
 « on: January 17, 2013, 08:21:31 am » Bigger Smaller 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
Edison Member
Karma: 9
Posts: 1000
 « Reply #1 on: January 17, 2013, 09:12:03 am » Bigger Smaller 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
Edison Member
Karma: 17
Posts: 2207
 « Reply #2 on: January 17, 2013, 10:42:18 am » Bigger Smaller Reset

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

Offline
Edison Member
Karma: 9
Posts: 1000
 « Reply #3 on: January 17, 2013, 12:31:53 pm » Bigger Smaller Reset

 Logged

Montreal
Offline
Edison Member
Karma: 17
Posts: 2207
 « Reply #4 on: January 17, 2013, 12:54:22 pm » Bigger Smaller 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
God Member
Karma: 19
Posts: 683
 « Reply #5 on: January 17, 2013, 01:01:49 pm » Bigger Smaller Reset

This one claimes

Measuring range: 1pF - 500uF

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

And comes with a schematic.
 Logged

United Kingdom
Offline
Karma: 131
Posts: 4689
 « Reply #6 on: January 18, 2013, 03:19:00 pm » Bigger Smaller 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. http://www.eschertech.com

Offline
Newbie
Karma: 0
Posts: 6
 « Reply #7 on: February 05, 2013, 03:38:38 am » Bigger Smaller 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
Karma: 131
Posts: 4689
 « Reply #8 on: February 05, 2013, 04:01:25 am » Bigger Smaller 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. http://www.eschertech.com

Latvia
Offline
Newbie
Karma: 1
Posts: 5
 « Reply #9 on: February 05, 2013, 04:18:27 am » Bigger Smaller 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