Mạch Điện

Cảm Biến Nhịp Tim Pulse Sensor hoạt động như thế nào ? Giao tiếp với Arduino

Trong một trong những Project cơ bản của chúng ta, chúng tôi đã chỉ cho bạn cách bạn có thể giao tiếp với Cảm biến đo nồng độ oxy và nhịp tim MAX30102 với Arduino , nhưng một trong những vấn đề lớn cảu cảm biến đó là tính không nhất quán của nó và thiếu hỗ trợ cho Arduino IDE, đó là lý do tại sao bài viết này chúng ta nghĩ rằng sử dụng một cảm biến xung đơn giản để đo nhịp tim. Cảm biến xung này là một Cảm Biến Nhịp Tim Pulse Sensor được thiết kế tốt cho Arduino . Cảm biến này dễ sử dụng và có nhiều ứng dụng, đó là lý do tại sao nó là lựa chọn hoàn hảo cho sinh viên, nghệ sĩ, vận động viên, nhà sản xuất và nhà phát triển trò chơi & thiết bị di động muốn kết hợp dữ liệu nhịp tim trực tiếp vào các Project của họ. Hãy tham khảo với hocdientu .

Cảm Biến Nhịp Tim Pulse Sensor hoạt động như thế nào ? Giao tiếp với Arduino
Cảm Biến Nhịp Tim Pulse Sensor hoạt động như thế nào ? Giao tiếp với Arduino

Sơ đồ chân Cảm Biến Nhịp Tim Pulse Sensor

Cảm Biến Nhịp Tim Pulse Sensor có hình dạng dẹt với ba chân . Sơ đồ chân của Cảm Biến Nhịp Tim Pulse Sensor được đưa ra dưới đây:

Sơ đồ chân Cảm Biến Nhịp Tim Pulse Sensor
Sơ đồ chân Cảm Biến Nhịp Tim Pulse Sensor
  • S(Signal) : là chân đầu ra Analog của Mô-đun cảm biến sẽ cung cấp cho chúng ta kết quả đọc tương tự trực tiếp từ cảm biến.
  • VCC : là chân cấp nguồn của Cảm biến. Kết nối nó với chân 5V của Arduino.
  • GND : là chân nối đất của Cảm biến. Kết nối nó với chân Ground của Arduino.

Cảm Biến Nhịp Tim Pulse Sensor hoạt động như thế nào ?

Hoạt động cơ bản của Cảm Biến Nhịp Tim Pulse Sensor quang rất đơn giản và dễ hiểu. Một cảm biến xung quang học chiếu ánh sáng xanh có bước sóng 550 nm qua da và đo ánh sáng phản xạ; phương pháp phát hiện xung này được gọi là Photoplethysmogram. Hoạt động của Cảm biến Xung được đưa ra dưới đây.

Cảm Biến Nhịp Tim Pulse Sensor hoạt động như thế nào ?
Cảm Biến Nhịp Tim Pulse Sensor hoạt động như thế nào ?

Cảm biến xung chiếu ánh sáng qua da và đo phản xạ bằng cảm biến quang. Phương pháp phát hiện xung qua ánh sáng này được gọi là Photoplethysmogram . Hoạt động của cảm biến có thể được chia thành hai phần, một là đo nhịp tim và một là đo nồng độ oxy trong máu.

Oxy trong hemoglobin có một đặc tính cụ thể, đó là nó có thể hấp thụ một lượng ánh sáng xanh nhất định. Càng nhiều oxy trong máu, máu càng đỏ làm tăng tỷ lệ hấp thụ ánh sáng và giảm phản xạ. Khi máu được bơm qua các tĩnh mạch ở ngón tay, lượng ánh sáng phản xạ thay đổi tạo ra một dạng sóng dao động. Và bằng cách đo sóng này, chúng ta có thể đọc được nhịp tim. Biên độ của tín hiệu ra khỏi cảm biến rất nhỏ và nhiễu, đó là lý do tại sao tín hiệu được truyền qua bộ lọc thông thấp và sau đó nó được khuếch đại bởi opamp được đọc bởi Arduino.

Bộ phận của Cảm Biến Nhịp Tim Pulse Sensor

Bộ phận của Cảm Biến Nhịp Tim Pulse Sensor
Bộ phận của Cảm Biến Nhịp Tim Pulse Sensor

Đây là một cảm biến năng lượng thấp, chi phí thấp, chắc chắn, có thể được sử dụng cho nhiều ứng dụng khác nhau, nó trở nên phổ biến cho nhiều ứng dụng khác nhau khi đo nhịp tim trở nên cần thiết.

Nếu bạn nhìn vào phía trước của cảm biến, bạn chỉ có thể thấy đèn LED và chính điốt quang. Nhưng mạch thực nằm ở mặt sau của cảm biến. Op-amp dải thông cao công suất thấp trong mạch được cấu hình để cung cấp một số độ lợi cho mạch và chúng ta có một diode bảo vệ điện áp ngược để bảo vệ mạch khỏi ESD và điện áp ngược. Các tụ điện và điện trở khác trong PCB được sử dụng cho bộ lọc RC giúp giảm nhiễu bên ngoài trong mạch.

Các câu hỏi thường gặp về Cảm Biến Nhịp Tim Pulse Sensor

Bạn có thể đo huyết áp qua mạch không?

  • Mạch sẽ cung cấp thông tin cơ bản cần thiết để ước tính huyết áp tâm thu (số đo huyết áp trên). Hãy nhớ rằng đây là một ước tính rất thô và chỉ cho biết nếu huyết áp tâm thu không thấp. Việc theo dõi huyết áp nên được thực hiện bằng vòng bít và ống nghe.

Tâm thu và tâm trương trong đo huyết áp là gì?

  • Huyết áp được đo bằng hai con số: Con số đầu tiên, được gọi là huyết áp tâm thu, đo áp suất trong động mạch khi tim đập. Con số thứ hai, được gọi là huyết áp tâm trương, đo áp lực trong động mạch của bạn khi tim bạn nghỉ giữa các nhịp đập.

Kiểm soát huyết áp bằng dây thần kinh là gì?

  • Thần kinh điều chỉnh huyết áp và lưu lượng phụ thuộc vào các trung tâm tim mạch nằm trong ống tủy. Cụm tế bào thần kinh này phản ứng với những thay đổi về huyết áp cũng như nồng độ oxy, carbon dioxide trong máu và các yếu tố khác như pH.

Cảm biến HRM là gì?

  • Máy theo dõi nhịp tim (HRM) là một thiết bị theo dõi cá nhân cho phép một người đo / hiển thị nhịp tim trong thời gian thực hoặc ghi lại nhịp tim để nghiên cứu sau này. Nó chủ yếu được sử dụng để thu thập dữ liệu nhịp tim trong khi thực hiện các loại bài tập thể dục khác nhau

Sơ đồ mạch Cảm Biến Nhịp Tim Pulse Sensor

Sơ đồ mạch của Cảm Biến Nhịp Tim Pulse Sensor được hiển thị bên dưới. Phần quan trọng đầu tiên của mạch này là tụ lọc 10uF tiếp theo là đèn LED xanh và một điện trở 470R.

Sơ đồ mạch Cảm Biến Nhịp Tim Pulse Sensor
Sơ đồ mạch Cảm Biến Nhịp Tim Pulse Sensor

Điện trở 470R là điện trở giới hạn dòng điện cho mô-đun cảm biến. Ngoài ra trong mạch, bạn có thể thấy rằng mạch được cấp nguồn thông qua một diode. Diode phục vụ hai mục đích: đầu tiên nó hoạt động như bảo vệ phân cực ngược và thứ hai nó bảo vệ mạch khỏi quá độ. Sau diode, nguồn được phân phối giữa op-amp MCP6001 và IC cảm biến diode quang APDS-9008. Biên độ đầu ra của IC cảm biến rất thấp và nhiễu. Đó là lý do tại sao chúng ta cần lọc nó thông qua một bộ bộ lọc thông thấp RC sau đó tín hiệu được làm sạch được khuếch đại bởi op-amp và chúng ta có thể xử lý dữ liệu bằng một bộ vi điều khiển.

Cảm Biến Nhịp Tim Pulse Sensor kết nối với Ardunio

Cảm Biến Nhịp Tim Pulse Sensor kết nối với Ardunio
Cảm Biến Nhịp Tim Pulse Sensor kết nối với Ardunio

Bây giờ chúng ta đã hoàn toàn hiểu cách hoạt động của cảm biến xung; chúng ta có thể kết nối tất cả các dây cần thiết với bảng Arduino UNO và trong phần này của bài viết, chúng ta sẽ thảo luận về điều đó!

Sơ đồ mạch Cảm Biến Nhịp Tim Pulse Sensor Arduino được trình bày trong hình trên. chúng ta đang sử dụng chân A0 của Arduino để xử lý dữ liệu ra khỏi cảm biến. Và chân nguồn của cảm biến được kết nối với chân 5V và chân Ground của Arduino. Phần cứng thử nghiệm thực tế được hiển thị bên dưới.

Code Arduino Cảm Biến Nhịp Tim Pulse Sensor

Code cảm biến xung Arduino rất đơn giản và dễ hiểu, và hầu hết phần khó được xử lý bởi thư viện PulseSensorPlayground.h , nói về thư viện, đây không phải là thư viện tiêu chuẩn của Arduino và cần được cài đặt riêng với trình quản lý thư viện. . Để làm điều đó, chỉ cần tìm kiếm pulsesensor trong cửa sổ trình quản lý thư viện và cài đặt PulseSensor Playground của Joel Murphy, Yury Gitman. Sau khi cài đặt này và mọi thứ đã sẵn sàng, chúng ta có thể chuyển sang phần tiếp theo của Code.

Code Arduino Cảm Biến Nhịp Tim Pulse Sensor
Code Arduino Cảm Biến Nhịp Tim Pulse Sensor

Như chúng ta đã nói trước đó, phần Code cho Project này sẽ rất đơn giản, đó là lý do tại sao chúng ta đã sử dụng một Code ví dụ đơn giản từ thư viện để quản lý tất cả các công việc nặng nhọc cho chúng ta. Nhưng chúng ta đừng lười biếng và hãy xem Code hoạt động như thế nào.

Chúng ta bắt đầu Code của mình bằng cách bao gồm tất cả các thư viện và biến cần thiết được yêu cầu để xử lý dữ liệu ra khỏi cảm biến.

#define USE_ARDUINO_INTERRUPTS true    // Set-up low-level interrupts for most acurate BPM maths.
#include <PulseSensorPlayground.h>     // Includes the PulseSensorPlayground Library.  
//  Variables
const int PulseWire = 0;       // PulseSensor PURPLE WIRE connected to ANALOG PIN 0
const int LED13 = 13;          // The on-board Arduino LED, close to PIN 13.
int Threshold = 550;           // Determine which Signal to "count as a beat" and which to ignore.
                               // Use the "Getting Started Project" to fine-tune Threshold Value beyond default setting.
                               // Other

Tiếp theo, chúng ta tạo một thể hiện của đối tượng PulseSensorPlayground được gọi là “pulseSensor” với thể hiện này, chúng ta sẽ có thể truy cập vào tất cả các phương thức của lớp.

PulseSensorPlayground pulseSensor;  // Creates an instance of the PulseSensorPlayground object called "pulseSensor

Tiếp theo, chúng ta có chức năng setup của chúng ta . Trong chức năng thiết lập, chúng ta khởi tạo serial để gỡ lỗi.

Tiếp theo, chúng ta cấu hình đối tượng PulseSensor, bằng cách gán các biến của chúng ta cho nó. Tiếp theo, chúng ta chuyển biến LED13 cho hàm pulseSensor.blinkOnPulse sẽ nhấp nháy đèn LED theo nhịp tim. Sau đó, chúng ta thiết lập ngưỡng cho cảm biến với sự trợ giúp của biến pulseSensor.setThreshold . Cuối cùng, chúng ta đã tạo một Đối tượng pulseSensor và kết thúc chức năng thiết lập của chúng ta.

void setup() {  
  Serial.begin(9600);          // For Serial Monitor
  // Configure the PulseSensor object, by assigning our variables to it.
  pulseSensor.analogInput(PulseWire);  
  pulseSensor.blinkOnPulse(LED13);       //auto-magically blink Arduino's LED with heartbeat.
  pulseSensor.setThreshold(Threshold);  
  // Double-check the "pulseSensor" object was created and "began" seeing a signal.
   if (pulseSensor.begin()) {
    Serial.println("We created a pulseSensor Object !");  //This prints one time at Arduino power-up,  or on Arduino reset. 
  }
}

Tiếp theo, chúng ta có hàm loop  của chúng ta . Trong hàm vòng lặp, chúng ta gọi hàm trên đối tượng pulseSensor của chúng ta để trả về BPM dưới dạng số nguyên mà chúng ta giữ biến myBPM . Bây giờ chúng ta liên tục kiểm tra xem một nhịp có xảy ra hay không. Nếu vậy, chúng ta in kết quả trong serial monitor window.

void loop() {
 int myBPM = pulseSensor.getBeatsPerMinute();  // Calls function on our pulseSensor object that returns BPM as an "int".
                                               // "myBPM" hold this BPM value now.
if (pulseSensor.sawStartOfBeat()) {            // Constantly test to see if "a beat happened".
 Serial.println("♥  A HeartBeat Happened ! "); // If test is "true", print a message "a heartbeat happened".
 Serial.print("BPM: ");                        // Print phrase "BPM: "
 Serial.println(myBPM);                        // Print the value inside of myBPM.
}
  delay(20);                    // considered best practice in a simple sketch
}

Điều này đánh dấu sự kết thúc của phần Code của chúng ta và chúng ta có thể chuyển sang phần tiếp theo của bài viết.

Hoạt động của Cảm Biến Nhịp Tim Pulse Sensor

Ảnh gif dưới đây cho thấy mạch thực tế của Cảm Biến Nhịp Tim Pulse Sensor với Arduino . Bạn có thể thấy ở phía bên trái của cửa sổ, chúng ta có Arduino mà chúng ta đã kết nối với cảm biến xung của mình. Cảm biến được gắn vào ngón tay của tôi bằng một miếng băng và ở phía bên phải của cửa sổ, bạn có thể thấy serial monitor window, trong đó bạn có thể thấy nhịp tim trực tiếp được đo bởi cảm biến.

Hoạt động của Cảm Biến Nhịp Tim Pulse Sensor
Hoạt động của Cảm Biến Nhịp Tim Pulse Sensor

Lỗi khi đọc cảm biến xung ? – Đây là những gì bạn nên làm

  • Nếu bạn gặp khó khăn khi đọc cảm biến xung, thì trước tiên hãy kiểm tra điện áp hoạt động của thiết bị. Điện áp hoạt động ổn định của thiết bị này là 3,3V đến 5,5V. Điều khiển cảm biến với bất kỳ giá trị điện áp nào khác sẽ làm cho cảm biến không ổn định.
  • Nếu bạn thấy dao động trong kết quả đo, hãy thử dùng ngón tay chạm vào cảm biến, điều này sẽ giúp lưu lượng máu liên tục và cuối cùng ổn định kết quả.
  • Quan trọng nhất là cảm biến này mất rất nhiều thời gian trước khi tạo ra đầu ra ổn định. Vì vậy, bạn cần phải kiên nhẫn trước khi có được một kết quả ổn định.

Video hướng dẫn Cảm Biến Nhịp Tim Pulse Sensor

Đỗ Thủy Học Điện Tử

Tôi một người đam mê cung cấp kiến thức cuộc sống và kiến thức giáo dục văn học , vật lý , điện tử đến cho mọi người hãy cùng tôi tiếp nhận kiến thức mới nhé !

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button