One of the comments was from Jim, who was interested in the temperature sensitivity of the capacatiance meter. So I’ve tested it. I took some measurements of a selection of capacitors. I then put the Arduino board in the fridge at 4C for an hour, and repeated the test. I tried to do this as quickly as possible, so the board didn’t warm up too much. The results were as follows:
Room Temperature (measured at 21ºC) | ||
Capacitor | Reading | |
– | 0.072 pF (3) | |
5pF +-.5pF | 5.440 pF (186) | |
15J | 15.461 pF (396) | |
22J | 23.403 pF (500) | |
47J | 48.532 pF (680) | |
101J | 102.000 pF (825) | |
471K | 457.117 pF (971) | |
102K | 0.95 nF (Normal, t= 32 us, ADC= 636) | |
103K | 10.47 nF (Normal, t= 272 us, ADC= 538) | |
104K | 111.43 nF (Normal, t= 2776 us, ADC= 523) | |
105 | 985.55 nF (Normal, t= 24416 us, ADC= 521) | |
106K (tant.) | 11.79 uF (Normal, t= 291356 us, ADC= 520) | |
220u (elec.) | 224.77 uF (HighVal, t= 400000 us, ADC= 51) | |
Cooled in the fridge (measured at 4ºC) | ||
Capacitor | Reading | % chg |
– | 0.096 pF (4) | 33.3 |
5pF +-.5pF | 5.620 pF (191) | 3.3 |
15J | 15.461 pF (396) | 0.0 |
22J | 23.312 pF (499) | -0.4 |
47J | 48.320 pF (679) | -0.4 |
101J | 102.000 pF (825) | 0.0 |
471K | 457.117 pF (971) | 0.0 |
102K | 0.94 nF (Normal, t= 32 us, ADC= 637) | -1.1 |
103K | 10.59 nF (Normal, t= 272 us, ADC= 534) | 1.1 |
104K | 111.74 nF (Normal, t= 2776 us, ADC= 522) | 0.3 |
105 | 952.37 nF (Normal, t= 23528 us, ADC= 520) | -3.4 |
106K (tant.) | 11.96 uF (Normal, t= 292936 us, ADC= 517) | 1.4 |
220u (elec.) | 229.38 uF (HighVal, t= 400004 us, ADC= 50) | 2.1 |
To be honest, I can’t see any variation due to temperature. Looking at the raw numbers they are mostly only out by 1 – which means that the variations are only due to the resolution of the measurement. The only capacitor of note is the “105” capacitor. That seems to vary between readings at room temperature. It doesn’t have a tolerance marking on it, and I can’t really understand why it varies so much.
I’ve then put the Arduino in the freezer (at -18ºC) for an hour to see if that would make any difference. I am a not sure the Arduino is rated to work at that temperature, but it seemed to be ok! Anyway the results of this test were:
Cooled in the freezer (should be about -18degC) | ||
Capacitor | Reading | % chg |
– | 0.120 pF (5) | 66.7 |
5pF +-.5pF | 5.512 pF (188) | 1.3 |
15J | 15.397 pF (395) | -0.4 |
22J | 23.312 pF (499) | -0.4 |
47J | 48.109 pF (678) | -0.9 |
101J | 102.000 pF (825) | 0.0 |
471K | 457.117 pF (971) | 0.0 |
102K | 0.97 nF (Normal, t= 32 us, ADC= 626) | 2.1 |
103K | 10.65 nF (Normal, t= 272 us, ADC= 532) | 1.7 |
104K | 112.70 nF (Normal, t= 2792 us, ADC= 521) | 1.1 |
105 | 1.10 uF (Normal, t= 26972 us, ADC= 517) | 11.6 |
106K (tant.) | 11.93 uF (Normal, t= 292280 us, ADC= 517) | 1.2 |
220u (elec.) | 229.38 uF (HighVal, t= 400000 us, ADC= 50) | 2.1 |
My “105” capacitor is still acting strangely, but apart from that my conclusions are:
- There doesn’t seem to be any difference to the low temperature readings (below 1nF).
- The higher (i.e. RC discharge) readings seem to have increased by about 1 – 2 %. This would seem to suggest that the value of the pullup resistor has gone down (although not by much), which would make sense.