Categories: Arduino

Misurare il battito cardiaco con Arduino? Certo che sì.

Vediamo insieme come misurare la frequenza cardiaca con Arduino utilizzando un sensore di battito cardiaco.

Per il tutorial ufficiale, fatto dagli sviluppatori del sensore e della libreria vi rimando al sito www.pulsesensor.com, qua non affronterò l’argomento in maniera dettagliata ma solamente i passaggi necessari per le prime letture.

Come prima cosa è necessario scaricare la libreria PulseSensor Playground, vi rimando alla guida su come aggiungere una libreria su Arduino IDE.

I collegamenti da fare

L’immagine di Fritzing è presa dal tutorial ufficiale.

Collegamenti da effettuare. Noi useremo come led quello già integrato sul pin 13.

– (simbolo meno) – GND
+(simbolo più) – 5v
S – pin analogico A0

Lo sketch

Vediamo insieme l’esempio GettingStartedProject presente nella libreria PulseSensor Playground. Commenterò solamente i passaggi meno chiari.

/*  PulseSensor™ Starter Project and Signal Tester
 *  The Best Way to Get Started  With, or See the Raw Signal of, your PulseSensor™ & Arduino.
 *
 *  Here is a link to the tutorial
 *  https://pulsesensor.com/pages/code-and-guide
 *
 *  WATCH ME (Tutorial Video):
 *  https://www.youtube.com/watch?v=82T_zBZQkOE
 *
 *
-------------------------------------------------------------
1) This shows a live human Heartbeat Pulse.
2) Live visualization in Arduino's Cool "Serial Plotter".
3) Blink an LED on each Heartbeat.
4) This is the direct Pulse Sensor's Signal.
5) A great first-step in troubleshooting your circuit and connections.
6) "Human-readable" code that is newbie friendly."

*/

//  Variables
int PulseSensorPurplePin = 0;        // Pulse Sensor PURPLE WIRE connected to ANALOG PIN 0
int LED13 = 13;   //  The on-board Arduion LED


int Signal;                // holds the incoming raw data. Signal value can range from 0-1024
int Threshold = 550;            // Determine which Signal to "count as a beat", and which to ingore.


// The SetUp Function:
void setup() {
  pinMode(LED13,OUTPUT);         // pin that will blink to your heartbeat!
   Serial.begin(9600);         // Set's up Serial Communication at certain speed.

}

// The Main Loop Function
void loop() {

  Signal = analogRead(PulseSensorPurplePin);  // Read the PulseSensor's value.
                                              // Assign this value to the "Signal" variable.

   Serial.println(Signal);                    // Send the Signal value to Serial Plotter.


   if(Signal > Threshold){                          // If the signal is above "550", then "turn-on" Arduino's on-Board LED.
     digitalWrite(LED13,HIGH);
   } else {
     digitalWrite(LED13,LOW);                //  Else, the sigal must be below "550", so "turn-off" this LED.
   }


delay(10);


}

28 Variabile dove verrà salvato il valore analogico del sensore
29 Valore di soglia sopra il quale dovrebbe riconoscere la presenza di un battito cardiaco. Va calibrato, nel qual caso rilevi sempre un battito bisognerà alzare il valore, diversamente dovrà essere abbassato.
Nota bene: a volte le entrate analogiche ‘impazziscono’, nel senso che le letture dei valori possono essere molto variabili e instabili. Si può provare a cambiare porta, ma di solito è un problema che si risolve da solo nel giro di poco tempo.
42 Lettura sulla porta analogica 0 e salvataggio del valore nella variabile intera di nome Signal precedentemente dichiarata.
48 Se il valore analogico è superiore alla nostra soglia accende il led integrato
50 Altrimenti spegne il led integrato

Guardiamo il nostro battito

Una volta caricato lo sketch, questo è quello che dovreste vedere selezionando Tools>Serial Plotter

Il grafico del mio battito cardiaco

Chiaramente sulle x (asse orizzontale) abbiamo il tempo mentre sulle y (asse verticale) abbiamo il valore letto dal sensore.

I picchi alti sono i battiti del nostro cuore. Figo eh?

Spero che anche questo tutorial possa esservi d’aiuto, rimango a disposizione per eventuali bisogni.

Grazie,
Alessandro

Alessandro Oppo

Alessandro è un milanese che vorrebbe scappare da Milano, è appassionato di informatica ma vorrebbe vivere senza telefono, è un artigiano eppure vorrebbe robotizzare tutto, impara una cosa e già vorrebbe studiare dell’altro. Autodidatta da sempre, gli piace sbattere la testa finché tutto non funziona come vuole lui, spesso ci riesce anche! Visita il suo blog personale alexoppo.com Il motto che si ripete dentro la testa è: “Se ci sono riusciti gli altri ci posso riuscire anche io”.

View Comments

  • Salve,
    io ho comprato un sensore di battito cardiaco e sto provando a farlo funzionare, ho svolto anche questo esempio. Non capisco perchè non mi restituisce il valore effettivo del mio battito cardiaco, anche nell'esempio non capisco che cosa rappresentano quei valori sulle ascisse e le ordinate. Mi saprebbe rispondere? La ringrazio.

    • Ciao Sara, il sensore è identico a quello usato nel tutorial?
      Sulle ascisse abbiamo il tempo mentre sulle ordinate c'è il valore letto dal sensore.
      Ognuno dei picchi rappresenta un battito cardiaco. Se vuoi sapere quanti battiti il tuo cuore compie in un secondo è possibile farlo aggiungendo un contatore che aumenti ad ogni battito e che stampi il valore dopo un minuto. Se hai bisogno di aiuto dimmelo, intanto cerchiamo di far andare il sensore! Alessandro

  • Ciao Alessandro ho letto la tua risposta ma il mio sensore continua a non andare !! aiuto!!! non c'è un modo per contattarti in privato? in modo da potermi spiegare meglio se sei disponibile ? Grazie

    • Ciao Sara, se hai Telegram puoi contattarmi lì, io sono @chiocciolab altrimenti scrivimi pure qui nei commenti e cerco di risponderti al più presto.

      Ma il sensore è identico a quello che ho usato io?

Recent Posts

Ponti sospesi: cosa abbiamo sbagliato? cosa si potrebbe fare?

Poco prima di Natale ho avuto la fortuna di poter partecipare a un evento chiamato…

4 mesi ago

Siamo quel che facciamo? – racconto breve

Armando quel giorno era particolarmente stanco. Tutto, per quanto andasse bene, sembrava metterlo sotto pressione.…

9 mesi ago

Il limite è sempre la mente – Racconto breve

Armando guardò l’orologio e vide il proprio riflesso sul quadrante bianco. Il riflesso però non…

10 mesi ago

L’ultimo giorno del carcere – Racconto breve

I muri sono muri, lo sono sempre, anche quando le porte sono aperte. Era la…

10 mesi ago

Riflessioni sul carcere

Pochi di noi riflettono sull’esistenza nella nostra società del carcere. Il carcere è la concretizzazione…

11 mesi ago

Come dovremmo dialogare secondo me

Spesso intraprendiamo delle conversazioni e delle chiacchierate piuttosto inconsapevolmente. Voglio dire che non siamo molto…

11 mesi ago