산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 오디오 주파수 감지기 - 고감도 사운드 모듈로 최대 음량 피크 주파수 측정

부품 및 소모품

아두이노 우노 1개
DEVMO 고감도 사운드 감지 모듈 1개
무납 브레드보드 풀사이즈 1개
컴퓨터 1대
USB A-B 케이블 1개
점퍼 와이어 1세트

프로젝트 개요

이 프로젝트는 사운드 감지 모듈이 감지한 소리 중 가장 큰 음량의 주파수를 아두이노로 측정해 시리얼 모니터에 표시합니다.

작동 원리

  1. 사운드 모듈의 아날로그 출력을 아두이노 A0 핀에 연결
  2. 아날로그 신호를 샘플링하여 디지털화 (양자화)
  3. 디지털 데이터에 고속 푸리에 변환(FFT) 수행
  4. FFT 결과(주파수 영역)에서 최대 진폭을 가진 주파수(피크) 탐색
  5. 시리얼 모니터(115200 baud)로 결과 출력

아두이노 우노의 메모리 제약으로 FFT 샘플 수는 최대 128포인트(2의 거듭제곱)로 제한됩니다. 샘플링 주파수는 2048Hz로, 나이퀴스트 이론에 따라 최대 1024Hz까지 측정 가능합니다.

코드

arduinoFFT.h 라이브러리 필요 (라이브러리 매니저에서 설치)

#include "arduinoFFT.h"

#define SAMPLES 128             // FFT 포인트 수 (2의 거듭제곱, 우노 최대 128)
#define SAMPLING_FREQUENCY 2048 // 샘플링 주파수 (Hz)

arduinoFFT FFT = arduinoFFT();
unsigned int samplingPeriod;
unsigned long microSeconds;
double vReal[SAMPLES];
double vImag[SAMPLES];

void setup() {
  Serial.begin(115200);
  samplingPeriod = round(1000000 * (1.0 / SAMPLING_FREQUENCY)); // 마이크로초 단위 주기
}

void loop() {
  // 1. 샘플링
  for (int i = 0; i < SAMPLES; i++) {
    microSeconds = micros();
    vReal[i] = analogRead(A0); // A0 읽기
    vImag[i] = 0;              // 허수부는 0
    // 샘플링 주기 대기
    while (micros() < (microSeconds + samplingPeriod)) {
      // busy wait
    }
  }

  // 2. FFT 수행
  FFT.Windowing(vReal, SAMPLES, FFT_WIN_TYP_HAMMING, FFT_FORWARD); // 해밍 윈도우
  FFT.Compute(vReal, vImag, SAMPLES, FFT_FORWARD);                 // FFT 계산
  FFT.ComplexToMagnitude(vReal, vImag, SAMPLES);                   // 복소수 → 크기

  // 3. 피크 주파수 탐색 및 출력
  double peak = FFT.MajorPeak(vReal, SAMPLES, SAMPLING_FREQUENCY);
  Serial.println(peak); // 가장 강한 주파수 출력 (Hz)

  // 4. 1회만 실행 후 정지 (하드웨어 리셋 필요)
  while (1);
}

회로도

사운드 모듈 VCC → 5V, GND → GND, OUT → A0

상세 회로도는 첨부 이미지 참조

참고 사항

제조공정

  1. 아두이노로 모니터 앰비라이트(Ambilight) 시스템 직접 만들기
  2. 아두이노 우노와 OLED 디스플레이로 클래식 퐁(Pong) 게임 만들기: 단계별 튜토리얼
  3. 직접 만드는 아두이노 다마고치: 디지털 펫 DIY 프로젝트
  4. 아두이노 우노와 DFPlayer Mini로 오디오 재생하기 - 단계별 가이드
  5. 스마트 무선 조명 스위치 컨트롤러: 아두이노 기반 원격 스위치 조작기
  6. 아두이노 틱택토 게임 - MAX7219 LED 매트릭스와 골판지 케이스
  7. 아두이노 나노로 만든 스마트 모션 감지 물총
  8. 스파크펀 7-세그먼트 디스플레이로 신뢰할 수 있는 아두이노 카운트다운 타이머 만들기
  9. 아두이노 해바라기: 태양을 추적하는 전자 해바라기 만들기
  10. 아두이노로 직접 만드는 RC 포르쉐 자동차: 단계별 가이드