#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Adresse I2C de l'écran LCD 20x4
LiquidCrystal_I2C lcd(0x27, 20, 4);
// Broche du potentiomètre
const int sensorPin = A0;
// Broche de la LED
const int ledPin = 13;
// Variables pour la mesure du rythme cardiaque
int sensorValue = 0;
int BPM = 0;
void setup() {
// Initialisation de l'écran LCD
lcd.begin(20, 4); // Spécifie 20 colonnes et 4 lignes
lcd.backlight();
// Initialisation de la LED
pinMode(ledPin, OUTPUT);
// Initialisation de la communication série pour le débogage
Serial.begin(9600);
}
void loop() {
// Lecture de la valeur du potentiomètre
sensorValue = analogRead(sensorPin);
// Mappage de la valeur du potentiomètre (0-1023) à la plage des BPM (0-120)
BPM = map(sensorValue, 0,1023,0,120 );
// Affichage des BPM sur l'écran LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("BPM: ");
lcd.print(BPM);
// Vérification du rythme cardiaque
if (BPM >= 60 && BPM <= 100) {
lcd.setCursor(0, 1);
lcd.print("Etat: Normal");
digitalWrite(ledPin, LOW); // Éteindre la LED
} else if (BPM < 60) {
lcd.setCursor(0, 1);
lcd.print("Etat: Plus bas");
digitalWrite(ledPin, HIGH); // Allumer la LED
} else if (BPM > 100) {
lcd.setCursor(0, 1);
lcd.print("Etat: Plus haut");
digitalWrite(ledPin, HIGH); // Allumer la LED
}
// Envoi de la valeur du capteur au Moniteur Série
Serial.print("Sensor Value: ");
Serial.println(sensorValue);
delay(100); // Petit délai pour éviter de surcharger le processeur
}