Heart Beat Monitor using Arduino in Proteus

Heart Beat Monitor using Arduino in Proteus
- First of all, click the below button to download this complete Proteus simulation & Arduino code for Heart Beat Monitor:
Proteus Simulation of Heart Rate Monitor
- Now let's have a look at How we have designed this simulation and How it works.
- So, design a simple circuit in Proteus as shown in the below figure:
- As you can see in the above figure, we have our Arduino UNO board along with LCD and Heart Beat Sensor.
- There's also a Button attached to Pin # 2, so when we press this button our Arduino will start counting the Heart Beat and will update it on the LCD.
Arduino Code for Heart Rate Monitor
- Here's the code which I have used for this Heart Beat Monitor using Arduino:
#include <LiquidCrystal.h>
#include <TimerOne.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
int HBSensor = 4;
int HBCount = 0;
int HBCheck = 0;
int TimeinSec = 0;
int HBperMin = 0;
int HBStart = 2;
int HBStartCheck = 0;
void setup() {
// put your setup code here, to run once:
lcd.begin(20, 4);
pinMode(HBSensor, INPUT);
pinMode(HBStart, INPUT_PULLUP);
Timer1.initialize(800000);
Timer1.attachInterrupt( timerIsr );
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Current HB : ");
lcd.setCursor(0,1);
lcd.print("Time in Sec : ");
lcd.setCursor(0,2);
lcd.print("HB per Min : 0.0");
}
void loop() {
if(digitalRead(HBStart) == LOW){lcd.setCursor(0,3);lcd.print("HB Counting ..");HBStartCheck = 1;}
if(HBStartCheck == 1)
{
if((digitalRead(HBSensor) == HIGH) && (HBCheck == 0))
{
HBCount = HBCount + 1;
HBCheck = 1;
lcd.setCursor(14,0);
lcd.print(HBCount);
lcd.print(" ");
}
if((digitalRead(HBSensor) == LOW) && (HBCheck == 1))
{
HBCheck = 0;
}
if(TimeinSec == 10)
{
HBperMin = HBCount * 6;
HBStartCheck = 0;
lcd.setCursor(14,2);
lcd.print(HBperMin);
lcd.print(" ");
lcd.setCursor(0,3);
lcd.print("Press Button again.");
HBCount = 0;
TimeinSec = 0;
}
}
}
void timerIsr()
{
if(HBStartCheck == 1)
{
TimeinSec = TimeinSec + 1;
lcd.setCursor(14,1);
lcd.print(TimeinSec);
lcd.print(" ");
}
}
- In this code, I have used a TimerOne Library which creates an interrupt after every 1sec.
- On each interrupt, it executes timerIsr() function, in which I have placed a check that whenever this interrupt will call we will increment TimeinSec variable.
- So, when TimeinSec will become equal to 10 then I am simply multiplying it with 6 and updating it on the LCD.
- So, use the above code and get your Hex File from Arduino Software and update it in your Proteus Simulation.
Simulating Heart Rate Monitor
- Now run your Proteus Simulation and you will get something as shown in the below figure:
- Now click this HB button and it will start counting the HB as well as will count the Time in seconds.
- After ten seconds it will multiply the current heart rate with six and will give the Heart Beat Per Minute.
- Here's a final image of the result:
- You can change the value of Heart Beat from the variable resistor connected with Heart Beat Sensor.
- Let's change the value of variable resistance connected to Heart Beat sensor, and have a look at the results.
- You have to press the button again in order to get the value.
- Here's the screenshot of the results obtained:
- So, now the heart is beating a little faster and we have got 108 bpm.
- If you run this simulation then you will notice that the second is quite slow which I think is because of Proteus.
- I have tested this code on hardware and it worked perfectly fine, although you need to change heart beat sensor's values in coding.
- Here's the video in which I have explained the working of this Heart Rate Monitor Simulation in detail.
×
![]()















































































