bonjour à tous , dans le cadre d'un exercice je dois realiser un programme pour mesurer la frequence cardiaque . il y a de nombreuses exigeances dont celle de faire apparaitre la frequance cardiaque sur le terminal de VSCODE.je possede une carte arduino nano328 mega et voici mon code:#include <Arduino.h>
const int sensorPin = A0; // Broche analogique pour le capteur cardiaque
const int bufferSize = 50; // Taille du tableau de valeurs
int sensorValues[bufferSize]; // Tableau pour stocker les valeurs lues
int sensorIndex = 0; // Index actuel dans le tableau des valeurs
int heartRate = 0; // Stocke la fréquence cardiaque calculée
int threshold = 50; // Seuil pour détecter les battements cardiaques
int maxValue = 0; // Stocke la valeur maximale dans le tableau
void setup() {
Serial.begin(9600); // Initialisation de la communication série
}
void loop() {
// Lire la valeur analogique du capteur
sensorValues[sensorIndex] = analogRead(sensorPin);
// Calculer la moyenne des 50 dernières valeurs lues
int sum = 0;
for (int i = 0; i < bufferSize; i++) {
sum += sensorValues[i];
}
int average = sum / bufferSize;
// Soustraire la moyenne du signal
for (int i = 0; i < bufferSize; i++) {
sensorValues[i] -= average;
}
// Trouver la valeur maximale
maxValue = 0;
for (int i = 0; i < bufferSize; i++) {
if (sensorValues[i] > maxValue) {
maxValue = sensorValues[i];
}
}
// Diviser toutes les valeurs par le maximum
for (int i = 0; i < bufferSize; i++) {
sensorValues[i] = map(sensorValues[i], 0, maxValue, 0, 1023);
}
// Seuillage par une valeur seuil
int beatCount = 0;
for (int i = 1; i < bufferSize; i++) {
if (sensorValues[i] > threshold && sensorValues[i - 1] <= threshold) {
beatCount++;
}
}
// Calculez la fréquence cardiaque en battements par minute (bpm)
heartRate = beatCount * (60 / (bufferSize / 1000));
// Réinitialiser l'index du tableau
sensorIndex = (sensorIndex + 1) % bufferSize;
}
merci d'avoir pris le temps de lire mon message un peu indigeste avec ce code.
bonne soirée
En effet ton code est indigeste, car il n'est pas formatté et il devrait être dans un espace < code > plus facile à lire. Merci de lire et appliquer les règles du forum ici :
Ceci dit, quelle est ta question ? Ces lignes affichent la fréquence cardiaque :
merci pour votre réponse.
ces lignes devraient en effet afficher la fréquence mais quand je televerse et que je veux utiliser le capteur je n'ai aucune valeur qui apparait sur mon terminal. j'ai d'abord pensé à une erreur au niveau du delay mais je ne pense pas que ce soit cela.
Une suggestion, tu mets ton code en forme comme demandé dans "Les Bonnes Pratiques du Forum Francophone" et ensuite on discute de tes problèmes de code.
Lecture des Bonnes Pratiques plus mise en forme du code ne te prendra pas plus de 3 minutes.
Comme redemandé par @fdufnews merci de mettre en forme le code, comme expliqué dans les bonnes pratiques.
Cette ligne définit le débit de communication entre l'Arduino et le PC sur lequel tourne l'IDE Arduino. Il doit être identique à celui qui s'affiche dans la console : pour l'afficher, il faut cliquer sur l'icone de la loupe en haut à droite