Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Visualizador Espectro Audio Tiempo Real con Arduino Nano 33 BLE y OLED

Componentes y Suministros

Arduino Nano 33 BLE (nRF52840) 1
Micrófono Electret + Amp MAX9814 (AGC automático) 1
OLED I2C 0.91" 128x32 (SSD1306) 1
Condensador 4.7nF (filtro RC paso bajo) 1
Condensador 470µF (desacople alimentación) 1
Resistencia 2kΩ (filtro RC paso bajo) 1

Software

Sobre el Proyecto

Introducción

Visualizador de espectro de audio en tiempo real: gráfico de barras en OLED 128x32. Graves a la izquierda, agudos a la derecha. Responde a música/sonido ambiente.

Construcción y Conexiones

Visualizador Espectro Audio Tiempo Real con Arduino Nano 33 BLE y OLED
Ruido baja frecuencia (50/60Hz red eléctrica): Usa jaula de Faraday (caja metálica conectada a GND) o filtro paso alto software. El ruido de red contamina graves.

Limitaciones Muestreo y Filtro Paso Bajo

Visualizador Espectro Audio Tiempo Real con Arduino Nano 33 BLE y OLED

analogRead() en Nano 33 BLE ≈ 35.000 muestras/seg. Teorema Nyquist → máx 17.5 kHz. Con overhead bucle ocupado → límite práctico **8 kHz**.

Filtro RC paso bajo hardware: R=2kΩ, C=4.7nF → fc ≈ 17 kHz (R=180Ω, C=0.1µF → fc ≈ 8.8 kHz). Elimina frecuencias que no podríamos muestrear bien.

Visualizador Espectro Audio Tiempo Real con Arduino Nano 33 BLE y OLED

Cálculo Tasa Muestreo Real

#define ANALOG_PIN A0
#define SAMPLES 1000000.0
int newTime, analogValue;
void setup() { Serial.begin(9600); Serial.println("Muestreando..."); }
void loop() {
  newTime = micros();
  for(int i=0;i<(int)SAMPLES;i++) analogValue=analogRead(ANALOG_PIN);
  float usPerSample=(micros()-newTime)/SAMPLES;
  Serial.print("us/muestra: "); Serial.println(usPerSample);
  Serial.print("Freq máx (Hz): "); Serial.println(1e6/usPerSample);
}
Visualizador Espectro Audio Tiempo Real con Arduino Nano 33 BLE y OLED

Resultado: ~35 ksps. Bucle captura con espera activa:

for(int i=0;i

Interfaz de Usuario (OLED)

Visualizador Espectro Audio Tiempo Real con Arduino Nano 33 BLE y OLED
  • Pantalla dividida en **11 bandas logarítmicas** (zona 3-13 de 14 totales), imitando percepción auditiva humana (20Hz-20kHz).
  • Cada barra: rectángulo relleno = media banda, líneas discontinuas = pico banda.
  • Valores en **dB** con referencia heurística.
Visualizador Espectro Audio Tiempo Real con Arduino Nano 33 BLE y OLED

Funcionamiento

  1. Muestreo 1024 muestras a 24 kHz (período ~41.6µs).
  2. FFT (librería arduinoFFT): ventana Hamming, eliminación DC, magnitud compleja.
  3. Agrupación en 14 bandas logarítmicas → cálculo media y máx por banda.
  4. Conversión a dB: 20*log10(valor/referencia).
  5. Dibujado incremental en OLED (solo actualiza cambios).

Sobre el Módulo MAX9814

Visualizador Espectro Audio Tiempo Real con Arduino Nano 33 BLE y OLED
  • **AGC (Control Ganancia Automático)**: 40/50/60dB configurables por pin GAIN.
  • Salida ~2Vpp sobre bias 1.25V DC → compatible ADC 3.3V.
  • Ratio Attack/Release modificable (1:4000 defecto).
  • Para entrada Line-In: condensador bloqueo DC (>1µF, 33-100µF recomendado).
  • Alimentación 2.7-5.5V.

Pantalla OLED 0.91" SSD1306

  • 128x32 píxeles blancos, sin retroiluminación → bajo consumo.
  • 4 pines I2C (sin RESET). Conectar SDA→A4, SCL→A5.
  • Librerías Adafruit: Adafruit_SSD1306, Adafruit_GFX.

Próximos Pasos

Usar ADC optimizado nRF52840 (DMA, temporizadores) para mayor tasa muestreo y FFT más precisa.

Proceso de manufactura

  1. Construya el clásico juego Pong en Arduino UNO con pantalla OLED: Tutorial paso a paso
  2. Sensor K30 CO₂: Monitorización en tiempo real de la calidad del aire interior
  3. Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino
  4. Alcancía Inteligente: Controla un Aceptador de Monedas con Arduino Nano
  5. Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
  6. Controla Dos Motores Paso a Paso con Arduino Nano y Joystick - Tutorial Sencillo
  7. Transmisión de datos de audio con Arduino Nano 33 BLE Sense
  8. Contador Geiger Portátil con Arduino Nano: Construye tu Detector de Radiación
  9. Medición Precisa de Radiación Solar con Arduino UNO y Shield Ethernet
  10. Robot comedero con Arduino Nano: Guía paso a paso
  11. Reloj Meteorológico Arduino en Tiempo Real: Pantalla OLED para Hora, Fecha y Temperatura