پالس سنسور یا سنسور ضربان قلب یک ماژول اندازه گیری ضربان قلب با تکنولوژی اپتیکال می باشد . در این ماژول از یک سنسور APDS9008 و یک LED استفاده شده است . با وجود استفاده از سنسور APDS9008 در این ماژول ، معمولا این ماژول را با نام پالس سنسور یا سنسور ضربان قلب می شناسند . عملکرد این ماژول به این صورت است که تغییرات رنگ پوست در نتیجه انقباض و باز شدن قلب را اندازه گیری می کند . در واقع با هر بار انقباض قلب خون داخل رگ ها متراکم تر شده و در نتیجه آن رنگ پوست تغییر می کند اما این تغییرات از دید انسان قابل تشخیص نمی باشند . راه اندازی این ماژول بسیار ساده است و می توان از واحد ADC میکروکنترلر استفاده کرد . در تصویر زیر این موضوع به خوبی نشان داده شده است :

پین های ماژول پالس سنسور :

 

 

این ماژول دارای سه خروجی سیم به صورت زیر است :

1- VCC پین تغذیه ماژول .

2- GND پین زمین ماژول .

3- SIG پین خروجی آنالوگ ماژول .

 

 

راه اندازی پالس سنسور با آردوینو :

برای اندازه گیری مقدار خروجی این سنسور باید از واحد ADC استفاده کنید . در کد های زیر مقدار خروجی سنسور مانیتور می شود . پس از پروگرام کردن آردوینو انکشت خود را بر روی سنسور قرار داده و وارد محیط Serial ploter آردوینو IDE شوید :

int const PULSE_SENSOR_PIN = 0;   // 'S' Signal pin connected to A0

int Signal;                // Store incoming ADC data. Value can range from 0-1024
int Threshold = 550;       // Determine which Signal to "count as a beat" and which to ignore.

void setup() {
    pinMode(LED_BUILTIN,OUTPUT);  // Built-in LED will blink to your heartbeat
    Serial.begin(9600);           // Set comm speed for serial plotter window
}

void loop() {

    Signal = analogRead(PULSE_SENSOR_PIN); // Read the sensor value

    Serial.println(Signal);                // Send the signal value to serial plotter

    if(Signal > Threshold){                // If the signal is above threshold, turn on the LED
        digitalWrite(LED_BUILTIN,HIGH);
    } else {
        digitalWrite(LED_BUILTIN,LOW);     // Else turn off the LED
    }
    delay(10);
}

همچنین برای به دست آوردن مقدار ضربان قلب می توانید از کتابخانه PulseSensorPlayground.h استفاده کنید . در مثال زیر مقدار ضربان قلب به صورت عدد نشان داده می شود :

#define USE_ARDUINO_INTERRUPTS true    // Set-up low-level interrupts for most acurate BPM math
#include <PulseSensorPlayground.h>     // Includes the PulseSensorPlayground Library

const int PulseWire = 0;       // 'S' Signal pin connected to A0
const int LED13 = 13;          // The on-board Arduino LED
int Threshold = 550;           // Determine which Signal to "count as a beat" and which to ignore
                               
PulseSensorPlayground pulseSensor;  // Creates an object

void setup() {
    Serial.begin(9600);

    // Configure the PulseSensor object, by assigning our variables to it
    pulseSensor.analogInput(PulseWire);   
    pulseSensor.blinkOnPulse(LED13);       // Blink on-board LED with heartbeat
    pulseSensor.setThreshold(Threshold);   

    // Double-check the "pulseSensor" object was created and began seeing a signal
    if (pulseSensor.begin()) {
        Serial.println("PulseSensor object created!");
    }
}

void loop() {
    int myBPM = pulseSensor.getBeatsPerMinute();      // Calculates BPM

    if (pulseSensor.sawStartOfBeat()) {               // Constantly test to see if a beat happened
        Serial.println("♥  A HeartBeat Happened ! "); // If true, print a message
        Serial.print("BPM: ");
        Serial.println(myBPM);                        // Print the BPM value
        }

    delay(20);
}

Tags:
About Author: USER_4