Capteur de frequence cardiaque

bonjour, j'ai réalisé un montage dans isis dont j ai utilisé un capteur et un lcd , mon lcd s'allume mais n'affiche rien , je suis certaine que le problème est dans le code mais je ne sais pas comment le corriger. tout le montage fonctionne sauf le Lcd voici le code :

#define USE_ARDUINO_INTERRUPTS true // Set-up low-level interrupts for most acurate BPM math.
#include <PulseSensorPlayground.h> // Includes the PulseSensorPlayground Library.
#include <Wire.h>
#include<LiquidCrystal.h>

// Variables
const int PulseWire = 0; // PulseSensor PURPLE WIRE connected to ANALOG PIN 0
const int LED13 = 13; // The on-board Arduino LED, close to PIN 13.
int Threshold = 550; // Determine which Signal to "count as a beat" and which to ignore.
// Use the "Gettting Started Project" to fine-tune Threshold Value beyond default setting.
// Otherwise leave the default "550" value.

PulseSensorPlayground pulseSensor; // Creates an instance of the PulseSensorPlayground object called "pulseSensor"
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {

Serial.begin(9600); // For Serial Monitor

// Configure the PulseSensor object, by assigning our variables to it.
pulseSensor.analogInput(PulseWire);
pulseSensor.blinkOnPulse(LED13); //auto-magically blink Arduino's LED with heartbeat.
pulseSensor.setThreshold(Threshold);
lcd.begin(16, 2);
// Double-check the "pulseSensor" object was created and "began" seeing a signal.
if (pulseSensor.begin())
{
lcd.setCursor(3,0);
lcd.print("Aya et Walid");
lcd.setCursor(3,1);
lcd.print("Project");
Serial.println("OUR project"); //This prints one time at Arduino power-up, or on Arduino reset.
}
}

void loop() {

int myBPM = pulseSensor.getBeatsPerMinute(); // Calls function on our pulseSensor object that returns BPM as an "int".
// "myBPM" hold this BPM value now.

if (pulseSensor.sawStartOfBeat()) { // Constantly test to see if "a beat happened".
// If test is "true", print a message "a heartbeat happened".
lcd.clear();
lcd.setCursor(0,0);
lcd.print("A Heart Beating!");
lcd.setCursor(0,1);
lcd.print("BPM: ");
lcd.setCursor(5,1);
lcd.print(myBPM);
Serial.println("A Heart Beating!");
Serial.print("BPM: "); // Print phrase "BPM: "
Serial.println(myBPM); // Print the value inside of myBPM.
}

delay(20); // considered best practice in a simple sketch.

}

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

Bonjour et bienvenue,

Merci de prendre en compte les recommandations des "Bonnes Pratiques du Forum Francophones" concernant la présentation du code.

Tu utilises la librairie LiquidCrystal alors que ton écran est en interface I2C.
Regarde de ce coté

voila je viens de faire des modifications mais le probleme du lcd reste le meme :slight_smile:
#define USE_ARDUINO_INTERRUPTS true // Set-up low-level interrupts for most acurate BPM math.
#include <PulseSensorPlayground.h> // Includes the PulseSensorPlayground Library.
#include <Wire.h>
#include<LiquidCrystal_I2C.h>

// Variables
const int PulseWire = 0; // PulseSensor PURPLE WIRE connected to ANALOG PIN 0
const int LED13 = 13; // The on-board Arduino LED, close to PIN 13.
int Threshold = 550; // Determine which Signal to "count as a beat" and which to ignore.
// Use the "Gettting Started Project" to fine-tune Threshold Value beyond default setting.
// Otherwise leave the default "550" value.

PulseSensorPlayground pulseSensor; // Creates an instance of the PulseSensorPlayground object called "pulseSensor"
LiquidCrystal_I2C lcd(0x20,20,4);

void setup() {

Serial.begin(9600); // For Serial Monitor

// Configure the PulseSensor object, by assigning our variables to it.
pulseSensor.analogInput(PulseWire);
pulseSensor.blinkOnPulse(LED13); //auto-magically blink Arduino's LED with heartbeat.
pulseSensor.setThreshold(Threshold);
lcd.init();
// Double-check the "pulseSensor" object was created and "began" seeing a signal.
if (pulseSensor.begin())
{
lcd.setCursor(3,0);
lcd.print("Aya et Walid");
lcd.setCursor(3,1);
lcd.print("Project");
Serial.println("OUR project"); //This prints one time at Arduino power-up, or on Arduino reset.
}
}

void loop() {

int myBPM = pulseSensor.getBeatsPerMinute(); // Calls function on our pulseSensor object that returns BPM as an "int".
// "myBPM" hold this BPM value now.

if (pulseSensor.sawStartOfBeat()) { // Constantly test to see if "a beat happened".
// If test is "true", print a message "a heartbeat happened".
lcd.clear();
lcd.setCursor(0,0);
lcd.print("A Heart Beating!");
lcd.setCursor(0,1);
lcd.print("BPM: ");
lcd.setCursor(5,1);
lcd.print(myBPM);
Serial.println("A Heart Beating!");
Serial.print("BPM: "); // Print phrase "BPM: "
Serial.println(myBPM); // Print the value inside of myBPM.
}

delay(20); // considered best practice in a simple sketch.

}

Oui, mais tu ne présentes toujours pas ton code correctement.
Lorsque le code n'est pas placé entre balises on perd l'indentation et cela le rend difficile à lire.
Tu cliques sur <CODE/> et tu colles ton code entre les ```

Tu dois avoir quelque chose comme ça
```

Ton code ici

```

Post mis dans la mauvaise section, on parle anglais dans les forums généraux, je viens de déplacer le post dans la section francophone.

Merci de prendre en compte les recommandations listées dans "Les bonnes pratiques du Forum Francophone".

ah d'accord, je m'excuse c'est ma première fois dans ce forum

#define USE_ARDUINO_INTERRUPTS true    // Set-up low-level interrupts for most acurate BPM math.
#include <PulseSensorPlayground.h>     // Includes the PulseSensorPlayground Library.   
#include <Wire.h> 
#include<LiquidCrystal_I2C.h>

//  Variables
const int PulseWire = 0;       // PulseSensor PURPLE WIRE connected to ANALOG PIN 0
const int LED13 = 13;          // The on-board Arduino LED, close to PIN 13.
int Threshold = 550;           // Determine which Signal to "count as a beat" and which to ignore.
                               // Use the "Gettting Started Project" to fine-tune Threshold Value beyond default setting.
                               // Otherwise leave the default "550" value. 
                               
PulseSensorPlayground pulseSensor;  // Creates an instance of the PulseSensorPlayground object called "pulseSensor"
LiquidCrystal_I2C lcd(0x20,20,4);



void setup() {   

   Serial.begin(9600);     // For Serial Monitor

  // Configure the PulseSensor object, by assigning our variables to it. 
  pulseSensor.analogInput(PulseWire);   
  pulseSensor.blinkOnPulse(LED13);       //auto-magically blink Arduino's LED with heartbeat.
  pulseSensor.setThreshold(Threshold);   
   lcd.init();
  // Double-check the "pulseSensor" object was created and "began" seeing a signal. 
   if (pulseSensor.begin()) 
   {
    lcd.setCursor(3,0);
    lcd.print("Aya et Walid");
    lcd.setCursor(3,1);
    lcd.print("Project");
    Serial.println("OUR project");  //This prints one time at Arduino power-up,  or on Arduino reset.  
  }
}



void loop() {

 int myBPM = pulseSensor.getBeatsPerMinute();  // Calls function on our pulseSensor object that returns BPM as an "int".
                                               // "myBPM" hold this BPM value now. 
                                               
if (pulseSensor.sawStartOfBeat()) {            // Constantly test to see if "a beat happened". 
  // If test is "true", print a message "a heartbeat happened".
 lcd.clear();
 lcd.setCursor(0,0);
 lcd.print("A Heart Beating!");
 lcd.setCursor(0,1);
 lcd.print("BPM: ");
 lcd.setCursor(5,1);
 lcd.print(myBPM);
 Serial.println("A Heart Beating!");
 Serial.print("BPM: ");                        // Print phrase "BPM: " 
 Serial.println(myBPM);                        // Print the value inside of myBPM. 
}

  delay(20);                    // considered best practice in a simple sketch.

}

Il manque les résistances de pullups sur SCL et SDA

merci beaucoup le circuit marche bien maintenant merci :saluting_face:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.