인투피온 강좌/아두이노 팁(Tip)

아두이노 매뉴얼 [소리감지 LED 키트] - 1

인투피온 2022. 7. 25. 10:16

(이미지 클릭시 구매할 수 있는 링크로 이동됩니다)

 

 

오늘은 소리감지 LED 키트인 

Hear & Light 키트에 대해서 알아보도록 하겠습니다!

 

 

 

MAX9814 마이크 증폭 모듈과 네오픽셀 WS2812B LED 모듈을 활용해

소리의 크기에 따라 LED 를 출력하는 키트입니다.

 

 

동영상이 아니어서 소리는 들리지 않지만

실제로는 소리 크기에 따라 LED 가 바쁘게 움직이고 있습니다!

 

 

 

 

Chapter 1. MAX9814

 

 

(이미지 클릭시 구매할 수 있는 링크로 이동됩니다)

 

마이크 증폭 모듈인 MAX9814 입니다.

이 모듈은 소리를 감지해 크기를 나타내주고, 소리를 증폭해주는 역할을 합니다.

 

여기에선 소리를 감지해 크기를 나타내는 것으로 해보겠습니다.

 

 

 

먼저! 핀을 납땜 해주셔야 합니다.

 

납땜 중인 MAX9814

 

납땜을 완료한 모습!

 

 

MAX9814 회로 연결하기

 

 

 

MAX9814.fzz
0.09MB

 

 

MAX9814 ARDUINO UNO
GND GND
VCC 5V
OUT A0

 

위 회로도와 표를 참고해 연결해주세요!

 

 

배터리 전원을 아두이노 GND VIN 에 입력해 주세요.

프로토 실드의 우측에는 5V 와 GND 를 연결 할 수 있어요!

 

 

 

MAX9814 소스코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
const int sampleWindow = 50// 샘플링 시간(50 mS = 20Hz)
unsigned int sample;
 
void setup() 
{
   Serial.begin(9600);
 
}
 
   
void loop() 
{
 
   unsigned long startMillis= millis();  // 샘플링 시작
   unsigned int peakToPeak = 0;   // 음성신호의 진폭
   unsigned int signalMax = 0;    // 최대크기 초기값 0
   unsigned int signalMin = 1024// 최소크기 초기값 1024
  
   int displayPeak = 0;
 
   while (millis() - startMillis < sampleWindow) // 50ms 마다 데이터 수집
   {
      sample = analogRead(0);  // 마이크 증폭모듈로부터 받아오는 아날로그 값 저장
      if (sample < 1024)  // 값이 1024 보다 작을때
      {
         if (sample > signalMax) // 0보다 크면 
         {
            signalMax = sample;  // signalMax에 저장
         }
         else if (sample < signalMin) // 1024보다 작으면
         {
            signalMin = sample;  // signalMin에 저장
         }
      }
   }
   
   peakToPeak = signalMax - signalMin;  // 최대- 최소 = 진폭값
   double volts = (peakToPeak * 5.0/ 1024;  // // 전압 단위로 변환 = 소리 크기로 변환
 
   Serial.print(" peakToPeak : ");
   Serial.print(peakToPeak);
   Serial.print("\t\t volts  : ");
   Serial.println(volts);
}
 
 

 

 

 

MAX9814 시리얼 모니터, 시리얼 플로터

 

 

아두이노 MAX9814 시리얼 플로터, 모니터

 

영상을 보시면 peakToPeak, volts 값이 출력되는 것을 볼 수 있습니다.

peakToPeak 값은 나중에 LED 출력에 사용되니 확인해주세요!

 

 

 

다음 시간엔 챕터 2 로 WS2812B LED 에 대한

강의를 이어나가도록 하겠습니다!

 

 

감사합니다.

 

 

 

 

 

 

전자부품 전문 쇼핑몰 인투피온입니다.
필요한 자재에 관한 문의는 홈페이지를 통한 견적 신청, 혹은 전화나 메일로 주시면 빠른 회신을 드릴 수 있도록 하겠습니다.

▶ 홈페이지: http://intopion.com/
▶ 전화: 02-2615-7278
▶ FAX : 02-6124-4242
▶ 메일: intopion@hanmail.net