Blood Pressure sensor interfacing | Arduino code and Block Schematic

This page covers Blood Pressure sensor interfacing with arduino code. It describes Blood Pressure sensor interfacing block circuit schematic.

Introduction: As we know blood pressure is very essential to be measured due to serious problems such as heart attack, stroke or kidney related diseases. High blood pressure does not have any symptoms and hence it requires regular checking.

What is Blood Pressure sensor ?

The device which measures the blood pressure is known as blood pressure sensor. It is also called as Sphygmomanometer.

The blood pressure is measured as numbers viz. systolic stress, diastolic pressure and pulse rate.

Blood Pressure Sensor

Following are the features of Blood Pressure sensor manufactured by Sunrom.
• Automatic compression/decompression
• Easy to operate using button
• Memory to save measurements
• Automated power saving
• Large LCD screen
• Requires +5V for its operation
• Serial output in ASCII format at 9600 baud
• Refer working operation of Blood Pressure sensor >>.

Blood Pressure interfacing with Arduino block circuit schematic

It is very easy to interface blood pressure sensor with arduino or microcontroller having UART. Here arduino or microcontroller is set to communicate at 9600 baud.

The sensor is interfaced with arduino as per circuit schematic diagram shown below. During dumping of code do not connect Rx pin of arduino with Tx pin of sensor module. After the code is dumped both of these pins are connected.

Blood Pressure sensor interfacing with arduino

Following table mentions connections between Blood Pressure sensor and Arduino board.

Blood pressure sensor Arduino Uno Board
Tx-OUT RxD pin

Blood Pressure sensor interfacing with Arduino code

Following is the arduino code to interface Blood Pressure sensor with arduino or any microcontroller board. The blood pressure sensor provides output in 8 bit ASCII format which ranges from 000 to 255. The three parameters viz. systolic, diastolic and pulse rate are separated by comma and space. The last byte of packet is always 0x0A in hex and 10 in decimal so one can view each reading from sensor on new line. The serial communication speed is set initially to 9600 bps.

#include <SoftwareSerial.h>
int sensorValue; // variable to store the output from the sensor

SoftwareSerial serial(9,10);

char sbuffer[14], ch;
unsigned char pos;
unsigned char read1, read2, read3;
boolean newData=false;

void setup() {
Serial.println("<Arduino is ready>");

void loop() {

void recvChar() {
if (Serial.available() > 0)

ch =; //loop till character received
if(ch==0x0A) // if received character is <LF>, 0x0A, 10 then process buffer
pos = 0; // buffer position reset for next reading
// extract data from serial buffer to 8 bit integer value
// convert data from ASCII to decimal
read1 = ((sbuffer[1]-'0')*100) + ((sbuffer[2]-'0')*10) +(sbuffer[3]-'0');
read2 = ((sbuffer[6]-'0')*100) + ((sbuffer[7]-'0')*10) +(sbuffer[8]-'0');
read3 = ((sbuffer[11]-'0')*100) + ((sbuffer[12]-'0')*10) +(sbuffer[13]-'0');
{ //store serial data to buffer
sbuffer[pos] = ch;

void showNewData() {
if (newData == true)
Serial.println("Calculating Results ... ");
newData = false;

Advantages and Disadvantages of other Sensor Types

PPG sensor    ECG sensor    Capacitive    Inductive    Photoelectric    Ultrasonic    Infrared    Motion    Biometric    Force    Humidity    Temperature    Light    Barometer    Sound    pH    Soil Moisture   

Advantages and Disadvantages of other wireless technologies

IrDA    HomeRF    Bluetooth    Radar    RF    Wireless    Internet    Mobile Phone    IoT    Solar Energy    Fiber Optic    Satellite    GPS    RFID    AM and FM    LTE   

What is Difference between

difference between OFDM and OFDMA
Difference between SC-FDMA and OFDM
Difference between SISO and MIMO
Difference between TDD and FDD

RF and Wireless Terminologies