Measuring Atmospheric Pressure




Step 1: Materials Required

Breadboard : Used to connect all the components together. It costs between 5 to 10 euro depending on the size required. Resistors : The value of resistors used depends on input and output voltage.

LM741 Operational Amplifier : Very common type of an op-amp, it provides overload protection on the input and output, easy to use and not expensive to buy. It costs about 3 euro. In this case, three of these op-amps were used.

Resistors : Various sizes needed to construct the instrumentation amp and voltage divider circuits.

Potentiometers: To adjuist the gain of the instrumentation amp, simulate the MPX4115a for calibration and also could be used for the voltage divider circuit.

MPX4115A : It is designed to sense absolute air pressure in an altimeter or barometer application. It costs approximately 17 euro.

Dual Power Supply: This provides us with the +&- 15v for the op amps.

Arduino: The arduino provides with the 0-5v analog to digital conversion unit so that turns the electrical output from our instrumentation circuit into a digital unit ranging from 0-1023DU. With the DU we can plug this into a rescaling formula provided by the sruino software platform to give us an output of Atmospheric Pressure (Pascals). The Arduino has a 5v supply which we will use to supply the MPX4115a and the voltage divider circuit.

Digital Multimeter: Multimeter is the bare minimum required to test the functionality and also the calibration of the circuit if you have access to oscilloscope even better.

Singsle Strand Breadboard wire: For wiring the circuit.

All these materials can be found on Farnell or Radionics except the Arduino which you can purchase off their website or various electronic stores.

Step 2: Create Block Diagram & Circuit

It is wise to construct your own block diagram if you used different parameters when constructing the circuit.

For our range of pressure we are measuring i.e (98Kpa - 105Kpa) we get an output ranging from (3.935v - 4.25v) from the instrument. It is necessary to remove the offset of the (3.935v) so we can provide a potential difference of (0v) between the two inputs of instrumentaion amplifier, we do this because we can use the instrumentation amplifier to provide a more precise resolution when feeding into the ADC of the Arduino.

Too remove this offset we create a voltage divider circuit to provide a (3.935v) output that we send to the instrumentation amplifier.

Too create our circuit we used a software called LTSPICE if you do not have access to this such a program pen and paper is just as effective.

If you are unfamiliar with any of the terminology or circuits used in this step this we have provided a link for you that explains further how these circuits work individually.

Also here is the datasheet of the MPX4115a if you would like to choose different range of KPa this will provide you with the formulas and any other info regarding the instrument

Step 3: Building Circuit

For the instrumentation amplifier, shown above in the first picture, choose resistors of the same values for both R1s, R2s and R3s as illustrated in the circuit schematic above. A good tip while wiring the circuit is to use a highlighter marker and highlight each step of the wiring as you complete it. Also keep the wiring as neat as possible to provide for easier fault finding.

For our own circuit we chose six resistor values at 16k ohms. Rg is a 1k petetiometer used to adjust gain of the amplifier. This was used in conjunction with a voltage divider and our pressure sensor (MPX4115A). For the voltage divider we chose the value of one of the resistors at 18k ohms and calculated the other using the equation shown above. This gave us the second resistor size of the voltage divider to be 66507 ohms. As we didn't have this exact resistor size, we put a 56k ohm, a 10k ohm and a 560ohm in series to get as close as possible to this value. in reality their will be usually small errors with cheap build yourself circuits.

To power the voltage divider circuit and the MPX4115a we use the 5v output provided to us by the arduino. The volatge divider circuit will usually need a potentiometer and a steady hand to fine tune your desired output.

Note if you are unfamiliar with providing +-15v you must link the positive terminal of one side of the dual power supply to the negative terminal of the other, this brings both points to 0v and thus dragging the potential difference between the side you connected the positive terminal to negative will bring its negative terminal -15v. If this is unclear I have provided a picture which may help. Note also some power supplys provide a switch which puts the power supply in series.

Step 4: Calibration & Functionality of Circuit

When we were happy with functionality of the circuit we then simulated the operation of the MPX4115a.

It is always good practice to link the 5v output from the arduino to one of the analog inputs of the Arduino e.g A0 and see if it reads 1023DU on the serial monitor provided on by the Arduino software and then remove the 5v and link the ground to the analog input to see if it reads 0DU this gives us a good indicator that the ADC is working correctly.

We used a petentiometer to give us 3.935V which simulates the lower limit of the circuit. This is illustrated in the first picture above. We then changed the resistance of the petentiometer to give us the higher limit which was 4.25V, again shown in the second image above. When its at the lower limit we see 0V out of the instrumentation amp. When we tweak the petetionometer up to 4.25V it simulates the higher limit of the instrument. We then adjust the gain of the instrumentation amp that gives us the 5V out which is the higher limit. Now we have a 0-5V span output which lets us use the full range of the analog digital convertor in the arduino which provides us with the best possible resolution.

Step 5: Arduino Code and Rescale

When we are happy with our 0-5v span from the instrumentation circuit this output is then fed into the analog to digital converter of the arduino which then turns this voltage into a number i.e a digital unit. This number corresponds to a value of atmospheric pressure(KPa). To find out this value we plotted a graph of KPa vs DU knowing what values we should have for our upper and lower limits. Finding the slope of this graph will then allow us too use the equation of a straight line (Y = M.X + C) if you are not familiar with this equation their is plenty of information online.

The arduino also provides us with a human machine interface i.e the serial port function allows us to view the rescaled analog output from the circuit in real time providing us with a value for atmospheric pressure.

Step 6: Serial Monitor Results

The first picture shows the lower end of our scale at 98KPa and the second at the upper limit of 105KPa. These results were simulated using the petentiometer in place of the MPX4115a.

Step 7: Fault Finding Guide

If you are experiencing problems with your circuit here are some helpful steps to follow using the process of elimination technique.

  1. Seperate each circuit i.e amplifier circuit, voltage divider circuit and instrument circuit. It is easier to test each circuit individually to single out the fault/faults.
  2. Always ensure your amplifiers have the correct power applied to them i.e +-15v.
  3. Take both of your amplifier inputs to ground and the output should read 0v.
  4. Take one your amplifier inputs to ground and use a known source of volatage to test the functionality of the amplifier circuit. Tip you can use the arduino 5v output in conjunction with a potentiometer and a voltmeter for this test.
  5. To see if your instrument i.e the MPX4115a is working correctly you can measure the output and comapre it to your local weather station on
  6. For your voltage divider always check between its input to the bridge and ground to verify you are providing the correct offest.



    • Remix Contest

      Remix Contest
    • Warm and Fuzzy Contest

      Warm and Fuzzy Contest
    • Paper Contest

      Paper Contest

    9 Discussions


    2 years ago

    Could you please tell me how the code take changes when i use an MPX4250DP

    Here is the Nominal Transfer Value:

    Vout = VS x (0.00369 x P + 0.04)
    ± (Pressure Error x Temp. Factor x 0.00369 x VS)
    VS = 5.1 ± 0.25 Vdc



    2 years ago

    This is a lot of effort to measure from 98 to 1050 kPa, unless you need a lot of accuracy, I think, due to the op amp. Of course that you can rescale to measure over other ranges, but still not that convenient. The BMP180 or other sensors measure fairly good. Anyway I congratulate you. I am an Arduino user, but I do not have the knowledge in electronics that you have. At least not in that depth.


    2 years ago

    Hello. Nice project. I want to ask about the accuracy of the your sensor compare to another pressure sensor such as BMP180 or BMP280 (1/0.1 hPa).thx


    2 years ago

    Could you calculate the high over sealevel or over a calibration point with this circuit?

    2 replies

    Reply 2 years ago

    Do you mean a gauge pressure measurement? i.e. the pressure difference with respect to atmospheric pressure?


    Reply 2 years ago

    Exactly this is what i mean. Ich would save the pressure at the ground and go in the 3 floor and messure the difference in order to calculate the hight difference


    2 years ago

    Cool project! Great detail


    2 years ago

    Great project!