Hoe de hartslag meten met de hartslagsensor?
Hartslag of polsslag is de belangrijkste parameter die in de geneeskunde wordt gemeten. Er zijn twee manieren waarop de hartslag kan worden gemeten. Een daarvan is om de pols handmatig te controleren door een stethoscoop te gebruiken en de hartslag te raden, de andere methode is om een hartslagsensor te gebruiken. Een hartslagsensor krijgt enkele metingen van de pols en stuurt een elektrisch signaal naar de microcontroller, deze metingen worden vervolgens berekend en de exacte polsslag wordt weergegeven.
Hoe meet een hartslagsensor de polsslag?
We weten wat we gaan doen, dus laten we aan dit project gaan werken.
Stap 1: de componenten verzamelen
Het maken van een lijst met componenten en het bestuderen van de werking van die componenten is de beste aanpak voordat u met een project begint. Hieronder volgen de componenten die in ons project zullen worden gebruikt:
Stap 2: De gebruikte componenten kennen
Omdat we de lijst met apparaten hebben die we gaan gebruiken. Laten we nu eens kijken hoe deze componenten werken.
Arduino Uno is een microcontrollerbord dat wordt gebruikt om verschillende circuits aan te sturen. Het gebruikt een C-code die het de instructies geeft om een taak uit te voeren. Andere vervangers van dit microcontroller-bord die op de markt verkrijgbaar zijn, zijn Arduino Nano, Node MCU, ESP32, enz.
SEN-11574 is een plug-and-play hartslagsensor die is geïntegreerd met Arduino. Het heeft twee kanten. Aan de ene kant is een led geplaatst die licht uitstraalt. Deze led moet direct bovenop een ader worden geplaatst. Omdat we weten dat het bloedvolume in de ader groter is als het hart pompt, dus als er meer bloed in de ader zit, wordt er meer licht naar de sensor gereflecteerd. Deze verandering in het door de sensor ontvangen licht wordt in de loop van de tijd geanalyseerd en de hartslag wordt gemeten. Aan de andere kant van de sensor is een schakeling aanwezig die verantwoordelijk is voor de versterking en ruisverwijdering van het ontvangen signaal.
Stap 3: De componenten in elkaar zetten
- Zoals we weten, is de huid van een menselijk lichaam, soms vochtig of olieachtig. Dit zou kunnen resulteren in kortsluiting van de sensor wat foutieve metingen geeft. Het is beter om een laagje vinylsticker op de LED-zijde van de sensor aan te brengen om te voorkomen dat het vocht op de huid komt.
- Neem daarna een stuk zwarte vectortape en plak dit op de andere kant van de sensor. Hiermee wordt voorkomen dat licht uit de omgeving het licht van de sensoren onderbreekt.
- Verbind nu de Vcc en aardingspin van de sensor met Arduino en de analoge pin van de sensor met A0 van Arduino.
Alle apparaten zijn nu ingesteld en klaar voor gebruik. We plaatsen de sensor direct op de ader, ofwel op de vinger of het oor om de hartslag te meten.
Stap 4: Aan de slag met Arduino
Als je nog niet eerder aan Arduino IDE hebt gewerkt, maak je geen zorgen, want de procedure om een code op het microcontrollerbord te branden met Arduino IDE wordt hieronder gegeven.
- Nadat je je Arduino-bord op je pc hebt aangesloten, ga je naar Configuratiescherm> Hardware en geluiden> Apparaten en printers om de naam te controleren van de poort waarop Arduino is aangesloten. Het is anders op verschillende computers.
- Open de Arduino IDE en stel het bord in als Arduino / Genuino UNO.
- Stel nu de poort in die u eerder hebt waargenomen in het configuratiescherm.
- Download de onderstaande code en open deze. Brand de code op uw Microcontroller-kaart door op het Uploaden knop.
Klik hier om de code te downloaden.
Stap 5: Code
De code om de hartslag te meten is een beetje lang en ingewikkeld. Een deel van de code wordt hieronder uitgelegd.
1. In het begin zijn alle pinnen die zullen worden gebruikt gedefinieerd. Alle variabelen die zullen worden gebruikt in verschillende functies en de interruptserviceroutine (ISR).
2. leegte setup () is een functie waarin pinnen zijn gedefinieerd om te worden gebruikt als INPUT of OUTPUT. de baudrate wordt ook in deze functie ingesteld. Baudrate is de snelheid waarmee de microcontroller communiceert met andere componenten. ISR wordt in deze functie ook wel genoemd.
3. leegte lus ()is een functie die continu in een cyclus wordt uitgevoerd. Hier wordt de polsslag gevonden en beslist het wanneer de led moet vervagen wanneer een hartslag wordt gevonden.
void loop () {serialOutput (); if (QS == true) {// Er is een hartslag gevonden // BPM en IBI zijn bepaald // Quantified Self "QS" waar wanneer arduino een heartbeat-fadeRate = 255 vindt; // Zorgt ervoor dat het LED-fade-effect plaatsvindt // Stel de 'fadeRate'-variabele in op 255 om de LED te laten vervagen met pulse serialOutputWhenBeatHappens (); // A Beat Happened, Output dat naar serieel. QS = false; // reset de Quantified Self-vlag voor de volgende keer} ledFadeToBeat (); // Maakt het LED-fade-effect vertraagd (20); // neem een pauze}
4. void serialOutput ()is een functie die beslist hoe de output op de seriële monitor wordt weergegeven.
void serialOutput () {switch (outputType) {case PROCESSING_VISUALIZER: sendDataToSerial ('S', signaal); // gaat naar sendDataToSerial functieonderbreking; case SERIAL_PLOTTER: // open de Arduino Serial Plotter om deze gegevens Serial.print (BPM) te visualiseren; Serial.print (","); Serial.print (IBI); Serial.print (","); Serial.println (signaal); breken; standaard: pauze; }}
5. ISR is een interrupt die wordt gegenereerd door de hardware en voor verwerking naar de CPU wordt gestuurd. wanneer de interrupt wordt gegenereerd, stopt het proces dat al aan de gang is en wordt de interrupt verwerkt. nadat de onderbreking is verwerkt, wordt het vorige proces hervat.
void interruptSetup () {// BEKIJK DE Timer_Interrupt_Notes TAB VOOR MEER OVER INTERRUPTS #ifndef ESP32 // Initialiseert Timer2 om elke 2mS een interrupt te geven. TCCR2A = 0x02; // SCHAKEL PWM UIT OP DIGITALE PINS 3 EN 11, EN GA NAAR CTC-MODUS TCCR2B = 0x06; // FORCEER GEEN VERGELIJKING, 256 PRESCALER OCR2A = 0X7C; // STEL DE TOP VAN DE TELLING IN OP 124 VOOR 500Hz VOORBEELDTARIEF TIMSK2 = 0x02; // ONDERBREKING IN WEDSTRIJD TUSSEN TIMER2 EN OCR2A sei (); // ZORG ERVOOR DAT GLOBALE ONDERBREKINGEN ZIJN INGESCHAKELD // Maak een semafoor om ons te informeren wanneer de timer is geactiveerd #else timerSemaphore = xSemaphoreCreateBinary (); // Gebruik de eerste timer van 4 (geteld vanaf nul). // Set 80 verdeler voor voorschrijver (zie ESP32 Technical Reference Manual voor meer // info). timer = timerBegin (0, 80, waar); // Bevestig de onTimer-functie aan onze timer. timerAttachInterrupt (timer, & onTimer, true); // Stel alarm in om elke seconde de timerfunctie aan te roepen (waarde in microseconden). // Herhaal het alarm (derde parameter) timerAlarmWrite (timer, 2000, true); // Start een alarmtimerAlarmEnable (timer); #stop als }
Toepassingen:
Nu we weten hoe we de polsslag moeten meten met een hartslagsensor. Nu kunnen we er bijvoorbeeld verschillende projecten mee maken
- Gezondheidsbanden.
- Angstmonitor.
- Slaap bijhouden.
- Patiëntbewaking / alarmsysteem op afstand.
- Geavanceerde gameconsoles