I'll start by saying I'm a mechanical engineer with some knowledge of electronics and coding, but not anywhere near what a seasoned EE likely has. So, please forgive me if this line of questions is naive or too simple.
I have a Freescale MPX2202DP differential pressure sensor that I'd like to read using my Arduino R3 board. My understanding is that it needs 10 VDC to power the sensor and will output 0-40 mV proportional to the pressure applied at port P1. The pressure range for the sensor goes to 29 psi.
Question 1: Since this sensor has +Vout at Pin 2 and -Vout at Pin 4, does this mean that the total difference between Pins 2 and 4 is up to 40 mV, or is it +40 mV to -40 mV, a total of 80 mV? When I connect a multimeter across Pins 2 and 4, I seem to get a reading that varies 0-40 mV so I think I know the answer to this one experimentally.
Question 2: How can I read this voltage into my Arduino and get enough precision to measure, say, 0.1 psi increments? My estimate is 0.1 psi across a 29 psi range means I need about 300 distinct levels to distinguish one measurement from another. I believe the Arduino analog inputs can do A-D conversion up to 1024 levels (i.e. 10 bits), but I think those inputs are referenced against the 5 VDC power that the Arduino is using, so each bit is ~4.9 mV and I would only have about 8 levels that I could read in my 0-40 mV sensor range.
Question 3: How can I amplify the 40 mV range of my sensor to get more resolution when using the Arduino analog inputs? I think I can use an op-amp to introduce a gain on the small signal from the sensor to get a larger signal and use more levels in the analog input, but all of my attempts at using op-amps with this sensor have failed. I first tried the TI Precision Gain = 10 Differential Amplifier INA106KP but I can't seem to get it to actually multiply my sensor output. I'm using a benchtop power supply to put +5 VDC and -5VDC on Pins 7 & 4 respectively but I think that, since this is the minimum rated voltage the op-amp isn't happy. I can't easily generate more than +/-5 VDC with the power supply that I have while still having a 12 VDC output available for the sensor. I next tried a Linear Technologies LTC105 Precision Operational Amplifier with a 1k resistor into Pin 2, and 10k resistors at Pin 3, to ground, and between Pin 2 and Pin 6, hoping to get a 10k/1k = 10X gain. This also did not work.
I fear that I may be trying to solve too many things simultaneously and missing some key electronics knowledge to get me past my roadblocks. Any advice or guidance on questions 1, 2, or 3 would be greatly appreciated!
That is a Wheatstone Bridge sensor, and the reading is often quoted in terms of differential voltage between the two outputs, as a function of pressure. In this case the supply voltage is assumed to be 10V. Details are in the sensor data sheet.
My understanding is that it needs 10 VDC to power the sensor
No, that is just what the manufacturer recommends. It is a simple resistor network, trimmed for calibration accuracy during manufacture. 16V is maximum.
I am fairly sure that you could use that sensor with the HX711 or HX710 strain gauge amplifier, which conveniently supplies both the bridge excitation voltage and a digital output for the Arduino. There are commercial modules that offer this combination with a different pressure sensor. Reverse engineering one of them.
They make the transducers with a built in amplifier where the output will work with the Arduino. If my memory is working it will set at about 2.5V and swing either way depending on pressure or vacuum. Look at the MPX5700 Series they are in the same case.
Adam, As a fellow mechanical, I learned many years ago thru the help of some honest EE's that, the EE's are no smarter than you are, and that they are very good at sand-bagging us mechanicals. Of course, it goes both ways, LOL.
Here is a circuit that I came up with about 10 years ago to read pressures up to 4,000 psi using a Merit sensor die (about 5mm square) and a parallax stamp. My 2 good EE buds helped a lot with theory. One told me that the output from the die would be very low and very susceptible to noise. Keep the run from the sensor short, and shield it if necessary. Put an Instrument amp as close to the sensor as possible so that you will be amplifying a clean signal, not a bunch of noise. Another one told me how tho use the correct number of bits in the AD convertor to get the resolution I needed.
You an vary the excitation voltage, and the gain, and the zero adjust and the full scale range. I am sure a lot of this is already in the Arduino, but I KNOW this circuit works. Just connect pins 5, 6, and 7 from the A-D convertor to the correct pins on the Arduino. You'll have to figure that part out, but this is a robust and adaptable circuit.
Lloyd
Adam, I forgot to mention that the excitation voltage for the sensor must be clean with no spurious noise. If you have doubts, try powering it with a battery to see if it calms things down and stabilizes the output. Do you have one of those inexpensive laptop based o-scopes like Velleman makes? For a little over a hundred bucks they are very helpful and are useful in finding problems and reading outputs accurately. That was another tip from my EE friends.
Lloyd
A HX711 is the cheap/easy solution for these sensors.
Regulated excitation voltage, instrumentation amp and 24-bit A/D, all in one.
Sparkfun sells HX711 boards that also can be used with 3.3volt processors.
Leo..
Yep that should work, it is similar to what was in the original data sheet. You need parts, PCB or something to mount it on, and it needs to be calibrated. The MPX5700 eliminate all of that and uses 5V. An Arduino UNO was assumed as the processor as it was not specified so that would be a direct connect.
Thanks @gilshultz this seems like a good sensor to investigate. Yes, I'm on Arduino Uno so 5 V is easily available. I've got a breadboard and all the kit that goes with it for building the circuits, so that shouldn't be a problem.
What's the difference(s) between the MPX2202DP and the MPX5700?
Thanks @Wawa, I've seen others mention the HX711 as a good fit for this sensor too. When I looked at the schematics, I didn't quite get how I'd wire it up, but it is cheap enough that I might get one and try to figure it out.
The MPX2-series is the "naked" Wheatstone bridge (sensor only).
Higher numbers in the series (MPX4, MPX5 etc.) have the instrumentation amp built-in.
I could not find another one with a 200kPa range. The MPX4500 comes closest (500kPa).
People buy the 2-series because they are cheaper?, not realising you buy only half of what you need.
Leo..
The 5700 is basically the same except it has all of the needed compensations and electronics integrated on the chip so nothing is needed externally. It is calibrated as part of the production process via a laser. The calibration for temperature, drift, etc is not easy outside the chip.