Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Detector de Frequência de Áudio com Arduino – Meça Picos de Som com Módulo de Alta Sensibilidade

Componentes e Materiais

Detector de Frequência de Áudio com Arduino – Meça Picos de Som com Módulo de Alta Sensibilidade Arduino UNO × 1
Módulo Detector de Som DEVMO Alta Sensibilidade × 1
Detector de Frequência de Áudio com Arduino – Meça Picos de Som com Módulo de Alta Sensibilidade Protoboard Grande × 1
Computador × 1
Detector de Frequência de Áudio com Arduino – Meça Picos de Som com Módulo de Alta Sensibilidade Cabo USB-A para B × 1
Detector de Frequência de Áudio com Arduino – Meça Picos de Som com Módulo de Alta Sensibilidade 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

Detector de Frequência de Áudio com Arduino – Meça Picos de Som com Módulo de Alta Sensibilidade

Processo de manufatura

  1. Crie um Sistema Ambilight Impressionante para Monitor com Arduino
  2. Construa o Clássico Jogo Pong no Arduino UNO com Display OLED – Tutorial Passo a Passo
  3. Construa Seu Próprio Tamagotchi com Arduino: Projeto DIY de Pet Digital
  4. Como Reproduzir Áudio com Arduino UNO e DFPlayer Mini – Guia Passo a Passo
  5. Controlador Inteligente de Interruptor de Luz Sem Fio: Manipulador Remoto Baseado em Arduino
  6. Jogo da Velha com Arduino, Matriz LED MAX7219 e Caixa de Papelão
  7. Pistola de Água Inteligente com Detecção de Movimento usando Arduino Nano
  8. Construa um Temporizador Regressivo Confiável com Arduino e Display de 7 Segmentos SparkFun
  9. Girassol Eletrônico com Arduino: Rastreador Solar Autônomo
  10. Construa Seu Próprio Carro RC Porsche com Arduino: Guia Passo a Passo