질문게시판 > 답변 : 심박센서 bpm측정 관련 문의드립니다.

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

답변 : 심박센서 bpm측정 관련 문의드립니다.

페이지 정보

작성자 master 작성일18-01-18 17:29 조회30,486회 댓글7건

본문

 

e2db14983f07ec33f37ec8eda71e62b5_1516263690_1337.png
 

소스코드에서 기준선이 1/2이므로 적색선 정도의 위치가 되겠죠

동그라미 친 부분과 거리가 별로 떨어져 있지 않으므로 오동작 위험이 높습니다.

기준선을 더 높이세요

신호의 피크가 1000 근처까지 매번 올라가므로 800으로 고정해도 상관없겠습니다.

(매 측정마다 위 사진처럼 양호하게 측정 된다면)

 

 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 7

조회수 : 30,486

master님의 댓글

master 작성일

사진처럼 깔끔한 파형이 나온다면 (매 파형 피크 1000 유지)
min,max를 체크 할 필요도 없고
전에 적어드린 것처럼 기준값 800으로 고정해서 처리하면 됩니다.
그 때는 기준값을 두가지 적었었죠?
300, 250
이 값을 820 780 이런식으로 바꿔도 됩니다.
10회 배열에 저장해서 평균을 내는 것은 10회 측정한 값으로 1분을 대신 하겠다는 의도입니다.
심박이 70~80 정도 뛰니 대략 8초 측정해서 값을 표시 하겠다는 것이죠
배열에 저장하지말고 60초동안 측정해서 출력하는 것이 더 정확하고
마지막 심박수의 오차를 처리 한다면 아주 훌륭한 측정방법이 되겠습니다.

묵묵님의 댓글

묵묵 댓글의 댓글작성일

셈서 adc값이 매번 저렇게 나오지 않는다면 원래의 알고리즘을 계속 보안 해야할가요??
센서에 손을 댈 때마다 파형이 달라집니다.

master님의 댓글

master 댓글의 댓글작성일

측정 방법은 아주 중요한 요소입니다.
제아무리 비싼 계측기라도 아무렇게나 측정해도 정밀한 측정이 될 수는 없겠죠
//
현재 소스를 조금 수정한다면
위 답변에서 언급한대로 1/2 지점이 아닌 3/4 지점으로 바꿔보세요

master님의 댓글

master 댓글의 댓글작성일

Pulse=0; amp=max-min; thresh=amp/2+min; max=thresh; min=thresh; // 변수 처리
위 코드만 수정하면 되겠죠
thresh=amp/2+min; 이 문장만 고치면 됩니다.
thresh=amp*1/2+min; 조금 변형하면 이 식이 되는데
thresh=amp*3/4+min; //3/4은 이 식이죠
이 정도는 알아서 할 수 있을 것으로 생각되지만
이렇게 쉬운 것도 못하는 초보자도 있을테니 적어드립니다.

묵묵님의 댓글

묵묵 댓글의 댓글작성일

답변 감사합니다. max,min,tresh초기값을 바꾸고 thresh=amp*3/4+min; 로 고치고 다른 방법으로 해봤는데도 잘안되네요. bpm값이 들숭날숭 하네요... 제가 소스를 다시 처음부터 쭉보다가
      if(secondBeat)
      {
  secondBeat=0;
for(int i=0;i<=9;i++)
{
        rate[i]=IBI;
} // sum 계산을 위해서 첫번째 주기로 채워둠
      }
      if(firstBeat)
    {
  firstBeat=0;
  secondBeat=1;
  sei();
  return;
  }  // 첫번째 측정은 오차가 많으므로 버림

이 부분에서 if문안에 firstBeat, secondBeat 처럼 문자로 조건을 주면 어떻게 동작하는지를 잘 모르겠습니다.

master님의 댓글

master 댓글의 댓글작성일

디버깅은 직접 하셔야합니다.
max,min,amp,thresh,BPM 이런 값들을 시리얼로 출력하면 문제점을 파악하기 쉽겠죠

묵묵님의 댓글

묵묵 댓글의 댓글작성일

감사합니다. 말씀해주신 방법으로 문제점을 찾아보도록하겠습니다.
하나더 궁금한게 있는데
for(int i=0;i<=8;i++)
  {
  rate[i]=rate[i+1];  // 9개의 값을 좌측으로 쉬프트 시키고

    sum_ms+=rate[i];
  }       

   
  rate[9]=IBI;                                        // 마지막 배열에는 방금 측정한 주기를 저장

  sum_ms+=rate[9];

      sum_ms/=10;                                        // 평균을 구함

      BPM=60000/sum_ms;                                  // 10개의 평균값으로 BPM을 계산

  //    QS=1;                                            // BPM을 구했음을 알려주기 위한 변수

    }
에서 BPM을 (60000/IBI 값 1 0개의 평균) 이렇게 계산하는데 왜 60000을 나누는지 잘 이해가 안갑니다. 만약 IBI의 값이 평균 0.7s라하면 평균 370정도 되는데 나누면 bpm이 160정도가 나오는거 같다는 생각이 드는데 제가 이해를 잘못하고 있는건가요??
//////////////////////////////////////////
말씀해주신 방법으로 확인을 해보니 우선 소스에 문제가 있다는걸 확실하게 알 수 있었습니다.
thresh, max, min값이 측정이 잘될때도 있지만 3개 혹은 2개의 값이 겹칠때가 많습니다. 어떻게 해야할지 고민을 많이 해봐야할거 같습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[25] master  17-10-29
질문 아두이노 코딩 결합 댓글[1] hohoje 새글 22-08-18
질문 UART통신 스위치 사용 댓글[4] 픽공부 새글 22-08-18
질문 아두이노코딩 질문사항 댓글[1] kai5439  22-08-16
질문 해석좀 해주세요 댓글[2] bubu  22-08-14
질문 lcd 1602에 특수문자를 출력하는 방법을 알고싶습니… 댓글[3] dndktn  22-08-12
질문 stm32 wifi 파일전송 댓글[3] 하리  22-08-11
질문 회로 구성 수정 댓글[2] 첨부파일픽공부  22-08-11
질문 아두이노 와이파이통신 질문 있습니다 댓글[1] 학생  22-08-11
질문 포토다이오드와의 연결 질문합니다. 댓글[7] 첨부파일박윤모  22-08-10
질문 회로 구성 댓글[4] 픽공부  22-08-10
질문 아두이노 센서, 와이파이, 블루투스 연결 댓글[1] pattern  22-08-10
질문 PIC 블루투스 연결 댓글[19] 픽공부  22-08-09
질문 PIC18F452 블루투스 연결 댓글[4] 마이컴  22-08-08
질문 아두이노 코드 해석을 못하겠습니다... 댓글[2] 김가헌  22-08-08
질문 아두이노 코드를 avr로 변환해 주세요 ...ㅠ 댓글[3] 옹냥냥  22-08-08
질문 아두이노 녹음-스피커모듈 관련 질문있습니다 ㅠㅠ 댓글[2] 방귀뿡뿡  22-08-08
질문 Serial EEPROM 실수값 저장.. 댓글[2] 첨부파일광이  22-08-07
질문 STM32 Live Expression 값들이 깜빡이는… 댓글[3] 둠둠  22-08-05
질문 아두이노 ESP32 wifi module 댓글[1] Yoon  22-08-03
질문 atmega128과 dht11, lcd를 연결했는데 0… 댓글[1] 고양이33  22-08-02
질문 ATMEGA 128 코드를 합치려고 하는데 어렵네요 댓글[2] 고양이33  22-08-02
질문 서보모터 제어에 대해 질문있습니다. 댓글[2] 첨부파일뉴비에오  22-07-30
질문 적외선 통신 알려주실분있나요 ㅠㅠ 댓글[1] hkjsj10  22-07-30
질문 아두이노 관련 궁금합니다. 댓글[1] 뱝뱝  22-07-28
질문 아두이노 우노 MCP4725 댓글[3] opqr  22-07-27
질문 레오나르도 인체감지센서 알림 안옴 면지지  22-07-24
답변 답변 : 레오나르도 인체감지센서 알림 안옴 master  22-07-25
질문 Uno에서 엔코더값 놓치는 이유가 뭘까요... 댓글[3] MAKTUB  22-07-24
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전