아두이노

[아두이노]소리센서를 이용한 회로구성 및 데시벨과의 비교

알까 2022. 11. 15. 12:14

지난 포스팅에서는 조도센서를 이용한 회로구성과 코드작성을 해보았습니다.

 

이번시간에는 소리센서를 이용한 회로를 구성해보도록 하겠습니다.

 

1. 소리센서의 종류

 

왼쪽 : lm393 오른쪽 : ky-037

 

먼저 소리센서의 종류에는 두가지 종류가 있습니다.

 

이중 오른쪽에 해당하는 KY-037이 '고감도 음성감지센서'이기에 오른쪽 부품을 활용하여 회로를 구성하였습니다.

 

가운데 위치한 음성 감도 조정

동그라미 친 곳에서 보이는 파란색장치로 음성 감도 조정이 가능합니다.

 

드라이버나 손톱을 이용해서 돌려 감도를 조정할 수 있습니다.

 

너무 과도하면 음성인식이 되지 않거나, 일정한 값만이 출력되기 때문에 적절한 조정이 필요합니다. 이는 조금 이따가 다루어 보겠습니다.

 

2. 소리센서 회로 연결방법

 

소자를 연결하는 방법

소자에는

A0 - 아날로그 신호

G - GND(-)전압으로 연결

+  - (+)전압으로 연결

D0 - 디지털 신호

 

디지털 신호는 0과 1로 구성된 신호이기때문에  소리의 감지는 가능하지만 크기의 정도는 인지할 수 없습니다.

때문에 저는 아날로그 신호를 이용하여 회로를 구성하여 보았습니다.

소리센서 회로연결

이와 같이 회로연결을 하시면 

 

소리가 인지되면 led2에 빛이 납니다.

만약에 계속 불이 켜져 있거나, 소리가 인식되지 않는다면 앞서 말씀드린 감도조절센서(파란색장치)에 있는 금색 판을 돌려서 감도를 조정해주시면 됩니다.

 

 

3. 코드작성

 

 

회로를 구성하였으니, 코드를 작성해보도록 하겠습니다.

int threshold = 500; //민감도 조절

void setup() {
Serial.begin(115200);
pinMode(A0, INPUT);//A0에서 센서값 가져오기

}

void loop() {
int sensorValue = analogRead(A0);//아날로그로 sensorValue에 입력
Serial.print(sensorValue); //출력
Serial.print(',');
delay(1000); //1000ms 즉, 1초마다 출력
}

이렇게 해서

결과값 출력

이러한 결과값을 출력하였습니다.

 

 

4. 데시벨 측정

 

아두이노에서 출력되는 것은 데시벨값이 아니죠. 때문에 휴대폰 어플을 이용해 데시벨을 같이 측정하였습니다.

휴대폰 어플을 이용해 데시벨 측정

이 어플에는 초당 데시벨 값을 출력할 수 있는 기능이 있어서 데이터를 추출했습니다.

가져온 결과값

이렇게 추출한 데이터를 토대로 그래프를 그려본 결과 다음과 같습니다.

뿐만아니라 아두이노를 통해 측정된

측정값으로 그래프를 그려보면 다음과 같습니다.

파란색 : 시끄러운 환경, 주황색 : 조용한 환경
파란색 : 시끄러운 환경, 주황색 : 조용한 환경

이중 파란색은 '카페'환경에서 측정한 측정값이고, 주황색은 '조용한'환경에서 측정한 측정값입니다.

 

 

5. 결과 정리

 

아두이노의 경우,

휴대폰 센서에 비하여 민감도가 낮기때문에 한계점이 있으나, 파란색 그래프의 최댓값과 최솟값이 더욱 크게 나타나는 것으로 현재 환경이 시끄러운 편에 속한다는 사실을 알 수 있습니다.

 

데시벨과 소리센서를 통한 연관성을 찾는 것이 사실상 불가능하다는 판단을 했습니다.

 

다만 일정 기준치를 넘는 피크의 개수를 확인하여 소리의 불균일함과 세기의 정도를 파악할 수 있었습니다.

 

다음 포스팅에서는 일정 수치를 넘는 피크의 개수를 장소별로 구분하여