پالس سنسور یا سنسور ضربان قلب یک ماژول اندازه گیری ضربان قلب با تکنولوژی اپتیکال می باشد . در این ماژول از یک سنسور 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);
}



