Hartslagsensor

Doel:

  • gebruik van hartslagsensor, met analoge output
  • detecteren van events (hartslagen) in een signaal

nodig:

  • hartslagsensor
  • LED-schakeling (eventueel ingebouwde LED)

De hartslagsensor meet met behulp van licht de verandering in de doorbloeding van een vinger of een oorlel. Dit kun je gebruiken om de hartslag te bepalen.

De link hiernaast bevat een uitleg van de manier waarop je de sensor gebruikt, met een video.

Schakeling

Verbind de hartslagsensor:

  • signal met Arduino A0
  • VCC met Arduino 5V
  • GND met Arduino GND

Kijk op de sensor zelf welke draden gebruikt worden voor VCC, GND en signal. Vooraanzicht van de sensor (hartje), vlnr: signal, VCC, GND.

Programma

De sensor is verbonden aan de analoge input A0.

loop:

De sensorwaarde wordt ingelezen, en geschreven naar Serial output. Deze waarde kun je dan bekijken in de Serial Monitor of -in dit geval veel handiger- de Serial Plotter in de Arduino IDE.

Als de signaalwaarde boven de threshold ligt, laten we de LED oplichten; daaronder doven we de LED. Een bruikbare waarde voor deze threshold moet je proefondervindelijk vaststellen, aan de hand van het signaal dat je ziet op de Serial Plotter.

const int ledPin = LED_BUILTIN;

const int sensorPin = 0; // A0

int threshold = 550; // "beat" level

void setup() {

  pinMode(ledPin,OUTPUT);

  Serial.begin(9600);

}

void loop() {

  int signal = analogRead(sensorPin);  

  Serial.println(signal);  

  if (signal > threshold) {

    digitalWrite(ledPin, HIGH);

  } else {

     digitalWrite(ledPin, LOW);

   }

   

  delay(10);  

}

Opdracht 1

Bekijk de video (zie de links hierboven).

Bevestig de sensor aan een vinger, en bekijk het signaal op de Serial Plotter.

Bepaal een bruikbare waarde voor de threshold, zodat de LED elke hartslag duidelijk aangeeft. (De LED moet in een complete hartslag ongeveer 25-50% van de tijd branden; ofwel: de LED moet een duty cycle hebben van ca 25-50%.)

  • hoe ziet het signaal er in jouw geval uit (maak een schets)?
  • wat is in jouw geval een zinvolle waarde voor de threshold (drempelwaarde)?

Opdracht 2

Herhaal bovenstaande opdracht voor een andere vinger. Je ziet dan mogelijk een signaal met een andere vorm, en met andere minima en maxima.

Bedenk een manier om de threshold automatisch te bepalen, op basis van de vorm van het signaal van de hartslag.

  • hoe ziet het signaal er in jouw geval uit (maak een schets)?
  • wat is in jouw geval een zinvolle waarde voor de threshold?
  • geef in de schets aan welke punten van belang zijn voor het bepalen van de threshold.
  • beschrijf (in tekst) hoe je de threshold kunt berekenen - bijvoorbeeld op basis van de voorafgaande 10 hartslagen.

Opdracht 3

We drukken het tempo van de hartslag uit in een getal: het aantal slagen per minuut.

Bedenk een manier om dit getal te berekenen.

  • Beschrijf (in tekst) hoe je het aantal slagen per minuut zou kunnen berekenen.

Arduino lessen - Hartslagsensor      --