Tabla de contenido:

Fuente danzante: Arduino con analizador de espectro MSGEQ7: 8 pasos
Fuente danzante: Arduino con analizador de espectro MSGEQ7: 8 pasos

Video: Fuente danzante: Arduino con analizador de espectro MSGEQ7: 8 pasos

Video: Fuente danzante: Arduino con analizador de espectro MSGEQ7: 8 pasos
Video: ecualizador acuatico (Arduino) 2024, Noviembre
Anonim
Fuente danzante: Arduino con analizador de espectro MSGEQ7
Fuente danzante: Arduino con analizador de espectro MSGEQ7

La recepción de una señal de audio y su conversión en reacción visual o mecánica es muy interesante. En este proyecto utilizaremos un Arduino Mega para conectarlo a un analizador de espectro MSGEQ7 que toma la señal de audio de entrada y realiza un filtrado de paso de banda para dividirla en 7 bandas de frecuencia principales. El Arduino luego analizará la señal analógica de cada banda de frecuencia y creará una acción.

Paso 1: Objetivos del proyecto

Este proyecto discutirá 3 modos de operación:

  1. Los LED están conectados a pines digitales PWM para reaccionar a las bandas de frecuencia
  2. Los LED están conectados a pines digitales para reaccionar a las bandas de frecuencia
  3. Las bombas están conectadas al Arduino Mega a través de los controladores del motor y reaccionan a las bandas de frecuencia.

Paso 2: teoría

Teoría
Teoría
Teoría
Teoría

Si hablamos del IC MSGEQ7 Spectrum Analyzer podemos decir que tiene filtros internos de paso de 7 bandas que dividen la señal de audio de entrada en 7 bandas principales: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz y 16 kHz.

La salida de cada filtro se elige para que sea la salida del IC mediante el uso de un multiplexor. Ese multiplexor tiene selectores de líneas controlados por un contador binario interno. Entonces podemos decir que el contador debe contar de 0 a 6 (000 a 110 en binario) para permitir que pase una banda a la vez. Eso deja en claro que el código de Arduino debería poder restablecer el contador una vez que alcance el recuento 7.

Si echamos un vistazo al diagrama del circuito del MSGEQ7 podemos ver que usamos el sintonizador de frecuencia RC para controlar el reloj interno del oscilador. luego usamos elementos de filtrado RC en el puerto de señal de audio de entrada.

Paso 3: procedimientos

Procedimientos
Procedimientos

Según la página fuente (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) podemos ver que el código fuente trata las salidas como señales PWM que son repetitivas. podemos cambiar algunas de las líneas de código para adaptarlas a nuestros objetivos.

Podemos notar que si tenemos un conector estéreo, podemos duplicar la resistencia de entrada y el capacitor al segundo canal. Alimentamos el MSGEQ7 desde Arduino VCC (5 voltios) y GND. Conectaremos el MSGEQ7 a la placa Arduino. Prefiero usar el Arduino Mega ya que tiene pines PWM adecuados para el proyecto. La salida del MSGEQ7 IC está conectada al pin analógico A0, el STROBE está conectado al pin 2 del Arduino Mega y el RESET está conectado al pin 3.

Paso 4: Modos de funcionamiento: 1- LED como salidas digitales PWM

Modos de funcionamiento: 1- LED como salidas digitales PWM
Modos de funcionamiento: 1- LED como salidas digitales PWM

Según el código fuente, podemos conectar los LED de salida a los pines 4 a 10

const int LED_pins [7] = {4, 5, 6, 7, 8, 9, 10};

Entonces podemos notar que los LED bailan sobre la fuerza de cada banda de frecuencia.

Paso 5: Modos de funcionamiento: 2- LED como salidas digitales

Image
Image
Modos de funcionamiento: 3- bombas como salidas digitales
Modos de funcionamiento: 3- bombas como salidas digitales

Podemos conectar los LED de salida a cualquier pin digital.

const int LED_pins [7] = {40, 42, 44, 46, 48, 50, 52};

Entonces podemos notar que los LED parpadean sobre la fuerza de cada banda de frecuencia.

Paso 6: Modos de funcionamiento: 3- Bombas como salidas digitales

Modos de funcionamiento: 3- bombas como salidas digitales
Modos de funcionamiento: 3- bombas como salidas digitales

En este último modo conectaremos el módulo controlador de motor L298N a las salidas del Arduino. esto nos permite controlar el funcionamiento de la bomba en función de la salida del analizador de espectro MSGEQ7.

Como se sabe, los controladores de motor nos permiten controlar el funcionamiento de los motores o bombas conectados en función de la señal generada por el Arduino sin absorber ninguna corriente del Arduino, en lugar de eso, alimentan los motores directamente desde la fuente de alimentación conectada.

Si ejecutamos el código como fuente sin procesar, es posible que las bombas no funcionen correctamente. Esto se debe a que la señal PWM es baja y no será adecuada para que el controlador del motor haga funcionar los motores o las bombas y entregue una corriente adecuada. Es por eso que recomiendo aumentar el valor de PWM multiplicando las lecturas analógicas de A0 con un factor mayor que 1.3. Esto ayuda a que el mapeo sea adecuado para el controlador del motor. Recomiendo 1.4 a 1.6. También podemos reasignar el PWM para que sea de 50 a 255 para estar seguros de que el valor de PWM será el adecuado.

Podemos conectar los LED junto con las salidas para los controladores de motor, pero los LED no parpadearán de forma bien visible como antes ya que se han incrementado los valores de PWM. Así que sugiero mantenerlos conectados a los pines digitales 40 a 52.

Paso 7: contactos

Me alegra escuchar tus comentarios. No dude en unirse a mis canales en:

YouTube:

Instagram: @ simplydigital010

Gorjeo: @ Simply01Digital

Recomendado: