질문게시판 > 소리증폭센서 질문입니다.

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

소리증폭센서 질문입니다.

페이지 정보

작성자 Norway 작성일19-05-30 08:02 조회11,203회 댓글1건

본문

소리증폭센서의 센서값을 이용해 서보모터를 제어하는 코딩을 하려고 생각중입니다.

 

센서값을 측정하기 위해서 오픈소스를 통해 측정해보려고 했는데 

 

센서값이 혼자 오르거나 내려가거나 소리와는 상관없이 변합니다.

 

두 가지의 오픈소스를 사용했는데 두 가지 모두 마찬가지입니다. 센서의 문제인건가요??? 

 

-----------------------------------------------------------------

vhrint SOUND_SENSOR = A0;

 

int threshold = 25; //감도조절

 

int Sensor_value; 

 

 

 

void setup() {                

 

  Serial.begin(9600); // 시리얼모니터 출력

 

  pinMode(SOUND_SENSOR, INPUT);

 

 

}

 

 

 

void loop() {  

 

  Sensor_value = analogRead(A0);   // Analog PIN A0에서 입력값을 읽어와서 Sensor_value에 저장

 

  Serial.println(Sensor_value);   // 시리얼모니터에 감도표시

 

  delay(1000);

}

--------------------------------------------------------------

const int sampleWindow = 50; // Sample window width in mS (50 mS = 20Hz)

unsigned int sample;

 

void setup()

{

Serial.begin(9600);

}

 

 

void loop()

{

unsigned long startMillis= millis(); // Start of sample window

unsigned int peakToPeak = 0; // peak-to-peak level

 

unsigned int signalMax = 0;

unsigned int signalMin = 1024;

 

// collect data for 50 mS

while (millis() - startMillis < sampleWindow)

{

sample = analogRead(0);

if (sample < 1024) // toss out spurious readings

{

if (sample > signalMax)

{

signalMax = sample; // save just the max levels

}

else if (sample < signalMin)

{

signalMin = sample; // save just the min levels

}

}

}

peakToPeak = signalMax - signalMin; // max - min = peak-peak amplitude

double volts = (peakToPeak * 3.3) / 1024; // convert to volts

 

Serial.println(volts);

}


------------------------------------------------------------------

이렇게 두 개의 코딩을 써봤습니다. 센서값이 왜 소리를 인식못하고 혼자 변하는지 모르겠습니다.

 

 

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

댓글 : 1

조회수 : 11,203

master님의 댓글

master 작성일

소리는 주파서 성분입니다.
640Hz라고 하면 초당 640번을 오르락 내리락 하는 것인데
다양한 주파수 성분과 세기가 얽혀있기 때문에 읽을 때마다 다른 ADC값을 읽는 것은 당연한겁니다.
DC 전압 측정처럼 같은 값을 읽지 못합니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[31] master  17-10-29
질문 ATmega4809 nRF24L01 모듈을 이용한 무선… 댓글[3] Ahri 새글 24-06-12
질문 atmega128에 dht11 왜 측정을 못하죠? 댓글[1] 탈북한시민  24-06-11
질문 atmega128이 실행이 되지 않습니다 댓글[1] 첨부파일니굴  24-06-10
질문 아트메가 128 쓰는디 while 문이 안먹혀요 댓글[1] 수히  24-06-09
질문 atmega128 UART통신으로 FND출력 Rion  24-06-09
답변 답변 : atmega128 UART통신으로 FND출력 댓글[1] master  24-06-10
질문 atmega128 라인트레이서 코드와 회로도 질문...… 댓글[2] 첨부파일왕두일  24-06-06
답변 답변 : atmega128 라인트레이서 코드와 회로도 … master  24-06-07
질문 atmega128을 이용한 LCD 사용에 문제가 발생했… 댓글[3] 네넴  24-06-05
질문 Co 센서 값에 따른 ppm을 계산하려는데 댓글[1] 라칸  24-06-05
질문 17HS4401, A4988 스텝모터 제어 댓글[1] jhbaik  24-06-03
질문 코드비전avr을 이용한 아두이노 우노 제어 댓글[1] gkstntjd  24-05-29
질문 Energia 시리얼 모니터에 아무것도 출력되지않습니다… 댓글[1] 김의공  24-05-22
질문 아두이노 스위치, 에어펌프 연결 댓글[1] 첨부파일존존  24-05-20
질문 MSP430런치패드를 이용한 LCD 코딩 관련 질문 댓글[1] 뀨쥰이  24-05-16
질문 생활 속 가스 센서 첨부파일Fosen  24-05-13
질문 atmega128A로 초음파센서 바밤  24-05-13
답변 답변 : atmega128A로 초음파센서 master  24-05-13
질문 eeprom 값 출력이 다르게 나옵니다 댓글[5] 첨부파일idghte  24-05-05
답변 답변 : eeprom 값 출력이 다르게 나옵니다 master  24-05-05
질문 센서나 블루투스에서 조건문이 실행이 느립니다. 현아  24-05-03
답변 답변 : 센서나 블루투스에서 조건문이 실행이 느립니다. master  24-05-03
질문 님들 MG811 이산화탄소 센서를 쓰는데 라칸  24-05-03
답변 답변 : 님들 MG811 이산화탄소 센서를 쓰는데 master  24-05-03
질문 아두이노와 디지털 홀센서 사용 중 sampling ra… 첨부파일fjur564  24-05-03
답변 답변 : 아두이노와 디지털 홀센서 사용 중 sampli… master  24-05-03
질문 OP AMP 댓글[1] 첨부파일창원거북이  24-05-02
질문 라즈베리파이 라우팅 테이블을 영구 추가하려는데 라칸  24-04-30
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전