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