Power Supply for Measuring Precise Voltage

Hi Arduino Users,

I am trying to design a pressure monitor with the Arduino and while the circuitry is pretty simple, I am having a little trouble ensuring maximum precision in terms of voltage input at the sensor, which needs to be known exactly (at 5V here, though could be any voltage between 1-10V).

The circuit contains a pressure sensor (Mpx2200AP maximum output 40mV) and op amp (LT1101, gain 100x) to bring up the pressure sensor's output so that it is readable at the Arduino's analog pins. The output of the amp is wired to A0 of the Arduino, which is then displayed on an LCD screen.

I have got this circuit working okay when powering all components from the 5V output of the Ardiuno (itself powered by USB) and using the Arduino internal reference, it approximates room pressure okay. However, I have noticed (using a multimeter) that there is a slight loss of voltage at the component inputs (around 20mV or so). As such although everything works okay, the pressure sensor is not getting a defined and exact 5V power. I guess that although the components are connected in parallel, this drop is just due to the practicalities of component power usage?

With that hypothesis in mind, I thought it might be better to power all the components separately to the pressure sensor.I also want to eventually build this as a standalone unit so am trying to power with a battery pack (6x 1.5V batteries) and also use an external voltage reference with a Zener diode (to avoid the variability of the Arduinos internal reference).

My attempt at such a circuit is below, however as I am very new to electronics my guess is there are some glaring issues with this approach that I am missing. Also, I once tried to use the Vin from a battery source alongside drawing power from 5V and some components got hot very quickly, though I am not sure if it was because of this or something else. Nonetheless I am a little anxious to try this again without asking for advice. My main questions are:

  1. Is it okay to draw power from 5V pin while giving 8V to the Vin pin?

  2. Does it make sense to separate the power sources as done here in order to ensure an exact 5V unvarying input to the pressure sensor Vcc.

  3. I feel this is a bit wasteful as there is an 8V source going through 2x 5V regulators in parallel (one in the ciruit and the other one the Arduino). Please let me know of any better ways to do this!

Thanks a lot taking the time to read this and your help,

Please read this thread re using an external Aref;

Hi Due_unto,

Thank you very much for your reply, I had seen that thread and appreciate the link, using that Aref is definitely a little risky. Using the LM4040 I should be able to keep that Aref voltage stable at 4.09V and so within safe working limits. However, I noticed that it may not be able to handle the 8V input so will check that out (I missed that the example used a different power source), thanks again.

Did you have any thoughts on whether wiring up the pressure sensor to the 5V output of the Arduino and powering everything else along a separate voltage rail will improve voltage accuracy at the pressure sensor?

Thanks again for your help!

The MPX2200 series needs AFAIK 10volt excitation.
They also need an instrumentation amp (not a single opamp), powered at that voltage.
It's output can then be scaled down to Aref.
I doubt that this will give better results on Arduino's 10-bit A/D.

Might be easier to replace the sensor with one that is made for 5volt, and has an inbuild instrumentation amp.
I think those series start with a 4, 5, 6, or 7.

Hi Leo,

Thanks a lot for your response, I see the difference between op amp and instrumentation amp - turns out I was using one (LT1101) but didn't know what it was!

I will take your advice and look for a combined sensor and instrumentation amp running at 5V, cheers.

I noticed some irregularities when the amplifier and pressure sensor were powered at different voltages. I had a look around as to find out why but didn't have any luck. Just out of interest, can you explain why the amplifier and related sensor need to run at the same voltage? (is this the case?).

Unless you have a specific datasheet that says otherwise, Leo is correct that the MXP2200 parts are spec'ed at 10 to 16 volts - which makes sense since they were originally designed for the automotive market. I've looked for a minimum voltage spec but I cannot find one.

If the device does indeed operate at 5 volts, great, but you would not have a 40mv full scale output because those transducers are ratiometric - meaning their output voltage is a ratio of the input voltage. You may know that but I wasn't sure with all the questions your original post. Yes, you want stable supplies but first things first, you'll only have 20mv full scale output with a 5 volt supply since you only get 40mv out with a 10 volt supply. Apply 15 volts and you get 60mv out.

That puts your LT1101 at a handicap since it's fixed gains. Not a good choice there, a programmable gain instrumentation amp like the AD8221 or similar would be a better fit.

Next, you don't want that external zener reference. A stable reference is good thing but in this case, it only hurts accuracy. Remove it. All that is required to get the most accurate reading possible is to use the same 5 volt supply for the ADC reference as you use to power the MXP2200. By default, the atmega328 processor internally does that for you, the AREF pin should remain unconnected and you've achieved the highest ADC accuracy you can get (we could split some hairs there but in general, it's a correct statement). If the 5 volt supply varies, the ADC reading varies with it, there is no loss in accuracy. That is about as good as you can get with an Arduino.

The one thing you've possibly overlooked is that the transducer has an variable offset at zero pressure. As currently configured, with no zero adjustment, you will not be able to get down to zero pressure which will introduce some nonlinearity into the output.

Just as a reference for the zero adjust and ratiometric behavior, here is a link to an application note for a MXP series device. You can see the output is calculated at 32mv with a 8 volt supply along with a zero offset adjustment method:

Hi Avr_Fred,

Apologies for the slow reply, it took me some time to read through that article and try to get my head around it. Thank you very much for your reply and the linked article, it was extremely useful. I was aware the device was ratiometric so I thought it was okay to drop it to 5V and compensate in the code, but completely forgot that this would half the range of the output and so is less than suitable. Thanks for pointing this out!

I had no idea what offset really was before reading this, thanks for the heads up. If I understand it right - At 0 pressure, the MXP2200 is liable to produce some variable offset, giving an output voltage not of 0V but of a random amount. As such it is beneficial to add a known offset voltage at 0 pressure, accomplished by adding the R7, R3, R5 divider in the linked article.
The original circuit I posted has an issue as at the moment, I won't be able to get down to 0 pressure because at 0 kPa the sensor will output a variable voltage, thus the voltage reading will become nonlinear at very low pressures. Please let me know if there are any errors in my understanding.

Thank link is awesome because it's essentially the circuit I would need to build with the mxp2200. I've already ordered another sensor with this built in but I think I'll try to build it anyways. Also thanks for the tip on removing the zener diode.


Apologies, one more (final!) question: Is it necessary to split the power supply between the components and the input to the mxp2200 as done above? If during normal operation some components (such as the opp amp or LCD screen) draw a variable current, this should create small voltage differences at the input of each component, creating an error in measurement at the mxp2200. This is what I'd imagine but at the same time I am a little confused as it is also my understanding that if wired in parallel the voltage should be split equally.