❤️ Arduino • Sensore battito • LED

Sensore di battito cardiaco con Arduino e LED

Leggiamo il segnale digitale di un sensore di battito e facciamo lampeggiare un LED ogni volta che il modulo rileva una pulsazione o una vibrazione compatibile.

DifficoltàPrincipiante
IngressoD3 digitale
UscitaLED su D12
Importante: questo progetto è didattico e non è un dispositivo medico. Il sensore e lo sketch non devono essere usati per diagnosi, monitoraggio clinico o decisioni sanitarie.

Cosa imparerai

  • come leggere un sensore digitale con digitalRead();
  • come accendere un LED quando viene rilevato un evento;
  • come distinguere ingresso e uscita digitale;
  • come verificare la polarità del modulo;
  • come collegare questo progetto a Processing per visualizzare il segnale su PC.

Come funziona il sensore

Il modulo viene alimentato a 5 V e genera un segnale digitale quando rileva una lieve vibrazione. Arduino legge questo segnale e lo utilizza per accendere un LED.

Sensore battito cardiaco per Arduino

Sensore utilizzato In questa guida.

Concetto chiave: lo sketch non calcola i BPM. Si limita a leggere uno stato digitale: evento rilevato oppure non rilevato.

Materiale necessario

🔌 Arduino Uno
❤️ Sensore di battito
💡 LED
〰️ Resistenza da 220 Ω
🧩 Breadboard
🔗 Cavetti jumper

🧰 Kit Arduino consigliato

Molti progetti del sito usano LED, resistenze, breadboard e cavetti. Un kit completo può essere comodo per iniziare.

👉 Guarda il kit Arduino consigliato

Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.

📘 Vuoi imparare Arduino passo dopo passo?

Se vuoi approfondire e realizzare progetti più completi, puoi dare un’occhiata anche ai miei libri dedicati ad Arduino. All’interno troverai spiegazioni semplici, schemi chiari e molti progetti pratici pensati per chi parte da zero.

👉 Scopri i miei libri su Arduino

Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.

Schema del circuito

Schema Arduino sensore battito cardiaco con LED

Schema di collegamento. questa immagine era visualizzata a circa 526 px.

Controlla sempre la serigrafia del modulo: a seconda del modello, positivo e massa possono trovarsi in posizioni diverse. Non seguire il colore dei fili alla cieca: verifica VCC, GND e OUT stampati sulla basetta.

Pin utilizzati

ElementoPin ArduinoFunzione
Uscita digitale sensoreD3Rilevazione evento
LEDD12Segnalazione visiva

Codice Arduino commentato

Sensore battito + LED
// ==========================================================
// SENSORE DI BATTITO / VIBRAZIONE CON ARDUINO
// Lettura digitale + LED
// ==========================================================

// Pin collegato all'uscita digitale del sensore
const int sensorePin = 3;

// Pin collegato al LED
const int ledPin = 12;

void setup() {

 // Il LED è un'uscita
 pinMode(ledPin, OUTPUT);

 // Il sensore fornisce un segnale digitale
 pinMode(sensorePin, INPUT);
}

void loop() {

 // Legge lo stato del sensore:
 // HIGH = evento rilevato
 // LOW = nessun evento
 int stato = digitalRead(sensorePin);

 if (stato == HIGH) {

 // Accende il LED
 digitalWrite(ledPin, HIGH);

 // Mantiene il LED acceso per un secondo,
 // come Nello sketch
 delay(1000);
 }
 else {

 // Se non viene rilevato alcun evento,
 // il LED resta spento
 digitalWrite(ledPin, LOW);
 }
}

Come funziona il programma

1. Il sensore viene letto sul pin 3

digitalRead(3) restituisce HIGH oppure LOW. Lo sketch interpreta HIGH come rilevazione di un battito o di una vibrazione.

2. Il LED segue il rilevamento

Quando il sensore va HIGH, il LED sul pin 12 viene acceso. Se il sensore è LOW, il LED viene spento.

3. Il delay da 1 secondo

Lo sketch mantiene il LED acceso per un secondo. È semplice da vedere a occhio, ma blocca temporaneamente il programma.

Limite importante: con delay(1000) Arduino non legge nuovi eventi durante quel secondo. Per un vero conteggio dei battiti questo approccio è troppo lento e può perdere impulsi.

Versione più reattiva senza delay()

Se vuoi che il LED lampeggi brevemente senza bloccare Arduino, puoi usare millis():

Esempio senza delay bloccante
const int sensorePin = 3;
const int ledPin = 12;

unsigned long spegniLedA = 0;
bool ledAcceso = false;

void setup() {
 pinMode(sensorePin, INPUT);
 pinMode(ledPin, OUTPUT);
}

void loop() {

 int stato = digitalRead(sensorePin);

 // Se arriva un evento, accende il LED
 // per 100 millisecondi
 if (stato == HIGH) {
 digitalWrite(ledPin, HIGH);
 ledAcceso = true;
 spegniLedA = millis() + 100;
 }

 // Spegne il LED senza bloccare il programma
 if (ledAcceso && millis() >= spegniLedA) {
 digitalWrite(ledPin, LOW);
 ledAcceso = false;
 }
}

Visualizzare il segnale su Processing

Per osservare sul computer l’andamento del segnale puoi abbinare questo progetto al tutorial dedicato al grafico con Processing, purché il sensore utilizzato disponga dell’uscita adatta e lo sketch venga adattato alla modalità di lettura scelta.

📈 Vai al progetto Arduino + Processing

Perché questo progetto non calcola i BPM

Per calcolare i battiti al minuto bisogna misurare gli intervalli temporali tra impulsi validi, filtrare rimbalzi o falsi rilevamenti e sapere con certezza che il sensore stia producendo un impulso affidabile per ogni battito.

Il progetto non implementa questa logica, quindi è più corretto mantenerlo come rilevatore di eventi con LED.

Nota sanitaria: anche aggiungendo il calcolo dei BPM, un progetto Arduino autocostruito non diventa automaticamente un dispositivo medico affidabile.

Risultato del progetto

Arduino sensore battito cardiaco progetto

Scarica lo sketch

⬇️ Scarica sensore_battito_cardiaco.ino

Debug rapido

  • controlla VCC, GND e OUT sulla serigrafia del sensore;
  • verifica che l’uscita digitale sia collegata al pin D3;
  • controlla polarità e resistenza del LED;
  • se il LED non reagisce, verifica con un multimetro o Monitor Seriale lo stato dell’uscita del modulo;
  • se il LED resta sempre acceso, controlla la logica del sensore e l’eventuale soglia regolabile del modulo;
  • se vuoi contare impulsi ravvicinati, elimina il delay(1000).

Varianti del progetto

  • aggiungere il Monitor Seriale;
  • misurare l’intervallo tra due impulsi;
  • calcolare una stima dei BPM;
  • visualizzare il segnale con Processing;
  • aggiungere un display OLED;
  • registrare gli eventi su scheda SD.

Cosa devi ricordare

  • Il sensore viene letto sul pin D3.
  • Il LED è collegato al pin D12.
  • Lo sketch lavora con un semplice segnale HIGH/LOW.
  • Il delay da un secondo rende il progetto facile da vedere ma poco adatto al conteggio rapido.
  • La polarità dei moduli può cambiare: controlla sempre VCC e GND.
  • Questo è un progetto didattico, non un dispositivo medico.

Domande frequenti

Questo progetto misura i battiti al minuto?

No. Lo sketch rileva soltanto uno stato digitale e accende un LED. Per i BPM serve una logica temporale aggiuntiva.

Perché il LED resta acceso per un secondo?

Perché lo sketch usa delay(1000). Puoi ridurre il tempo oppure usare millis() per evitare di bloccare Arduino.

Posso collegarlo a Processing?

Sì. Puoi usare il progetto 22 come riferimento per visualizzare il segnale sul PC, adattando lo sketch al tipo di uscita disponibile sul sensore.

Posso usarlo per controllare la mia frequenza cardiaca?

Puoi sperimentare a scopo didattico, ma non devi considerare il risultato come misura clinica o affidabile per decisioni sanitarie.