Introduction: Blood Pressure Monitor

Picture of Blood Pressure Monitor

For our Biomedical Instrumentation course, we created a blood pressure monitor. This blood pressure monitor measures the mean arterial pressure (MAP) and approximates the systolic and diastolic pressures. It requires the use of a pressure transducer, an Arduino Uno, and coding to control the valve and air pump. The circuit design is composed of three basic stages: a low pass filter, a high pass filter, and a noninverting amplifier. In this Instructable, we will explain the set up of the circuity and then explore the coding behind the monitor.

Blood pressure monitors are primarily used in clinical settings to analyze patient’s blood pressure and in order to prescribe the best treatment. This low cost monitor inflates and deflates the blood pressure cuff in order to determine the mean arterial pressure. It then roughly approximates the diastolic and systolic pressures based on the mathematically relationship between mean arterial pressure, diastolic, and systolic pressures. The results are then displayed on the LCD screen.

It should be noted that this device is not designed for clinical applications, however, it is a fun way to learn about pressure sensors and Arduino while creating a functional device applicable to the real world!

Step 1: Materials

Picture of Materials

• Arduino UNO board w/USB cable
• Arduino compatible LCD
• Pressure Transducer (We used the Honeywell Differential Transducer 015PDAA5)
• Voltage-controlled valve
• Air pump
• Wires
• Power Supply (±15V)
• Resistors (Four 100kΩ, One 1 kΩ)
• Capacitors (Two 1µF)
• Breadboard
• Three-way splitter
• Plastic Tubing
• Blood Pressure Cuff
• TL072 Op Amp

Our design consists of a passive bandpass filter composed of a low pass filter in series with a high pass filter. The low pass filter eliminates any high frequency noise (cutoff = 10Hz) and the high pass filter (cutoff = 2Hz) allows us to determine the MAP based pressure fluctuations in the cuff.

Step 2: Set Up the Cuff, Pump and Valve Configuation

Picture of Set Up the Cuff, Pump and Valve Configuation

Use the three-way splitter and plastic tubing to join the cuff, air pump, and valve. You will want tubing that fits snugly around the pump and valve so that no air leaks out, or else your measurements will be less accurate. Cut a fourth piece of tubing and connect it to the splitter. The pressure transducer will be connected to this tubing later.

Step 3: Add the Transudcer to the Breadboard

Picture of Add the Transudcer to the Breadboard

Place the transducer on the breadboard and attach the ground and power supply according to the data sheet:

Pin1= supply

Pin2= output voltage

Pin3= ground

For this device, 5 V was applied to pin 1, the output voltage was connected to the circuitry (built in the next step), and lastly, pin 3 was connected to the ground from the Arduino Uno.

Step 4: Build the Low Pass and High Filter and Amplifier

Picture of Build the Low Pass and High Filter and Amplifier

On a breadboard you will create the follow circuitry as illustrated in the diagram below. Corresponding to the diagram labels:

Vaa= voltage source


R2=200kΩ ( Two 100kΩ in series)





Don't forget to orient the transducer and TL072 so that the 1 IN terminal receives the transducer output. Also, we used color-coded wires to distinguish between the negative (black) and positive(red) supply terminals of the op amp terminals.

Step 5: Code

Picture of Code

The first picture shows the code used to initialize the LCD library ("LiquidCrystal"), the LCD screen dimensions, and all necessary global variables. The screen dimensions are initialized in the setup and specify the number of columns and rows on the screen, 16 and 2 for our code. The valve doesn't release air when a voltage is applied across it, so Pin 3 (to which the valve is connected) is initialized in Output Mode and HIGH.

The second picture contains the code that actually calculates the pressures. We created an array of the output voltages using a for loop. The loop is set to run 50 times with a delay of .25s. This number of values corresponds to about 12.5s. Cuff inflation after this amount of time was too tight for our "patient." You can adjust these values as you see fit. Since Arduino is a 10bit system, the analogRead function returns an integer within the rang [0,1023]. volt is calculated by converting this integer value into its corresponding voltage. The for loop also stores the maximum voltage as data is collected by the Arduino. We subtracted 2.5V from this volt due to the 2.5V offset that the transducer has when both ports are exposed to atmospheric pressure.

The applied pressure (pressure) is calculated using the equation on the transducer data sheet. However, we used a differential transducer which mean the pressure we calculated is actually the difference between Ports 1 and 2. MAP is the pressure at Port 2 and is calculated by subtracting the pressure from atmospheric pressure which is 14.7 psi. This value is multiplied by 51.7 to give MAP in units of mmHg. There is an additional term in the equation for MAP. After taking several measurements, we noticed a pressure offset that decreased as the voltage increased. We compensated for this by subtracting " 3.16/maxvolt " from the pressure. We obtained this value by averaging the pressure offset and relating it to the measured voltage. Once the for loop is exited and MAP calculated, Pin 3 is written to LOW and the valve releases the air from the cuff.

The final piece of code is an empty while loop. This was added so that the Arduino didn't continuously calculate MAP.

Step 6: Connect All Circuit Components

Picture of Connect All Circuit Components

Connect the following components:

1. LCD to Arduino (the LCD pins should fit into the Arduino pins)
2. Power Supply Terminals to TL072
3. Arduino Ground and Power Supply Ground (All supply grounds must be connected)
4. The 2 OUT terminal of the TL072 should be connected to the A0 Pin.

The valve wires should be connected to Digital Pin 3 and ground. For our purposes, the orientation of the wires did not matter. One of the air pump wires will be connected to ground. When the program is run, the other air pump will need to be manually inserted into the 3.3V power supply on the Arduino. If you discover a way an automatic way to control the air pump, please respond in the comments.

Step 7: Take Your Measurements!

Picture of  Take Your Measurements!

Connect your air pump to the 3.3V Pin on the Arduino as soon as the code has been uploaded. Try to sit as still and quiet as possible while the code runs. Once the MAP is displayed you can disconnect the air pump and remove the cuff from your arm. The valve will release any air remaining in the pump. You should see something similar to the above picture.


KevinM594 (author)2018-01-06

circuit diagram please :}


numankhan (author)2016-05-30

hello can u give the circuit diagram please

MohdZuhair (author)numankhan2016-08-22

Did you get it?

farahinjaus (author)MohdZuhair2017-12-26

hi do you have the circuit? can you share with me? i really appreciate it

ekspace (author)numankhan2017-02-27

hello numankhan

are you got circuit from MohdZuhair? could you please send to me? thank you

RafidahS (author)2017-11-20

could you please share the circuit ? i really need it for my final year project. thank you so much

MyaY (author)2017-07-29

I want to download pdf but i can't
Please help me

JunkIt! (author)MyaY2017-11-11

Are you a premium Instructables member?

"That's a premium feature! Want to upgrade to premium?"

idemass (author)2017-11-03

If you could please share the circuit and the model number for the voltage control valve you used, I would greatly appreciate the help.


TalashG (author)2017-04-08

Where I get pressure sensor

Ali_Gamal (author)TalashG2017-10-21

Please Share me the project, I really need this for my graduation project.

TalashG (author)2017-04-08

Any got ckt diagram

Ali_Gamal (author)TalashG2017-10-21

Please Share me the project, I really need this for my graduation project.

NikhitaS1 (author)2017-10-16

What is the model of voltage control valve used in this??

can u say me the model required??

rodentskie (author)2017-10-06

Please share the project.

Sarasal (author)2017-10-04

could you please share the circuit?


ЕлизаветаФ (author)2017-10-01

could you please share the circuit? it will be really nice from you:)


MJBrazas01 (author)2017-09-14

Can you please share me the circuit.

salmaantrigger (author)2017-07-07

Could you share the circuit diagram??? Please....we are working on

salmaantrigger (author)2017-07-06

Is there any replacements foe the above given pressure transducer?

AbylaiB (author)salmaantrigger2017-07-07

Maybe MPVX7002DP

DavidS1511 (author)2017-06-12

What's shown in figure 53 below works for me. I couldn't make this work using only a single ADC input. Accommodating the normal dynamic range of cuff inflation pressure found on manual sphygmomanometers (0 - 300 mgHg) leaves too little resolution to accurately measure pulse pressure fluctuations (1 - 4 mmHg) in a single signal. The circuit below uses two amps and two ADC inputs. The pulse pressure amp (band-pass) is AC coupled so you can use a much higher gain to get good resolution on the pulse pressure.

Even so, if you're operating at 3.3 volts you'll want a rail-to-rail op amp like an LMC6484. A general purpose op amp will only give you 0-2 volts on the output which wastes a lot of the range on the Ardiuno's AD converter.

Thùy DươngN1 (author)2017-06-09

Could you share the circuit diagram please ?. I really appreciate it

mail id :

nil15 (author)2017-05-17

Can you please share me the circuit.

ekspace (author)2017-02-26

Dear MohdZuhair,

could you share the circuit diagram please?

mail id :

omark29 (author)ekspace2017-04-16

Dear ekspace

Could you share the circuit diagram please, if you get it ?

mail id :

Skylope (author)2017-03-30

hello..can you please send me the circuit diagram:

ty..much appreciated

v542320842 (author)2017-03-28

Could someone please send me a copy of the circuit diagram? I really appreciate.

TalashG (author)2017-03-18

Please provide ckt diagram

Md jaman229 (author)2017-02-22

do you share me this project circuit diagram and code.
email me

lushen2015 (author)2017-02-12

Hi, could you please share the circuit diagram with me , I would greatly appreciate it.

JayaL8 made it! (author)2016-12-18

Now with technology advancement you can try fitness trackers like pearls band. You can check their campaign at

Luke_o1 (author)2016-11-17

could you share the circuit diagram please?

Shazweena (author)2016-11-04

Can u share the circuit please?

Kenrgoss (author)2016-09-21

Would you share the circuit diagram please? I would like to make this for a biomedical system of devices I am working on, and the diagram would facilitiate things.

numankhan (author)2016-05-30

hello can u tel me how u calculate the MAP equation ....

pastymuncher (author)numankhan2016-09-15

Dont you think it wiser to use machines that have been clinically tested for accuracy? The readings taken with a blood pressure monitor is an essential guide to the state of your cardiac health.

MoiA (author)2016-04-04

Hello, thanks for sharing...
Please, can we get circuit diagram?

MohdZuhair (author)MoiA2016-08-22

Did you get it?

MoiA (author)MohdZuhair2016-09-06

no, not yet

cividatti (author)2016-04-18

Please, can you give us the circuit diagram?


MohdZuhair (author)cividatti2016-08-22

Did you get it?

DenizÇ4 (author)2016-06-02

Hey, can you send circuit diagram ?

MohdZuhair (author)DenizÇ42016-08-22

Did you get it?

MohdZuhair (author)2016-08-22

Hello dear, please can you show us the circuit diagram?

mostafa 11 (author)DrewD82016-03-22

mmmmm this site can deliver to EGYPT !!!!!

mostafa 11 (author)DrewD82016-03-22

mmmmm this site can deliver to EGYPT !!!!!

mostafa 11 (author)DrewD82016-03-22

mmmmm this site can deliver to EGYPT !!!!!

mostafa 11 (author)2016-03-16

hey can u help me to get 015PDAA5 ??

plz upload code

About This Instructable




More by LunesCuatro:Blood Pressure Monitor
Add instructable to: