# Arduino + Pressure sensor

I come from mechanical engineering background and have little hands-on experience with Arduino and electronics. I would like to connect a pressure sensor SX01DN with Arduino for reading the values. But as the datasheet mentions, output voltage in FS is 20mV, therefore an OP-amp is needed. There is a circuit on pg 7 but to me, it's complicated to understand.

I will very much appriciate if anyone can assist me in this project and also help me understand this amplifier circuit (or suggest a simpler version).

Thanks,

Z

• Why the trouble ? Toss this sensor away and buy a sensor that has a 0-5V output. There are many more options, for example an external ADC with gain, or use the internal gain that some Arduino boards have (but seldom are used), or use two very accurate baromic pressure sensors (BMP280) to determine the difference, or if a resolution of 18 steps is enough a Arduino Uno with 1.1V analog reference can do that, and so on, and so on. Please tell us what you want to measure.
– Jot
Commented Mar 20, 2017 at 14:28
• Hey, yeah I wanted to but found more than 20 (out of nowhere) in a box lying around.. I wanted to measure differential pressure in a tube. Range should be 0-60 mbar. Commented Mar 20, 2017 at 14:37
• Then toss all of them away. Buying a suitable sensor is cheaper than building a circuit for a sensor that is the wrong sensor after all. The SX01DN has a range of 20psi, that is 138kPa. 60 mbar is 6 kPa. A differential pressure sensor of the MPXV4006 series seems to be perfect for you. The alternative option of two BMP280 sensors is still an option, it's relative accuracy is 0.012kPa. However it is slower with higher accuracy, therefor the MPXV4006 is much better. Have you heard of the xy-problem: xyproblem.info
– Jot
Commented Mar 21, 2017 at 6:25
• I guess you can call my question a xy-problem. No complains! :D This sensor measures in the range 0-1 psi in differential mode. 20 psi is the proof pressure - meaning, the sensor will survive if in case pressure spike is lower than this value. In past I have used MPXV7002DP for a similar application. I also have some sensirion sensors with me. Point was - if I can find a use to these honeywell sensors other than scraping them. Commented Mar 21, 2017 at 8:54

You could use a single instrumentation amplifier (INA) for the task. The main selection criteria:

• Low input offset voltage. As you want to amplify mV signals this should be as small as possible as it will be amplified as well and can bring in significant error.
• Low input bias current. If you sensor has high impedance this current will produce some voltage drop on it which will bring in additional errors.
• As small low frequency noise as possible. Noise produced by the amplifier in the 0.1 Hz - 10 Hz range should be minimum as your sensor's output is in the same region. (Page 3 has a figure about the sensor's 0.1 Hz - 10 Hz noise.)

I found Analog Devices' AD8237 instrumentation amplifier great for such purposes. The above mentioned parameters are the following for this amplifier:

• Input offset voltage: typically 30 uV, max 75 uV, drift is 0.3 uV/°C
• Input bias current: typically 250 pA, max 650 pA
• 0.1 Hz - 10 Hz noise: 1.5 uV peak-to-peak

Example circuit:

It was made for a strain gauge application which also means low output (for example 0 - 5 mV) signals, just like in your case. Resistor values and supply voltages would be different in your case you should determine them according to your application and the amplifier's datasheet is recommended to be read.

• Thanks to you too. I will try to find locally the shield Marko suggested.. if I can't find, I will start reading the theory to calculate these resistors and capacitors (unless an electrical geek does this for me in 2 mins) ;) Commented Mar 20, 2017 at 14:42
• @ZeusEx Fine. Actually it is one equation that is needed to set the gain along with the reference voltage, if you can't find that shield. Page 23. figure 72. Commented Mar 20, 2017 at 17:30

You would need a bridge amplifier or AFE (Analog Front End). The easiest way is to buy some shield for arduino. Or you could buy an Arduino clone from Analog devices with additional bridge amplifier. AD sells many industrial grade quality boards with examples with their Arduino clone.

Your sensor bridge specification are valid for 12V supply, but I don't thing it would matter if you put a lower voltage supply. The only thing is that the output will now be lower, so you would need to calibrate your device.

EDIT: Your gauge sensor outputs typically 25mV at 12Vdc supply, therefore we could say it has a sensitivity of 25mV/12V = 2.083mV/V.

The Tedeah Huntleigh Model 1042 load cell used for test on the EVAL-CN0216-ARDZ Shield has a sensitivity of 2mV/V. Therefore the suggested load cell AFE + ADC is a perfect match for your need.

EDIT2:

The board is specified to work for a cell that has +/-10mV full-span output voltage. By default it is configured to bipolar signal, but you can change it to unipolar by software settings, if you want. The resolution is 15bit for +/-10mV peak to peak, that will bring to 14 bits if you leave it as default with a signal that changes in one direction only (unipolar). The input voltage is amplified with G=375. The maximum applied voltage is however 5v, so the real input range is 5/375= +/-13mV, which can give you enough margin for the zero offset unbalance. Your sensor will give as spec. the maximum 25mV at 12v. S_max= 25mV/12V = 2.083mV which can give the maximum output voltage 5*2.083 = +/-10.415mV. Or the minimal full span S_min = 15mV/12V = 1.25mV/V; 5*1.25mV/V = +/-6.25mV. Amplifying the signal with instrumentation amplifier gives: 375*10.41mV = +/-3.905V for max sensitivity or 375*6.25mV= +/-2.343V for minimal sensitivity of the sensor. Both regions are well in the measuring range, you could expect a little less resolution using less sensitive sensor, but we could say that resolution is true 13 bits over the pressure range, at sampling rate 9.5Hz.

One important thing: you would need to power the Arduino board with external PSU at least 7VDC, because the reference voltage 5VDC is derived from Vin pin with the use of LDO. So, you can't use this board and power the Arduino from USB.

• Thanks for reply. Could you please give a link (ebay or amazon) to such on-the-shelf amplifiers? Commented Mar 20, 2017 at 13:51
• @ZeusEx In this forum, buying recommendations are banned. Commented Mar 20, 2017 at 13:56
• Thanks for the link and tip. I can have a supply voltage of 12V, that's not an issue. I haven't yet gone over the specs of this shield yet, but looks like I can't have Vs supplied from a different source. In that case, do you have a different suggestion? Recalibration can be done but I suppose it would be my last preference at this stage. Commented Mar 20, 2017 at 14:00
• Cool, I will certainly consider. :) Commented Mar 20, 2017 at 14:38
• @ZeusEx It would be best if you connect the senor on the board's dedicated supply. You can use 4-wire or 6-wires topology, like a load cell. Your sensor is nothing else than a load cell. Don't mix other supplies. Commented Mar 20, 2017 at 15:06

If you are doing this project for hobby purpose please go with HX711 ...

You will find schematic and library for Arduino in google.

this is the simplest approach... no need of designing complicated op-amp circuitry.