안녕하세요. 오늘은 소리 센서를 사용하는 방법을 알아보고자 합니다.

소리 센서는 말 그대로 소리를 탐지하는 센서입니다.
여기에서 소리를 탐지한다는 것은 소리의 크기만 탐지하는 것이지, 음의 높낮이 등의 정보는 얻을 수 없음에 유의하시기 바랍니다.

그림 1 : 소리 센서
[그림 1 : 소리 센서]

이번 실험에서는 소리 센서로 입력받은 값을 시리얼 모니터로 출력합니다.
시리얼 모니터의 사용법을 잘 모르시는 분들은 시리얼 모니터와 가변저항 포스팅을 참고하시기 바랍니다.

1. 회로 연결

이번에는 회로도 없이 바로 연결된 사진을 보시겠습니다.

그림 2 : 아두이노에 소리 센서 연결
[그림 2 : 아두이노에 소리 센서 연결]

아두이노 보드 핀 소리 센서
아날로그 0번 핀 A0
GND(그라운드) GND
VCC(5V) VCC

[표 1 : 아두이노 - 소리 센서 핀 연결]

표1에 나와있는 것처럼 각 핀들을 연결해주면 됩니다.
소리 센서 뿐만 아니라, 보통 센서들은 전원과 그라운드를 연결해줘야 하고, 추가적으로 입력을 받기 위한 핀이 한개 이상 존재합니다.
소리 센서는 단 하나의 입력 핀이 있네요. 이 핀(A0)을 아두이노 보드의 A0에 연결해주면 되겠습니다.

2. 스케치

이번에는 스케치도 정말 간단합니다.

const int SOUND_SENSOR_PIN = A0;
int sensorValue;

void setup() {
  Serial.begin(9600);
}

void loop() {
  sensorValue = analogRead(SOUND_SENSOR_PIN);
  Serial.println(sensorValue);
  delay(20);
}
  • 1 줄 : 입력 핀 A0를 상수로 정의합니다.
  • 5 줄 : 9600 baud rate로 Serial 통신을 시작합니다. 이는 소리 센서가 받아오는 입력 값을 보기 위한 용도로 시리얼 모니터를 쓰기 위함입니다.
  • 9 줄 : analogRead()함수를 이용해서 A0 핀으로부터 아날로그 입력을 받습니다. 값의 범위는 0~1023 사이 입니다.
  • 10 줄 : 소리 센서의 값을 시리얼 모니터에 출력합니다.
  • 11 줄 : 20ms 동안 대기합니다.



3. 결과

그림 3 : 소리 크기 측정 결과
[그림 3 : 소리 크기 측정 결과]

그림 3에서 보시는 바와 같이 시리얼 모니터를 통해 소리의 크기를 확인할 수 있습니다.
저는 현재 제 주변에서의 기본적인 소리의 크기가 17정도인 것 같고, 박수를 가볍게 치면 20정도의 값이 나오네요.

+ Recent posts