Detector de Frequência de Áudio com Arduino – Meça Picos de Som com Módulo de Alta Sensibilidade
Componentes e Materiais
![]() |
Arduino UNO | × | 1 |
| Módulo Detector de Som DEVMO Alta Sensibilidade | × | 1 | |
![]() |
Protoboard Grande | × | 1 |
| Computador | × | 1 | |
![]() |
Cabo USB-A para B | × | 1 |
![]() |
Jumpers (genéricos) | × | 1 |
Sobre o Projeto
Este projeto exibe a frequência aproximada do som mais alto detectado por um módulo de detecção de som. A saída analógica do módulo é ligada ao pino A0 do Arduino Uno. O sinal é amostrado e quantizado (digitalizado). Em seguida, é realizada uma Transformada Rápida de Fourier (FFT) nos dados digitalizados. A FFT converte os dados do domínio do tempo discreto para o domínio da frequência. A frequência de pico (maior magnitude) é determinada e exibida no Monitor Serial da Arduino IDE.
Mais informações: Blog do autor
Código
/* AudioFrequencyDetector v1.0
Autor: Clyde A. Lettsome, PhD, PE, MEM
Requer biblioteca arduinoFFT.h
*/
#include "arduinoFFT.h"
#define SAMPLES 128 // Deve ser potência de 2. Máx 128 no Uno.
#define SAMPLING_FREQUENCY 2048 // Hz, baseado em Nyquist (2x freq. máxima esperada)
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() {
// Amostragem
for (int i = 0; i < SAMPLES; i++) {
microSeconds = micros();
vReal[i] = analogRead(0);
vImag[i] = 0;
while (micros() < (microSeconds + samplingPeriod)) {
// aguarda período de amostragem
}
}
// FFT
FFT.Windowing(vReal, SAMPLES, FFT_WIN_TYP_HAMMING, FFT_FORWARD);
FFT.Compute(vReal, vImag, SAMPLES, FFT_FORWARD);
FFT.ComplexToMagnitude(vReal, vImag, SAMPLES);
// Pico de frequência
double peak = FFT.MajorPeak(vReal, SAMPLES, SAMPLING_FREQUENCY);
Serial.println(peak);
// Executa uma vez
while (1);
}
Esquemático
Processo de manufatura
- Crie um Sistema Ambilight Impressionante para Monitor com Arduino
- Construa o Clássico Jogo Pong no Arduino UNO com Display OLED – Tutorial Passo a Passo
- Construa Seu Próprio Tamagotchi com Arduino: Projeto DIY de Pet Digital
- Como Reproduzir Áudio com Arduino UNO e DFPlayer Mini – Guia Passo a Passo
- Controlador Inteligente de Interruptor de Luz Sem Fio: Manipulador Remoto Baseado em Arduino
- Jogo da Velha com Arduino, Matriz LED MAX7219 e Caixa de Papelão
- Pistola de Água Inteligente com Detecção de Movimento usando Arduino Nano
- Construa um Temporizador Regressivo Confiável com Arduino e Display de 7 Segmentos SparkFun
- Girassol Eletrônico com Arduino: Rastreador Solar Autônomo
- Construa Seu Próprio Carro RC Porsche com Arduino: Guia Passo a Passo



