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

TODAY150 TOTAL2,275,259
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


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

페이지 정보

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

본문

	

 

e2db14983f07ec33f37ec8eda71e62b5_1516263690_1337.png
 

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

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

기준선을 더 높이세요

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

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

 

 

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

댓글 7

조회수 30,369

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개의 값이 겹칠때가 많습니다. 어떻게 해야할지 고민을 많이 해봐야할거 같습니다.

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은 질문게시판에서만 작성 가능합니다. 스태프 19-01-15 11963
공지 사이트 이용 안내댓글[25] master 17-10-29 31195
질문 아두이노코딩 질문사항 새글 kai5439 22-08-16 9
질문 해석좀 해주세요댓글[1] bubu 22-08-14 34
질문 lcd 1602에 특수문자를 출력하는 방법을 알고싶습니다.댓글[3] dndktn 22-08-12 55
질문 stm32 wifi 파일전송댓글[3] 하리 22-08-11 46
질문 회로 구성 수정댓글[2] 첨부파일 픽공부 22-08-11 62
질문 아두이노 와이파이통신 질문 있습니다댓글[1] 학생 22-08-11 56
질문 포토다이오드와의 연결 질문합니다.댓글[7] 이미지첨부파일 박윤모 22-08-10 72
질문 회로 구성댓글[4] 픽공부 22-08-10 59
질문 아두이노 센서, 와이파이, 블루투스 연결댓글[1] pattern 22-08-10 78
질문 PIC 블루투스 연결댓글[19] 픽공부 22-08-09 83
질문 PIC18F452 블루투스 연결댓글[4] 마이컴 22-08-08 87
질문 아두이노 코드 해석을 못하겠습니다...댓글[2] 김가헌 22-08-08 92
질문 아두이노 코드를 avr로 변환해 주세요 ...ㅠ댓글[3] 옹냥냥 22-08-08 74
질문 아두이노 녹음-스피커모듈 관련 질문있습니다 ㅠㅠ댓글[2] 방귀뿡뿡 22-08-08 56
질문 Serial EEPROM 실수값 저장..댓글[2] 이미지첨부파일 광이 22-08-07 48
질문 STM32 Live Expression 값들이 깜빡이는 현상댓글[3] 둠둠 22-08-05 119
질문 아두이노 ESP32 wifi module댓글[1] Yoon 22-08-03 183
질문 atmega128과 dht11, lcd를 연결했는데 0도라고 뜹니다.댓글[1] 고양이33 22-08-02 472
질문 ATMEGA 128 코드를 합치려고 하는데 어렵네요댓글[2] 고양이33 22-08-02 244
질문 서보모터 제어에 대해 질문있습니다.댓글[2] 첨부파일 뉴비에오 22-07-30 177
질문 적외선 통신 알려주실분있나요 ㅠㅠ댓글[1] hkjsj10 22-07-30 165
질문 아두이노 관련 궁금합니다.댓글[1] 뱝뱝 22-07-28 161
질문 아두이노 우노 MCP4725댓글[3] 이미지 opqr 22-07-27 317
질문 레오나르도 인체감지센서 알림 안옴 면지지 22-07-24 242
답변 답변글 답변 : 레오나르도 인체감지센서 알림 안옴 master 22-07-25 176
질문 Uno에서 엔코더값 놓치는 이유가 뭘까요...댓글[3] MAKTUB 22-07-24 181
질문 아두이노 압력센서 연동 질문댓글[4] dbice 22-07-23 297
질문 아두이노 버튼 누르기 문의댓글[1] 김형근 22-07-23 207
게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기