Digital vs Analog Output Pressure Sensors Advise

Hello everyone,

I am working on a project where I need to use a water pressure sensor and read the data using my arduino due. I have been reading about the pressure sensors output options and generally speaking, there is a big difference in price from the analog and digital sensors. In this project I need to be able to read the pressure with great accuracy and I am trying to compare the options.

The analog output sensors I have seen usually have 4-20mA, 0-5v and the digital version offers Rs485.

I know that in theory using an analog sensor for example: the 4-20mA ,this should be equal to my desire pressure range that in this case is (0-200psi), so 4mA=0psi and 20mA=200psi and that would be proportional to 1psi for each 0.08mA, which is a very small current and in real scenario I am not sure this would work.

Since the digital output sensors are quite expensive, I would like to receive feedback and advise if any of you have work with water pressure sensors before and if you could tell there is actually a big difference.

I would really appreciate your feedback/Advise/comments to help me decide between this options.

Thank you very much,

Those are industrial pressure sensors.
The fastest and easiest soluation is the 4-20mA.

For a 5V Arduino board, a resistor of 250 ohm is used to map the 20mA to 5V.
For a 3.3V Due, you can use a resistor of 165 ohm (or 150 ohm when you adapt the calculation).

I would also use a protection resistor of 1k or 4k7 to the analog input of the Arduino.

Suppose you set the accuracy of the analogRead for the Due to 12 bits.
1 psi change is (20-4)mA/200 = 0.08mA.
Suppose you use an accurate resistor of 150 ohm, that is 12mV per psi.
The Arduino Due with 12 bits ADC has a resolution of 3.3/4096 = 0.8mV, that is 15 times better.

So that is no problem at all. To get 1 psi accuracy, you can use the average of a few samples to reduce the noise.

Hi Peter,

Thank you for your advise. I did those calculations before but I just was not sure of the accuracy due to any noise.

One question: By the end of the day the arduino will be reading voltage samples right. I asked one of the companies and they offer custom designs so they could build a .2 to 3v output, which sounds great. However, It got my attention that reading through websites it says that the Current output sensors are more resistant to noise.

And Now that you just mention that the current output sensor is better, I am just a little confused on how the current output would be better overt the voltage. Is it because on the current output sensor we are placing the resistance and doing the voltage reading right next to the arduino and that way we are avoiding noise through the cable?

Or would it be exactly the same thing just to get the custom design to have the .2 to 3v.?

Good manufacturers offer custom outputs, but you have to pay a price. And maybe you need to replace it one day. So just stick with the standard versions.

A voltage output of .2 to 3V means they use a 4-20mA sensor and add that 150 ohm resistor inside ! That's all.

A sensor with 4-20mA output is not "better" than a voltage output. But it's the industrial standard for so long and it works well.

The noise depends on the cable and the kind of electrical/magnetic influences. For slow signals (voltages, pressure levels, daylight, baromic pressure) I always use some average in the sketch. Even the average of 5 samples makes it a lot better, but I often use 20 samples. But you can use the average of 100 or 1000 samples as well, you can even spread the samples over a certain amount of time. So don't worry about noise. Worry about ground currents. The sensor GND is connected to the Arduino GND and that is connected to the computer. Is that okay, or do you need an optocoupler ?

The DAC range on the Arduino Due is 1/6 to 5/6 x 3.3V = 0.55V to 2.75V.
If you use a 4-20mA sensor terminated with 137.5Ω, then its output voltage is also 0.55V to 2.75V.
Perfect match.

Thank you Peter_n and dlloyd. I just purchased a pressure transmitter to start playing with it.