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

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

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


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

페이지 정보

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

본문

	

 

e2db14983f07ec33f37ec8eda71e62b5_1516263690_1337.png
 

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

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

기준선을 더 높이세요

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

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

 

 

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

댓글 7

조회수 39,919

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 17163
공지 사이트 이용 안내댓글[28] master 17-10-29 33561
질문 아두이노 코딩 에러 질문댓글[1] 이미지새글첨부파일 박무농 23-03-25 28
질문 아두이노를 이용한 타이머, 태양전지 제어댓글[2] 새글 박무농 23-03-25 31
질문 sd카드 이미지 전송댓글[1] 던지기마스터 23-03-24 15
질문 초음파센서를 이용한 모터제어 질문있습니다.댓글[3] 이미지첨부파일 뉴비에오 23-03-24 39
질문 부품 관련 문의댓글[1] 타코 23-03-23 23
질문 모터 작동 시, 일부 모듈이 꺼지는 현상에 대해 질문드립니다. 이미지 그렇찌 23-03-22 34
답변 답변글 답변 : 모터 작동 시, 일부 모듈이 꺼지는 현상에 대해 질문드립니다. 이미지 master 23-03-23 22
질문 ESP로 원격 모터제어를 할 수 있나용?댓글[1] 비차 23-03-22 26
질문 HC06을 마스터로 설정하면 HC06끼리만 통신되나요?댓글[4] 비차 23-03-21 36
질문 아두이노 제어하기댓글[3] 매드닥터 23-03-19 58
질문 atmega128 압력센서 관련 질문입니다댓글[1] 공린이 23-03-19 68
질문 아두이노 스텝모터 각도제어 질문댓글[3] master 23-03-17 68
질문 아두이노와 파이썬(중점좌표) 시리얼 통신 질문드립니다.댓글[1] 이미지첨부파일 아두이노어렵잖아 23-03-16 54
질문 아두이노 3LED 버튼 관련 질문댓글[1] 이츤 23-03-16 52
질문 ATmega328p로 pca9685를 이용하여 서보모터(mg996r, mg90s)를 pwm로 제어 중 떨림댓글[1] 이미지첨부파일 토비 23-03-15 55
질문 hm-10 다중연결 질문있습니다.댓글[1] 첨부파일 뉴비에오 23-03-14 47
질문 while loop 실행 속도댓글[1] 412904 23-03-12 70
질문 AND 연산 질문드립니다.댓글[1] 412904 23-03-11 76
질문 아두이노 테트리스 게임댓글[1] 첨부파일 지욱애 23-03-02 161
질문 아두이노우노 블루투스 2개 연결댓글[1] dsfadfs 23-02-28 122
질문 스텝모터 코딩 질문입니다..댓글[2] 무야더싱 23-02-25 142
질문 아두이노 나노33 IOT 의 BLE 연결 문제 이미지 가루밀 23-02-24 82
질문 220V AC를 직류로 바꾸면 건전지 5V 건전지 55개를 대체할 수 있는건가요?댓글[1] hghh 23-02-22 107
질문 HM-10 모듈 사용하는데 질문있습니다.댓글[2] 뉴비에오 23-02-21 143
질문 아두이노 블루투스 관련 질문입니다. 생물공학도 23-02-21 108
답변 답변글 답변 : 아두이노 블루투스 관련 질문입니다. master 23-02-21 109
질문 자율주행 로봇을 만드는데 질문있습니다.댓글[2] 뉴비에오 23-02-18 178
질문 블루투스에서 아두이노로 신호전달에 대하여(2)댓글[1] 이미지첨부파일 밍경 23-02-14 199
게시물 검색

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