Cảm biến đo nhịp tim Pulse Sensor

Mã sản phẩm: 1712011

Thương hiệu: Nhập khẩu Loại: Arduino – Module – Cảm biến

Khối lượng: 50

70.000₫ 90.000₫

Thêm vào yêu thích Đã yêu thích
chinh-sach
Hỗ trợ phí vận chuyển với đơn hàng trên 300K
chinh-sach
Giao hàng ngay sau khi đặt hàng (áp dụng với nội thành Hải Phòng)
chinh-sach
Đổi mới trong 3 ngày nếu lỗi do nhà sản xuất
chinh-sach
Xuất hóa đơn đỏ trực tiếp cộng thêm 5%

Cảm biến đo nhịp tim Pulse Sensor
GIAO TIẾP GIỮA CẢM BIẾN XUNG VÀ ARDUINO

   Trong bài viết này, chúng ta sẽ học cách giao tiếp một cảm biến xung với Arduino. Cảm biến xung chúng ta sẽ sử dụng để cảm nhận và theo dõi nhịp tim. Cảm biến này khá dễ sử dụng. Đặt ngón tay của bạn lên trên cảm biến và nó sẽ cảm nhận nhịp tim bằng cách đo sự thay đổi cường độ ánh sáng hồng ngoại phát ra từ led phát hồng ngoại phản xạ vào led thu, sự thay đổi cường độ này bắt nguồn từ sự giãn nở của các mao mạch máu.

Sơ đồ chân cảm biến xung

  • GND: Chân nối đất
  • Vcc: Chân nối nguồn
  • A0: Chân Analog (tín hiệu tương tự)

     Ở giữa cảm biến có một con led để phát hiện nhịp tim, dưới con led này, có một mạch chống nhiễu giúp cảm biến hoạt động chính xác hơn

Hoạt động của cảm biến xung

    Đầu tiên ta chạm đầu ngón tay vào cảm biến nhịp tim, khi tim đập và trương lên, mật độ máu trong mạch máu giảm, các chùm tia hồng ngoại chiếu vào ngón tay bị phản xạ nhưng không nhiều, đầu ra của cảm biến nhịp tim sẽ hiểu đây là một xung mức thấp. Khi tim đập và co lại, mật độ máu trong mạch máu tăng, các chùm tia hồng ngoại chiếu vào ngón tay bị phản xạ nhiều hơn, đầu ra của cảm biến nhịp tim sẽ hiểu đây là một xung mức cao. Tuy sự chênh lệnh trong sự phản xạ tia hồng ngoại không lớn nhưng Arduino có thể phân biệt và hiểu được đâu là xung mức cao, đâu là xung mức thấp, nhờ đó chúng ta có thể theo dõi nhịp tim bằng cảm biến.

Sơ đồ kết nối cảm biến xung với Arduino

  Kết nối cảm biến xung với Arduino như sau:

- Chân GND của cảm biến xung đến GND của Arduino

- VCC của cảm biến xung đến 5V của Arduino

- A0 của cảm biến xung đến A0 của Arduino

     Sau đó, kết nối đèn LED với chân 13 và GND của Arduino như trong hình bên dưới. Đèn LED sẽ nhấp nháy theo nhịp tim.

Chương trình

int sensor_pin = 0;                
 int led_pin = 13;                  
 volatile int heart_rate;          
 volatile int analog_data;              
 volatile int time_between_beats = 600;            
 volatile boolean pulse_signal = false;    
 volatile int beat[10];         // Giá trị nhịp tim lưu trong mảng này    
 volatile int peak_value = 512;          
 volatile int trough_value = 512;        
 volatile int thresh = 525;              
 volatile int amplitude = 100;                 
 volatile boolean first_heartpulse = true;      
 volatile boolean second_heartpulse = false;    
 volatile unsigned long samplecounter = 0;   // Đếm nhịp tim
 volatile unsigned long lastBeatTime = 0;
 void setup()
 {
   pinMode(led_pin,OUTPUT);        
   Serial.begin(115200);           
   interruptSetup();                  
 }
void loop()
 { 
       Serial.print("BPM: ");
       Serial.println(heart_rate);
       delay(200); //  chương trình ngưng chạy 200 ms
 }
 void interruptSetup()
 {    
   TCCR2A = 0x02;  // vô hiệu hoá xung PWM tại chân 3 và 11
   OCR2A = 0X7C;   // đặt giới hạn đếm 124 với tốc độ lấy mẫu 500Hz 
   TCCR2B = 0x06;  //  bộ chia 256 bit
   TIMSK2 = 0x02;  // cho phép ngắt bằng OCR2A và Timer
   sei();          // cho phép hàm ngắt global 
 }
ISR(TIMER2_COMPA_vect)
 { 
   cli();                                     
   analog_data = analogRead(sensor_pin);            
   samplecounter += 2;                        
   int N = samplecounter - lastBeatTime;      
   if(analog_data < thresh && N > (time_between_beats/5)*3)
     {     
       if (analog_data < trough_value)
       {                       
        trough_value = analog_data;
       }
     }
  if(analog_data > thresh && analog_data > peak_value)
    {        
       peak_value = analog_data;
     }                          
   if (N > 250)
  {                            
     if ( (analog_data > thresh) && (pulse_signal == false) && (N > (time_between_beats/5)*3) )
       {       
         pulse_signal = true;          
         digitalWrite(led_pin,HIGH);
         time_between_beats = samplecounter - lastBeatTime;
         lastBeatTime = samplecounter;     
        if(second_heartpulse)
         {                        
           second_heartpulse = false;   
           for(int i=0; i<=9; i++)    
           {            
             beat[i] = time_between_beats; // Đưa vào mảng với các giá trị về nhịp tim
           }
         }
         if(first_heartpulse)
         {                        
           first_heartpulse = false;
           second_heartpulse = true;
           sei();            
           return;           
         }  
       word runningTotal = 0;  
       for(int i=0; i<=8; i++)
         {               
           beat[i] = beat[i+1];
           runningTotal += beat[i];
         }
        beat[9] = time_between_beats;             
       runningTotal += beat[9];   
       runningTotal /= 10;        
       heart_rate = 60000/runningTotal;
     }                      
   }
  if (analog_data < thresh && pulse_signal == true)
     {  
       digitalWrite(led_pin,LOW); 
       pulse_signal = false;             
       amplitude = peak_value - trough_value;
       thresh = amplitude/2 + trough_value; 
       peak_value = thresh;           
       trough_value = thresh;
     }
   if (N > 2500)
     {                          
       thresh = 512;                     
       peak_value = 512;                 
       trough_value = 512;               
       lastBeatTime = samplecounter;     
       first_heartpulse = true;                 
       second_heartpulse = false;    


Liên hệ:

  • Đ/c: 18/655 Nguyễn Văn Linh-P.Vĩnh Niệm-Lê Chân-Hải Phòng
  • Email: giaiphapchung68@gmail.com
  • Hotline: 0936824969
Bước 1: Truy cập website và lựa chọn sản phẩm cần mua để mua hàng

Bước 2: Bấm chọn biểu tượng giỏ hàng để thanh toán

Trong mục này bạn có thể thay đổi số lượng, chủng loại sản phẩm và chọn mua thêm sản phẩm khác

Bước 3: Lựa chọn Thanh toán

Bạn vui lòng nhập thông tin:  
Email, Họ tên, Số điện thoại và các thông tin cần thiết khác để nhận đơn hàng của mình.

Nếu bạn đã có tài khoản và muốn đăng ký tài khoản vui lòng vào mục Đăng nhập hoặc Đăng ký tài khoản. Khi có tài khoản bạn sẽ dễ dàng theo dõi được đơn hàng của mình

Bước 4: Xem lại thông tin đặt hàng, điền chú thích và gửi đơn hàng

Bước 5: Sau khi nhận được đơn hàng bạn gửi chúng tôi sẽ liên hệ bằng cách gọi điện hoặc gửi vào email đơn hàng của bạn để xác nhận lại đơn hàng và địa chỉ của bạn.

Trân trọng cảm ơn.
popup

Số lượng:

Tổng tiền: