Projet programation scolaire

bonsoir à tous, je suis actuellement en 1ère sti2d et j'ai un projet de fin d'année a rendre pour mercredi. je dois afficher des pulsations cardiaque sur un afficheur LCD I2C blue/white en 2x16 et je possède deja le programme de detection de pulsation cardiaque mais je n'arrive pas a trouver de programme pour basculer les résultats sur l'afficheur. merci à vous d'avance.

si quelqu'un aurait le programme de detection avec affichage ou bien juste affichage

#include <LiquidCrystal.h>

int sensorPin = A0;
double alpha = 0.75;
int period = 500;
double change = 0.0;
double minval = 0.0;
void setup ()
{
  Serial.begin (9600);
}
void loop ()
{
    static double oldValue = 0;
    static double oldChange = 0;

    int rawValue = analogRead (sensorPin);
    double value = alpha * oldValue + (1 - alpha) * rawValue;


    Serial.print (",");
    Serial.println (value/10);
    oldValue = value;

    delay (period);
}

Tu dois afficher le nombre de battements par minute ou bien un graphe des pulsations cardiaques?
Dans le premier cas, c'est facile : cherche des tutos sur l'affichage sur écran LCD, il y en a plein sur le web.
Dans le second cas, tu devrais chercher un autre type d'écran, comme un tft ou un Oled.

Voir aussi
Capteur fréquence cardiaque code

Pour le titre:
La page Les bonnes pratiques du Forum Francophone, que bien sûr tu as lu, donne ce conseil:

Allez-vous afficher le nombre de battements de cœur par minute sur l'écran LCD ?
Il semble que le LCD 2x16 n'ait aucun moyen d'afficher des choses très avancées car l'écran est trop petit.

Bonjour,

Un écran 2x16 (2 lignes de 16 caractères) est largement suffisant pour afficher une info du genre «80bpm»

oui je dois afficher des battements par minutes et j'ai deja essayé de nombreux progommes que j'ai trouvé sur différents sites mais aucun ne fonctionne

oui c'est mon but final mais je ne trouve pas le bon programme pour afficher ces battements par minute

bonjour sur le lien capteur cadiaque, l'utilisateur utilise des led mais moi je ne dispose que de cet écran

Le problème est là : au lieu de travailler et de chercher à comprendre tu as perdu ton temps à chercher un truc tout fait.
Et voilà, personne n'a déjà fait exactement ce que le professeur te demande.

Il ne t'est pas venu à l'idée qu'avant de te donner le sujet le prof a fait une recherche pour s'assurer que la copie directe ne sera pas possible ?
Dès fois, c'est utile de réfléchir si on ne veut pas "galérer".

hello
tu t'y prends un peu tard et que de temps perdu, pour finalement ne pas nous donner les élements pour te répondre

1/ mettre un titre explicite à ton post. un titre comme " affichage rythme cardiaque sur lcd 16x2" permettrait aux suivants qui feront des recherches de trouver ton post.

2/ tu ne nous donnes pas de code, pas d'indications sur ton capteur cardiaque. un lien, un descriptif du fonctionnement...
le capteur te renvoit quoi, un signal électrique qui passe à 5V à chaque battement? l'info complete en I2C ?
la tu ne nous donnes rien, nous ne pouons pas t'aider avec rien.
tout ce que nous savons c'est que tu as un afficheur LCD 16x2 en I2C.

c'est l'histoire du mec qui veut gagner au loto mais qui ne joue pas...
tu veux qu'on t'aide à finir ton code mais tu n'en as pas fait...

voici mon programme désole arduino - Pastebin.com
et mon capteur est en 5v
merci de votre aide si vous avez d'autres questions ou bien des indications faites en moi part.

le principal problème est que mon professeur ne connais absolument rien à arduino car selon lui je cite "arduino n'est pas son métier" nous devons donc nous débrouiller sur quelque chose de parfaiteùent nouveau pour nous. Merci de ta compréhension.

OK, tu as un code. L'as-tu testé sur un Arduino ? Lequel (Uno, nano, Mega, autre) ?
Si oui, qu'est-ce qui s'affiche dans la console série (sais-tu ce qu'est la console série) ?

Ensuite, tu te sers de la bibliothèque LiquidCrystal.h. As-tu testé les exemples ? C'est la première chose à faire lorsqu'on utilise une bibliothèque.

Sais-tu comment brancher ton écran LCD ? Si oui, est-ce que les exemples de la bibliothèque affichent quelque chose sur l'écran ?

Répond à toutes ces questions, et on pourra commencer à t'aider.

Vu ton code, je pense que ton capteur est un KY-039. Tu peux trouver un code ici et la variable heartRateBPM doit contenir le pouls en pulsations par minutes. C'est celle que tu dois afficher sur ton écran je suppose.

alors j'ai tous les bpm qui s'affiche et j'ai egalement une courbe mais je n'ai rien sur l'ecran lcdmais je n'ai pas testé la bibliothèque et je ne sais pas si c'est le ky-039 mais il y ressemble fortement

un test

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);//0x26 est l'adresse propre au lcd
int capteur = 2;   // Le port D2 est associé à l'interruption 0
volatile long pulse = 0;  // 
long memo_pulse=pulse;
unsigned long fin_periode = 0;  // 
float periode =0;
int frequence=0;
long bit_vie=0;

void setup()  {
  Serial.begin(115200);
  Serial.println("frequence cardiaque");
  lcd.begin();
  lcd.backlight();
  //         0123456890123456
  lcd.print("frequence cardio");
  lcd.setCursor(5,1);lcd.print(pulse);
  lcd.setCursor(10,1);lcd.print("BPM");
  //******************************************************************************************
  //on suppose que le capteur envoit un pulse positif
  pinMode(capteur, INPUT);
  attachInterrupt(0, battement, RISING);  // Détecte des fronts descendants
  //sinon, il faudra:
  //pinMode(capteur, INPUT_PULLUP);
  //attachInterrupt(0, battement, FALLING);  // Détecte des fronts descendants
//******************************************************************************************
  fin_periode = millis();
}

void loop()   
{
  if (pulse!=memo_pulse)
  {
  periode=(millis()-fin_periode);Serial.println (periode);
  frequence=((1000/periode)*60);Serial.println (frequence);
  lcd.setCursor(5,1);lcd.print(frequence);lcd.print("  ");
  memo_pulse=pulse;
  fin_periode = millis();
  bit_vie++;lcd.setCursor(15,1);
  if(bit_vie%2){
  lcd.print("*");}else{lcd.print("O");}
  }
}

void battement()   
{  
  pulse++;
}

il faut que je test ce programme?

oui, regardes bien les commentaires.
chez moi il fonctionne.
attention, l'adresse de mon lcd est 0x27. le tiens n'a peut etre pas la meme ; j'ai déjà vu 0x26,0x27, 0x3E,0x3F

je ne connais pas l'adresse du mien
et sa t'affiche bien les bpm sur le lcd?
as tu un branchement spécial?

tu as bien un lcd en I2C

oui tt a fait