에듀이노-코딩교육 전문 쇼핑몰 에듀이노-코딩 교구는, 에듀이노!

학교, 공공기관이라면 후불결제하세요!

 
현재 위치
  1. 게시판
  2. 묻고답하기
상품 게시판 상세
데시벨 변환
  • 작성자 김준형 (ip:)
  • 작성일 2022-08-12
  • 추천 추천하기
  • 조회수 272
평점 0점

제품 상세페이지에

const int sampleWindow = 50;
unsigned int sample;
int led = 10;
 
void setup(){
  Serial.begin(9600);
}
 
void loop(){
  unsigned long startMillis= millis();
  unsigned int peakToPeak =0;
  unsigned int signalMax = 0;
  unsigned int signalMin = 1024;
 
  while(millis() - startMillis <sampleWindow){
    sample = analogRead(A0);
    if (sample < 1024){
      if(sample > signalMax)
        signalMax = sample;
      else if(sample < signalMin)
        signalMin = sample;
    }
  }
 
  peakToPeak = signalMax - signalMin;
  double volts = (peakToPeak * 5.0) / 1024;
 
  {
    if (volts>1.5)
    digitalWrite(led,HIGH);
    else
    digitalWrite(led,LOW);
  }
  Serial.println(volts);
}
 

이렇게 소스코드가 기제되어있는데

상품 qna에 

안녕하세요 에듀이노입니다.
제품 상세페이지에 제공되는 소스코드에
소리크기로 변환하는 공식이 함께 포함되어있습니다.
제품상세페이지를 참고부탁드립니다.
감사합니다.

[ Original Message ]

아두이노에 MAX9814를 부착하여 사용하고있는데 혹시 출력되는 아날로그값을 dB(데시벨)값으로 변환하는 공식이나 코드 있을까요?


요렇게 되어있고, 이러면 저 volts 값이 소리 크기로 변환된 값인것같은데 이 volts값을 데시벨로 변환하려면 어떻게 해야하나요?

임의로 정수를 곱해 사용하니 나오는 volts값이 너무 편차가 큽니다.

비밀번호 : 삭제 수정
첨부파일
댓글 수정

비밀번호 :

수정 취소

/ byte

비밀번호 : 확인 취소

댓글 입력

이름: 비밀번호: 관리자답변보기

별점별점주기

/ byte

에게만 댓글 작성 권한이 있습니다.

댓글 입력

댓글달기이름 :비밀번호 :

확인

/ byte

왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)

에게만 댓글 작성 권한이 있습니다.

«
»