질문게시판 > 아두이노 소리센서 관련 질문드립니다.

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

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


BASIC4MCU | 질문게시판 | 아두이노 소리센서 관련 질문드립니다.

페이지 정보

작성자 아두이노소리센서 작성일2021-12-17 15:56 조회1,667회 댓글6건

본문

	

아두이노 소리센서 관련 질문드립니다. 

 

다음과 같은 mic를 이용해서 획득한 소리를 wav파일로 저장하고 싶습니다.

https://www.eleparts.co.kr/goods/view?no=2916684 

 

사용중인 아두이노는 MKR Zero이며 48MHz, 12bit로 동작합니다.

 

#define sensorPin A1

unsigned long preTime;

void setup(){

  Serial.begin(128000);

 

void loop() {

  int timer = 1; 

  unsigned long nowTime = micros();

  analogReadResolution(12);

  if (nowTime - preTime >= timer) {

  preTime = nowTime;

  Serial.println(analogRead(sensorPin),DEC);

  }

}

 

위와 같이 1micro second마다 신호를 analog pin을 통해 획득하여 1,000KHz의 sampling rate로 받은 신호를

시리얼 모니터를 이용하여 저장 후 wav파일로 변환하여 재생하고자하는데 방법을 잘 모르겠습니다ㅠ

  

위의 코드 중 수정이 필요한 부분과 아두이노를 사용한 소리녹음, 재생관련하여 알려주신다면 감사하겠습니다ㅠㅠ

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

댓글 6

조회수 1,667

master님의 댓글

master 작성일

가청주파수는 20Hz~3KHz 정도인데 어째서 1MHz로 저장하려는 것일까요?

아두이노소리센서님의 댓글

아두이노소리센서 댓글의 댓글 작성일

답변 감사합니다. 음향관련하여 처음 접하는터라 그 부분에 대해 고려하지 않은 것 같습니다..
최초코딩 시의 생각은 가청주파수를 고려하지 않고 sampling rate를 최대로 획득하고자 짧은 시간대로(microsecond단위로) 얻는 것이 좋다고 생각하여 micros()를 사용하여 획득하였고, 측정된 값을 analogRead()*분해능(5V/4096,입력전압/12bit)을 계산하여 전압값으로 출력하는 것까지 구현하였습니다.
이후에 이 '전압값을 그대로 출력하면 소리가 출력될 것'이라 생각했지만, 소리가 제대로 출력되지 않았습니다. 이 부분에 대해서 알려주시면 감사하겠습니다!

master님의 댓글

master 댓글의 댓글 작성일

ADC입력을 제대로 했고
DAC로 출력을 제대로 했다면 소리가 출력됩니다.
큰 소리를 얻으려면 앰프를 사용해야겠죠
간단한 앰프는 컴퓨터용 앰프내장 스피커입니다.

아두이노소리센서님의 댓글

아두이노소리센서 댓글의 댓글 작성일

답변감사드립니다!
한가지 더 질문드리겠습니다.
sampling time을 1us로 획득한다는 코드를 작성하였지만, 실제 획득되는 신호를 serial.print와 시리얼모니터의 '타임스탬프'기능을 사용하여 직접 확인했을 때, 최대 1초에 약400개의 data(382~401개등 다양), 즉 약2.5ms의 시간간격마다 신호가 획득되는 것을 확인했습니다.
analogRead의 경우 아날로그 입력을 읽는데 약 100us가 걸린다고 되어있으나,
https://www.arduino.cc/reference/ko/language/functions/analog-io/analogread/
실제 위와 같은 코드를 작성했을 때 loop문을 도는 시간때문인지 위의 코드에 따라 신호의 획득주기(data의 갯수)가 달라지는 것을 확인했습니다.
혹시 analogRead로 획득한 신호를 data손실 없이 바로 출력하는 방법이 있을까요?
혹은 Serial.print를 사용하지 않고 data만 그대로 저장할 수 있는 방법이 있을지 알려주시면 감사하겠습니다!

master님의 댓글

master 댓글의 댓글 작성일

일반적인 비동기 시리얼통신(UART)의 통신속도는 115200bps 입니다.
수 십년 전의 속도와 달라지지 않았죠
어쨋거나...1바이트 전송속도는 약 87us입니다.
2바이트 크기의 ADC데이터를 전송하려면 174us 이상이 소요되겠습니다만.
통신은 받는 곳에서 처리하기 쉽도록 데이터를 가공해서 전송해야 합니다.
LOW 데이터를 마구 보내면 받는 곳에서 어떻게 구분해야 하는지를 정해야겠죠
https://cafe.naver.com/circuitsmanual/101098
이 글 및 아래의 답글을 보면 10비트 데이터를 고속으로 전송하는 방법을 설명하고 있으니 참고하세요

아두이노소리센서님의 댓글

아두이노소리센서 댓글의 댓글 작성일

어릴 때 배웠던 아두이노를 깊게 공부하려하니 관련지식에 대한 학습의 필요성을 절실히 느끼게 되네요... 친절한 답변 감사드립니다!

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

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은 질문게시판에서만 작성 가능합니다. 스태프 19-01-15 9600
공지 사이트 이용 안내댓글[24] master 17-10-29 29473
질문 아두이노 심전도 센서 BPM 계산댓글[1] 새글 쥬쥬 11:15 11
질문 아두이노 서로 다른 전압을 가진 부품 제어 이미지새글 chovo 10:09 11
질문 앱인벤터 질문입니다.댓글[2] 이미지새글 귀끠우유 09:51 15
질문 아두이노 우노끼리 블루투스 통신댓글[1] 새글첨부파일 pyoleo 02:18 21
질문 마이크로 받은 입력을 주파수로 변경댓글[3] 새글 생늧판출 01:37 18
질문 while문 안 if문 빠져나오는 방법 새글 kyho3855 22-05-15 16
답변 답변글 답변 : while문 안 if문 빠져나오는 방법 새글 master 07:19 15
질문 초음파센서로 속도구하기(코드 합치는법) 새글 쥰니 22-05-15 29
답변 답변글 답변 : 초음파센서로 속도구하기(코드 합치는법) 새글 master 06:50 12
질문 360서보모터 질문입니다댓글[1] 한잔해2 22-05-14 58
질문 아두이노 초보 24V DC 제품 제어댓글[2] 제로펲시 22-05-13 57
질문 임베디드 시스템 디지털 도어락 구현댓글[1] 이미지첨부파일 ejdog 22-05-12 50
질문 임베디드 시스템 디지털 도어락 구현댓글[1] ejdog 22-05-12 46
질문 ATMEGA128 TCCR2 = 0X0B가 의미하는것은 무엇인지 궁금합니다. dfas123 22-05-12 85
답변 답변글 답변 : ATMEGA128 TCCR2 = 0X0B가 의미하는것은 무엇인지 궁금합니다.댓글[1] master 22-05-12 92
질문 ATMEGA128 0번핀과1번핀 스위치를 누르면 LED점등 속도 제어댓글[3] dfas123 22-05-11 113
질문 아두이노 로드셀 관련 질문드립니다.댓글[1] 끼약 22-05-11 76
질문 앱 인벤터 및 아두이노 질문 suhosin 22-05-10 88
답변 답변글 답변 : 앱 인벤터 및 아두이노 질문댓글[1] master 22-05-11 89
질문 블루투스 모듈, 적외선온도센서, 스피커 모듈댓글[4] 죠르디 22-05-10 146
질문 Hm-10블루투스 사용하여 rc카 조종기로부터 데이터 받는방법을 모르겠습니다.댓글[1] 뚱보개 22-05-10 674
질문 아두이노 로드셀 [졸업작품]댓글[1] 이미지 졸업작품 22-05-10 125
질문 아두이노 조이스틱으로 스텝모터2개제어댓글[4] 초보진 22-05-10 181
질문 초음파센서 스텝모터 질문입니다댓글[1] 응애 22-05-09 145
질문 아두이노 적외선온도센서 스피커모듈댓글[4] 죠르디 22-05-09 148
질문 stm32 uart serial 통신댓글[1] 하리 22-05-09 136
질문 적외선,금속,조도,서보모터 질문댓글[2] 하허히 22-05-08 133
질문 analogRead 관련 문의댓글[2] toemm 22-05-08 107
게시물 검색

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