소리감지 센서는 주변에서 발생하는 소리를 마이크로 모아 그 크기를 측정하는 기본 센서 입니다. “Sound Detection Sensor”로 검색하면 저렴한 모듈들을 많이 찾을 수 있습니다.

http://www.aliexpress.com/wholesale?catId=523&initiative_id=AS_20150225163215&SearchText=sound+detection+sensor+module

 

기본 센서답게(?) 사용방법도 간단한 편입니다.

센서의 VCC, GND로 전원을 공급하고 센서의 아날로그 출력 핀을 아두이노의 아날로그 핀(A0~A5)으로 연결해줍니다. 그럼 주변 소리에 따라 아날로그 핀으로 들어오는 전압이 변화하고, 아날로그 핀을 읽었을 때 값이 바뀌게 됩니다.

Arduino Nano       Sound Sensor
5V +5V
D3 OUT (A0 or Analog out)
GND GND

 

원하는 소리가 잘 인식되지 않는 경우 가변저항을 돌려 감도를 조절하면 됩니다.

소스코드는 아래를 참고하세요. 일정 크기 이상의 소리가 들어오면 아두이노에 내장된 LED를 깜빡이는 코드입니다.

int led = 13;
int threshold = 22; //Change This
int volume;
 
void setup() {                
  Serial.begin(9600); // For debugging
  pinMode(led, OUTPUT);     
}
 
void loop() {
  
  volume = analogRead(A0); // Reads the value from the Analog PIN A0
  /*
    //Debug mode
    Serial.println(volume);
    delay(100);
  */
  
  if(volume>=threshold){
    digitalWrite(led, HIGH); //Turn ON Led
  }  
  else{
    digitalWrite(led, LOW); // Turn OFF Led
  }
 
}

 

만약 하고자 하는 것이 음성인식이라면 얘기가 틀려집니다. 음성인식과 같은 멀티미디어, 신호처리 과정은 아두이노로 수행하기 버거운 작업입니다. 이 경우는 휴대폰에서 음성인식과 같은 처리를 수행하고 그 결과값만 아두이노로 전송해주는 형태로 구현하는 것이 좋을 것 같습니다.