PDA

View Full Version : Pic suggestion for high precision voltage measure



d1camero
- 5th April 2004, 23:59
Currently I am using a 12F675 and a voltage divider for voltage measurement of 10-15volts. I need to measure voltage down to 0.01 of a volt, and even with 1% resistors, a voltage divider will not be accurate enough.

Any suggestions on a Pic which has at least a 10bit ADC and that I can rig to measure 10-15volts?

Any other suggestions?

thanks
Don

d1camero
- 6th April 2004, 06:30
I will add some of my own research, I have no clue if these will be accurate enough. I will have to talk to an EE:

<h4>Zener Diode</h4>
<p>Use a 10V Zener diode and a resistor in series. Measure the voltage drop across the resistor. Not sure about accuracy. (see www.homepower.com/files/voltmeters.pdf)

<h4>Dual Regulators</h4>
<p>Use 2 10V regulators connected together with the source voltage going to both regs. The AD circuit can measure the difference and higher. (see www.e-insite.net/ednmag/archives/1994/012094/02di2.htm)

<h4>Op-Amp Differential</h4>
<p>A 10V voltage regulator can and the battery voltage can be fed into an OP-Amp and one subtracted from the other.
The AD conversion circuit is only required measure 0-5v, which it then adds in the 10v in software.


any more ideas? or thoughts about what is here?

d1

anj
- 6th April 2004, 08:37
Gday Don
The % rating of yr resistors doesnt come into it, unless yr resistors are going to change value during operation.
( You calibrate the result based on the resistors you have fitted, you dont even need to know their real values )
High resolution ADC will give you 1023 steps between Vdd and Vss. If you have Vdd at 5V, then each ADC step represents 4.9mV ( within the Pic ).
Assuming you have used a 3:1 voltage divider to bring yr voltage down, this equates to 15mV at the supply level. Fairly close to what you want.
When you calibrate yr chip you need to accurately measure yr PIC supply rail, and also the measured voltage.
Then its simply
Vact = Vpicrail*ADC/1023 * ( 4 * Calibfact )

Calibfact can be made to simulate a float between 0 and 1 using the ** operator, as such 4 * Calibfact should be able to get you near to yr approx 3 times stepup.
Set up a value and test the result from the pic against yr actual.
Adjust the Calibfact based on yr first measure using

newcalibfact = OldCalibfact * ( Actual Volts / Pic calculated Volts )

Should be apples after one iteration.
Andrew

d1camero
- 6th April 2004, 15:46
Anj, thanks for the reply. What I am seeing in experiments is that the resistors <i>do change</i> value in circuit - ever so little, but little enough not to be as accurate as I need.

d1

Melanie
- 6th April 2004, 22:45
You can get 0.1% tolerance Resistors.

anj
- 6th April 2004, 23:22
Gday Mel
I dont think 0.1% resistors will help here, as he wants accuracy to 0.01V.
0.1% resistors are guaranteed to be within that percentage of stated value, hence you can get matched sets, but they do change resistance ever so slightly with temp changes. If this is what is occuring, it wont help. Lowering the measurement baseline using a Vref-, Vref+ type chip, then adding a baseline offset, ie real ground to Vref- will reduce the errors by a factor of 3, but its still like sticking a micrometer onto a wooden ruler using gaffer tape.
Andrew

Melanie
- 7th April 2004, 08:55
You can go mad here and go to the other extreme... use an instrumentation amplifier with temperature compensation... alternatively just use a temperature sensor of your choice and have the PIC calculate an adjustment value... or have your input switchable and have the PIC first apply a known precision voltage for self-auto-calibration before switching back and measuring your actual test voltage. How many solutions do you want?

Calco
- 7th April 2004, 18:20
Hi Don,

What you need are low temperature coefficient resistors not specifically low tolerance. The two however, do tend to end up being together.
Also if you are using a voltage divider setup with two resistors it might be an idea to mount them very close to each other and also drop a blob of epoxy or silicone over them both so they are thermally linked.
This way whatever factor affecting one resistor should affect them both together and negate most of the variation.
Alternatively use one of those resistor networks, they are all in the same plastic can, thermally associated with each other, manufactured with the same machine, chances are theyre pretty tight.

A quick look through the farnell catalogue reveals some nice +/-.1% 10ppm/deg c resistors.

When you think that some standard resistors are 700ppm/deg c you quickly realise why they shift around so much.

Hope this helps.

Regards

Darryl..

d1camero
- 10th April 2004, 06:22
Calco - thanks for the info. I will look these guys up. Right now I am using 1% resistors, but as you all say - I am after low temp change.

d1