Measuring to 0.005psi Accuracy Over Narrow Range of Inputs

Hi all,

I have to test an application which is very dependent on a vessel pressurized with air to 30psi leaking less than 0.01psi over 1 minute. Thus, I'm trying to figure out a way to read psi down to 0.005psi. I'm working with a 0-75psi/0-5V analog pressure transducer. I have verified with a high-quality DMM that the transducer can communicate changes down to 0.005psi effectively. However, I need to make a report of the seal leakage data, and I'd like to collect the data using Arduino.

Having a 10-bit ADC suggests that, to get an accuracy of 0.005psi, the full scale I'm working with needs to be 0.341psi. However, I need to test this seal at 30psi. To maintain this full scale psi, I should be able to guarantee an input of 30+/-0.170psi.

So here' my question. Is it possible to somehow divide the output of my analog pressure transducer such that a 1.989-2.011V output from the transducer turns into a 0-5V input to the Arduino ADC? Again, I'm measuring changes, so a voltage input to the Arduino does not need to accurately correspond to an absolute pressure in the vessel. In addition, would the method be safe for inputs outside the 30+/-0.170psi range (such as when the vessel is being filled)?

Thanks,
Eric

You'd be better off with an high resolution ADC that can cover the full range, something like 18 or 20 bit.
Also you'll also need to consider issues like thermal drift which could confuse accurate measurement.

but they don’t have to be turned on at the same time if that takes too much strain on the Arduinos power supply.

No. 10-bits is 1024 “steps” (for a resolution of about 1/1000 or 0.1%.) If you were to amplify the signal to get 5V (a reading of 1023) at 30PSI, each step is about 0.03PSI and that’s your maximum resolution.

I think there’s something you can do with biasing the signal or some kind of differential (analog) amplifier/circuit that could be used, but off the top of my head I’m not getting very far with it. The idea is that an ADC reading of zero would represent some PSI value greater than zero so you could “amplify” and read the “changes” or the “difference”. (And you wouldn’t be able to read low PSI values because they’d be off the scale, below zero on the ADC.)

30 PSI/0.005 PSI = 6000 steps, so a 16 bit ADC module like this one should work well. It is fast and very easy to use.

You may need to average a number of measurements (try 100) to achieve the desired measurement stability.

But…, most analogue pressure sensors are ratiometric (output depending on pressure AND supply).
Since the ADS1115 is an absolute A/D, not a ratiometric A/D, it could be hard/impossible to get things stable.
12-bit ratiometric A/Ds are available. Not sure if you can find any higher.
Leo…

Since the ADS1115 is an absolute A/D, not a ratiometric A/D, it could be hard/impossible to get things stable.

I'm glad you brought that up, because a beginner might not realize that it is trivial to "get things stable" with a ratiometric sensor and an absolute ADC.

There are four channels on the ADC module I linked, so use one of them to measure the sensor supply voltage and form the ratio in code. This works very well.

Agreed. Supply voltage feedback/compensation could work.
I still would first try a 12-bit ratiometric A/D. Much easier to code.
Smoothing code could incease that with one or two bits.
Not sure if you can get more than 12-bit precision from a pressure sensor.
Maybe OP should post a link to the sensor's datasheet.
Leo..

13 bits resolution are required to read steps of 0.005 to 30 PSI, if that is as important as the OP seems to think, but that may be possible to achieve with a 12 bit ADC and oversampling/averaging.

The Omega pressure sensors I use are easily capable of 13 bits resolution.

We do this (or nearly this) in our production fixtures. Our goal it to detect a leak of more than xxx equivalent diameter. Our test is only 15 seconds long and it is easy to maintain voltage and thermal stability over that period of time (we use thick walled aluminum fixtures for thermal stability. We also use calibrated orifices to verify our capability.

I would suggest a sigma-delta ADC. Averaging multiple readings from a faster ADC just doesn't work well in a electrically noisy environment. I'm going to guess the slower conversion time of a sigma-delta being 25ms or so is negligible in this application.

Another thing we found, threaded fittings leak, even with teflon tape. You will need to use RTV on the fittings to keep their leakage low and not effect your measurements.

Looking at the numbers:

I'm going to assume the absolute pressure is not important but the change in pressure is. If this is not correct the task gets significantly more difficult.

btw I would guess your transducer is really 0.5 to 5.5 volts out. I've never seen a transducer start at 0V.

5/75 = 66.6 mv /psi out of the transducer.

0.005 PSI = 333 µV (your requested accuracy)

a 24 bit ADC will resolve 5 / 2^24 = 0.3µV Sounds good but you are unlikely to actually attain this number due to noise and a number of other things. I think you will be "lucky" to get 20 bits.

The lower resolutions are:

@ 20 bits --> 5V / 2^20 = 5µV
@ 18 bits --> 5V / 2^18 = 20µV

So you can probably get away with 18 bits but I would not try to use an 18 bit converter. Converters are characterized under ideal conditions so it is unlikely you will ever get the "data sheet" capability in real life.

Another thought:

I don't know if you are in a production environment or university. If in production you must think of how to prove your fixture works and does what is specified. As I mentioned above, we purchased a "calibrated" orifice and used it to verify the measurement capability. This may not work in your application.

A second other thought:
If this is a one off test, I would use your high accuracy DMM, a stop watch, a phone video and a pad. After you get your data and can complete your report, then you can play with the ADC and Arduino.

Good luck.

Or use a differential transducer with a fixed 29 PSI on the low port and the pressure from your vessel on the high port. Which transducer are you using?

H,
Welcome to the forum.

Can you post spec/data for the pressure sensor please?

Please read the first post in any forum entitled how to use this forum.
http://forum.arduino.cc/index.php/topic,148850.0.html .

Thanks.. Tom... :slight_smile: