오늘은 소리감지 LED 키트인
Hear & Light 키트에 대해서 알아보도록 하겠습니다!
MAX9814 마이크 증폭 모듈과 네오픽셀 WS2812B LED 모듈을 활용해
소리의 크기에 따라 LED 를 출력하는 키트입니다.
동영상이 아니어서 소리는 들리지 않지만
실제로는 소리 크기에 따라 LED 가 바쁘게 움직이고 있습니다!
Chapter 1. MAX9814
마이크 증폭 모듈인 MAX9814 입니다.
이 모듈은 소리를 감지해 크기를 나타내주고, 소리를 증폭해주는 역할을 합니다.
여기에선 소리를 감지해 크기를 나타내는 것으로 해보겠습니다.
먼저! 핀을 납땜 해주셔야 합니다.
MAX9814 회로 연결하기
MAX9814 | ARDUINO UNO |
GND | GND |
VCC | 5V |
OUT | A0 |
위 회로도와 표를 참고해 연결해주세요!
배터리 전원을 아두이노 GND VIN 에 입력해 주세요.
프로토 실드의 우측에는 5V 와 GND 를 연결 할 수 있어요!
MAX9814 소스코드
1234567891011121314151617181920212223242526272829303132333435363738394041424344 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; // 최대크기 초기값 0unsigned int signalMin = 1024; // 최소크기 초기값 1024int 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 시리얼 모니터, 시리얼 플로터
영상을 보시면 peakToPeak, volts 값이 출력되는 것을 볼 수 있습니다.
peakToPeak 값은 나중에 LED 출력에 사용되니 확인해주세요!
다음 시간엔 챕터 2 로 WS2812B LED 에 대한
강의를 이어나가도록 하겠습니다!
감사합니다.
전자부품 전문 쇼핑몰 인투피온입니다.
필요한 자재에 관한 문의는 홈페이지를 통한 견적 신청, 혹은 전화나 메일로 주시면 빠른 회신을 드릴 수 있도록 하겠습니다.
▶ 홈페이지: http://intopion.com/
▶ 전화: 02-2615-7278
▶ FAX : 02-6124-4242
▶ 메일: intopion@hanmail.net
'인투피온 강좌 > 아두이노 팁(Tip)' 카테고리의 다른 글
아두이노 매뉴얼 [소리감지 LED 키트] - 3 (0) | 2022.07.28 |
---|---|
아두이노 매뉴얼 [소리감지 LED 키트] - 2 (0) | 2022.07.26 |
아두이노 MAX6675 열전대 온도센서 모듈 (0) | 2022.01.24 |
아두이노 조도센서 모듈 사용하기 (0) | 2022.01.24 |
아두이노 SHT20 온습도센서 사용하기 (0) | 2022.01.24 |