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

TODAY2,798 TOTAL7,749,124
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

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


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

페이지 정보

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

본문

	

 

e2db14983f07ec33f37ec8eda71e62b5_1516263690_1337.png
 

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

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

기준선을 더 높이세요

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

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

 

 

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

댓글 7

조회수 74,535

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
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 stm32f103 LED 밝기 제어 질문 드립니다.댓글[6] 몽규 18-01-30 70019
질문 임배디드 공부에 대하여 질문드립니다. mcu홀릭 18-01-25 11703
답변 답변글 답변 : 임베디드 공부에 대하여 질문드립니다. master 18-01-25 13582
답변 답변글 답변 : 임베디드 공부에 대하여 질문드립니다.(추가) master 18-01-25 11714
질문 avr 에러 관련 문의드립니다.댓글[1] 이미지첨부파일 도도리 18-01-23 20853
답변 답변글 답변 : avr 에러 관련 문의드립니다.댓글[2] 첨부파일 도도리 18-01-23 21610
답변 답변글 답변 : 답변 : avr 에러 관련 문의드립니다.댓글[1] 이미지 master 18-01-23 17400
질문 스텝모터 위치제어 질문 드립니다. 몽규 18-01-22 16410
답변 답변글 답변 : 스텝모터 위치제어 질문 드립니다.댓글[5] master 18-01-22 60876
질문 stm32f103 질문 드립니다.댓글[8] 몽규 18-01-19 112867
답변 답변글 답변 : stm32f103 질문 드립니다.댓글[1] master 18-01-19 15212
질문 심박센서 bpm측정 관련 문의드립니다.댓글[4] 이미지 묵묵 18-01-18 47169
현재글 답변글 답변 : 심박센서 bpm측정 관련 문의드립니다.댓글[7] 이미지 master 18-01-18 74536
질문 [공지] 질문글은 삭제하지 못합니다.댓글[1] master 18-01-16 17670
질문 [ATmega128] MPU6050 mahony 필터에 질문드립니다.댓글[5] 이미지 Filter 18-01-16 59985
질문 AVR 자이로센서사용댓글[5] 하하루다 18-01-16 59858
질문 TFT 관련 질문입니다.댓글[2] 승후 18-01-16 21135
질문 atmega128 rfid 서보모터 제어댓글[3] 전자정해찬 18-01-16 39037
답변 답변글 답변 : atmega128 rfid 서보모터 제어 master 18-01-16 17548
질문 아두이노 소스 avr변환 질문입니다..댓글[7] 묵묵 18-01-16 498955
답변 답변글 답변 : 아두이노 소스 avr변환 질문입니다..댓글[6] master 18-01-16 1554587
답변 답변글 답변2 : 아나로그 값의 기준값을 정해야 합니다.댓글[6] master 18-01-16 66641
답변 답변글 답변3 : 아두이노 라이브러리 설명댓글[8] master 18-01-16 799433
게시물 검색

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
모바일버전으로보기