심박 센서(XD-58C)

아두위키 : Arduwiki
ArduWiki (토론 | 기여)님의 2024년 7월 23일 (화) 18:05 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)


개요

아두이노 심박센서(XD-58C)는 심박수를 측정할 수 있는 센서 모듈로, 주로 생체 신호 모니터링에 사용됩니다.

센서 중앙에는 밝은 초록 빛이 방출되며 심장이 박동할 때 혈류가 증가하면 반사되어 돌아오는 빛의 양이 줄어드는 것을 활용하여 심박수를 측정합니다.

연결이 간편하여 아두이노로 쉽게 심박수 데이터를 출력할 수 있습니다.


사양

항목 세부 사항
전원 인터페이스
전원 공급 전압 3.3-5V
작동 전류 10mA
크기 지름 1.6cm
무게 5g


활용 예제

시리얼 모니터와 시리얼 플로터로 심박수를 확인하는 예제입니다.


1. 회로

기호 연결 핀
S A0 핀
+ 5V
- GND

2. 코드

라이브러리

PulseSensorPlayground 라이브러리를 추가해주세요.

라이브러리 관리에서 pulsesensor로 검색하시면 다운로드 받으실 수 있습니다.

자세한 라이브러리 사용 방법은 아두이노 라이브러리 문서를 참고하세요.


아두이노 코드

#include <PulseSensorPlayground.h>  // PulseSensorPlayground 라이브러리 포함

// 변수 선언
const int PulseWire = 0;       // PulseSensor의 보라색 와이어를 아날로그 핀 0에 연결
const int LED = LED_BUILTIN;   // 아두이노 내장 LED 핀, 보통 핀 13에 가까이 있음
int Threshold = 550;           // 심박으로 인식할 신호의 임계값 설정

// PulseSensorPlayground 객체 생성
PulseSensorPlayground pulseSensor;

void setup() {
  Serial.begin(9600);  // 시리얼 모니터 시작

  // PulseSensor 객체 설정
  pulseSensor.analogInput(PulseWire);
  pulseSensor.blinkOnPulse(LED);       // 심박이 감지되면 자동으로 아두이노 LED를 깜빡이도록 설정
  pulseSensor.setThreshold(Threshold);

  // PulseSensor 객체가 제대로 생성되었는지 확인
  if (pulseSensor.begin()) {
    Serial.println("We created a pulseSensor Object !");  // 아두이노가 전원에 연결되거나 리셋될 때 한 번 출력
  }
}

void loop() {
  if (pulseSensor.sawStartOfBeat()) {            // 심박이 감지되었는지 지속적으로 확인
    int myBPM = pulseSensor.getBeatsPerMinute();  // BPM(분당 심박수) 값을 가져옴
    Serial.println(myBPM);  // BPM 값을 시리얼 플로터에 출력
  }
  
  delay(20);  // 간단한 스케치에서 권장되는 지연 시간
}


3. 실행 결과

하트가 그려진 면에 손가락을 덮고 가볍게 압박을 주면 BPM이 다음과 같이 출력되는 것을 확인할 수 있습니다.

응용 분야

아래 내용들과 관련된 아두이노 프로젝트들에 다양하게 사용될 수 있습니다.

  • 건강 모니터링 시스템 : 개인의 심박수를 실시간으로 모니터링하여 건강 상태를 추적 관리
  • 스포츠 및 피트니스 트래킹 : 운동 중 심박수를 측정하여 운동 강도를 조절, 피트니스 성과를 분석
  • 의료 연구 : 생체 신호 데이터를 수집하고 분석하여 다양한 의료 연구에 활용
  • 웨어러블 기기 : 스마트워치나 피트니스 밴드와 같은 웨어러블 기기에 적용되어 실시간 심박수 모니터링 기능을 제공


구매 링크

공집사몰