Bonjour à tous.
Il y a peu, j'ai eu une idée de projet. J'aimerais réaliser quelque chose qui capte ma fréquence cardiaque, grâce à un capteur de pouls (le XD58), quatre LEDs (une bleue, une verte, une jaune et une rouge, et les résistances correspondantes) et une carte Arduino Nano. Je voudrais que la LED bleue (Pin9) clignote au rythme de mon coeur, que la verte (Pin3) s'allume lorsque mon pouls est supérieur à 70bpm, que la jaune (Pin4) s'allume lorsque mon pouls est supérieur à 100bpm, et que la rouge (Pin5) s'allume lorsque mon pouls est supérieur à 130bpm. J'ai tout le matériel nécessaire, mais je n'ai pas les connaissances en codage pour réaliser mon projet
J'ai fouillé Internet, et j'ai réussi à combiner des codes pour arriver à ce résultat :
Mais il ne fonctionne pas, sauf la LED bleue, elle est en rythme avec mon pouls. J'avoue que je ne comprends pas vraiment le code... j'utilise l'application Arduino pour coder. J'aimerais vraiment pouvoir réussir mon projet Est-ce que vous pourriez m'aider svp ?
une photo du code... avec ça on va aller loin... même avec mes lunettes c'est illisible...
J'aimerais vraiment pouvoir réussir mon projet
souhaitez vous apprendre à coder? il faut peut-être commencer par plus simple...
La rédaction de votre message ne répond pas aux critères attendus. Il n'aura sans doute pas de réponse tant que vous n'aurez pas pris en compte et mis en application les recommandations listées dans "Les bonnes pratiques du Forum Francophone”
hello
merci de mettre ton code et pas une copie d'écran.
dans l'IDE arduino, menu "outil", "formater"
puis tu sélectionnes ton code et "copier"
dans ton post, tu cliques sur "</>" et tu verras apparaitre une ligne dans laquelle tu deposes ton curseur et fais "coller"
tu code sera propre et présenté dans une fenetre avec ascenseur si besoin
D'accord, désolé, mais quels sont les critères attendus ?
Et oui désolé, je reposte le code :
#include <PulseSensorPlayground.h>
PulseSensorPlayground pulseSensor;
// Variables
int PulseSensorPurplePin = 0;
int LED9 = 9;
int LED3 = 3;
int LED4 = 4;
int LED5 = 5;
int pinCount = 4;
int Signal;
int Threshold = 516;
void setup() {
pinMode(LED3, OUTPUT);
Serial.begin(9600);
pinMode(LED4, OUTPUT);
Serial.begin(9600);
pinMode(LED5, OUTPUT);
Serial.begin(9600);
pinMode(LED9, OUTPUT);
Serial.begin(9600);
}
void loop() {
Serial.begin(115200);
Signal = analogRead(PulseSensorPurplePin);
Serial.println(Signal);
if (Signal > Threshold) {
digitalWrite(LED9, HIGH);
} else {
digitalWrite(LED9, LOW);
}
int myBPM = pulseSensor.getBeatsPerMinute();
if ( 70 < myBPM ) {
digitalWrite(LED3, HIGH);
} else {
digitalWrite(LED3, LOW);
}
if ( 100 < myBPM ) {
digitalWrite(LED4, HIGH);
} else {
digitalWrite(LED4, LOW);
}
if ( 130 < myBPM ) {
digitalWrite(LED5, HIGH);
} else {
digitalWrite(LED5, LOW);
}
delay(10);
}
Merci de votre aide.
Et je ne souhaite pas apprendre particulièrement à coder, c'est juste que j'aurais besoin d'un objet comme cela (à cause d'une pathologie que j'ai, qui fait que je peux faire de la tachycardie sans m'en rendre compte, mais ce n'est rien de grave) donc je voulais le faire moi-même. J'ai les connaissances en mécanique, soudure etc... mais presque aucune en code
J'ai fait ce que vous avez dit, mais la LED3 ne s'allume pas alors que mon pouls est supérieur à 70bpm, que manque-t-il d'après vous pour qu'elle s'allume sous ma condition ?
Oui elles le sont, et oui je les ai ajoutées et elles fonctionnent merci
Mais vous ne savez pas comment je pourrais faire en sorte que la LED3 s'allume lorsque mon pouls est supérieur à 70bpm ? Est-ce qu'il faut retranscrire en battements par minute ce que le capteur reçoit ? Si je réussis pour celle-là, j'y arriverai pour les autres (lorsque mon pouls est supérieur à 100bpm, puis lorsqu'il est supérieur à 130bpm) en répétant la même opération normalement
Dans le moniteur série, il est écrit "myBPM = 0"
Le problème vient peut-être de là, je pense que le capteur ne retranscrit pas mes battements de coeur à proprement parler, mais simplement un signal de mon rythme cardiaque, mais comment faut-il faire pour que le programme traduise mon rythme cardiaque en battements par minute ??
Tu as essayé les codes des exemples installés avec la librairie.
Ils fonctionnent?
Parce que dans les codes en question il y a cette remarque:
/*
Every Sketch that uses the PulseSensor Playground must
define USE_ARDUINO_INTERRUPTS before including PulseSensorPlayground.h.
Here, #define USE_ARDUINO_INTERRUPTS true tells the library to use
interrupts to automatically read and process PulseSensor data.
See ProcessEverySample.ino for an example of not using interrupts.
*/
Il faut lire les commentaires dans les exemples.
En particulier, ceux en tête de programme
Chaque croquis qui utilise PulseSensorPlayground doit
définir USE_ARDUINO_INTERRUPTS avant d'inclure PulseSensorPlayground.h.
Ici, USE_ARDUINO_INTERRUPTS true indique à la bibliothèque d'utiliser
les interruptions pour lire et traiter automatiquement les données de PulseSensor