#include <LiquidCrystal_I2C.h>
#define lcdAddress 0x27
#define lcdColumn 20
#define lcdRows 4
LiquidCrystal_I2C lcd(lcdAddress,lcdColumn,lcdRows);
#define greenLedPin 26
#define redLedPin 27
#define pulsePin 17
int minHeartRate = 60;
int maxHeartRate = 100;
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.backlight();
pinMode(greenLedPin, OUTPUT);
pinMode(redLedPin, OUTPUT);
//pinMode(pulsePin, INPUT);
}
void heartRateCalculation(int pulseValue){
}
void loop() {
int pulseValue = analogRead(pulsePin);
// Convert pulseValue to voltage
float voltage = pulseValue * (5 / 1023.0);
// calculate heartRate from voltage
int heartRate = (voltage / 3.3) * 675;
if (heartRate >= minHeartRate && heartRate <= maxHeartRate){
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("HR monitor");
lcd.setCursor(2,2);
lcd.print("Heart rate: ");
lcd.println(heartRate);
delay(100);
digitalWrite(greenLedPin, HIGH);
delay(50);
digitalWrite(greenLedPin, LOW);
}
else{
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("Heart rate monitor");
lcd.setCursor(0, 1);
lcd.print("Heart rate Abnormal ");
lcd.setCursor(2, 2);
lcd.print("Heart rate: ");
lcd.println(heartRate);
delay(100);
digitalWrite(redLedPin, HIGH);
delay(50);
digitalWrite(redLedPin, LOW);
}
}