blood Pressure Measurement Device
The goal of this project is to build a device that can display high and low-pressure values as well as heart rate.
The pressure measurement is generally done through the cuff in such a way that the pressure inside the cuff is increased to its critical level, usually equal to 200 mmHg, and then the pressure inside it is reduced at a constant speed. Meanwhile, the pressure inside the cuff can be measured with a pressure gauge sensor, and from this amount, the components of high pressure, low pressure, and heart rate can be obtained.
The following figure shows the general view of the device:
Figure 1 - Blood Pressure Messurement Device Design
The design of this device comprises of a mechanical part including the motor and cuff, and two analog and digital sections.
Analog
The pressure gauge sensor gives us the voltage as an output, which consists of two AC and DC components. The DC component represents the pressure inside the cuff and the AC component represents the heart rate at the moment.
Figure 2 - Sensor, AC, and DC Op-amps
1. Sensor:
The sensor used in this project is MPX-2050, which has two inputs and two differential outputs. The output-to-input diagram of the sensor and its specifications are shown in the following figure:
Figure 3 - The Sensor Output-to-input Diagram
2. DC Amplifier:
As shown in the diagram above, the output value of the sensor is in the millivolts range. Since the AVR microcontroller is incapable of performing calculations on these values, we need an amplifier with pins that have a low offset. For this purpose, we use the AD620 amplifier. In this amplifier, the gain value is obtained from the following equation:
Rg = 49.4 KΩ / G − 1
Since we need a gain equal to 180, therefore, we used 270Ω resistance.
3. Band-pass Filter:
Since the AC component is much smaller than the DC component (in the microvolt range), it must be gained separately. We know that the heart rate is in the range between 1Hz - 4Hz, so due to the noise (city electricity, GSM, etc.), this AC voltage must be filtered to be able to get the AC signal (heartbeat rate) pure and without noise.
Since we need a large gain in the AC signal to have it in the desired voltage range, we used two band-pass filters. For this part, we used the OPA2277, a zero-drift operational amplifier. Low and high cut-off frequency and filters' gain calculations are as follows:
flow = 1 / (2π (47μF) (10K))
fhigh = 1 / (2π (200nF) (120K))
A = - 120 K / 10 K = -12
AC and DC experimental output diagrams:
Figure 4 - AC Output
Figure 5 - DC Output
4. Motor and Valve Controller Circuit:
Since the motor draws a lot of current from the source, the higher harmonics in the digital system act as noise. Therefore, we consider a separate power supply for the motor and send control signals to the motor via OptoCoupler. The valve is closed by applying a voltage of 4 volts, and by reducing its voltage to 0, it gradually opens and passes the air flow completely.
Experimentally, the voltage measured to reduce the air pressure from inside the cuff is 1.25 volts so that the pressure can be slowly reduced and its value can be measured. For this purpose, we have used two adjustable regulators to create voltages of 4 and 1.25 volts.
Figure 6 - Motor and Valve Controller Circuit
Digital
In the digital section of our design, we utilized an AVR Atmega32 microprocessor to take advantage of its modular components as follows:
1. Analog to Digital Converter (ADC):
The AC and DC signals generated through the analog circuit are given to the ADC so that we can analyze them.
2. Timer:
Due to the need for recurring and regular sampling to calculate the pressure, the microprocessor timer is utilized.
3. Interrupts:
The device includes two Start and Stop buttons, each of which is connected to an external interrupt. By pressing the Start button, the device starts measuring, and also by pressing the Stop button, the measurement operation is ceased.
Software
The initial state machine is designed with six states. The device is initially in Idle mode, by checking the condition that the Start button is pressed, it starts the engine and closes the Valve. It then reads the DC value through the ADC with timer intervals until the pressure inside the cuff reaches its threshold value (1023). When this value is reached, it turns off the engine and waits for 1 second. Then the device half opens the Valve and reads the AC value through the ADC until the AC value reaches its threshold value (230), at which the DC value indicates high-pressure. It then measures the low-pressure value by receiving the AC and DC values at each timer interrupt. After completing the calculations, it opens the valve completely so that the air pressure inside the cuff is zero. Finally display these two values and return to the original state. It should be noted that in each state, by pressing the Stop button, all calculations are stopped and the engine is turned off and the Valve is fully opened.
Figure 7 - Finite State Machine
Once we find the low-pressure and high-pressure points on the AC values and read them on the DC values, they must be returned to the voltage value obtained from the following equation:
DCoutput = ((DC_ADC) / 1024) * 5
Then, we transform the DCoutput to the sensor output voltage range as follows:
Vtransducer = (DCoutput) / (DCgain) = 49.4 KΩ / G − 1
Eventually, we calculate the pressure values using the following equations in the MPX-2050 sensor datasheet:
Slope = 40mV / 50kPa = 8*10-4 V/kPa
PressurekPa = Vtransducer / Slope
PressuremmHg = PressurekPa * (760 mmHg / 101.325 kPa)
Acknowledgment
I would like to express my thanks to my friend, Nima Gozal Pour, who has collaborated on this project as an electrical engineer. He provided valuable aid on circuit designs and digital filters.
Date: November 28th, 2016