Blogia
mundosimaginados

Audio Specturm Analyzer. Arduino + LCD + MSGEQ7

Ya les conté en la entrada anterior que esta época estoy haciendo cosas con Arduino. Sigo con proyectos técnicos que me ayuden a profundizar y mejorar mis conocimientos.

Los analizadores de espectro de audio (así como los ecualizadores) han sido siempre una debilidad para mí. Tanto es así que no tengo consciencia de cuando me quedé embobado la primera vez viendo uno. De allí a entender al transformada de Fourier ha habido un camino largo, largo. En este ejemplo no utilizo ninguna rutina para el cálculo de la transformada (y eso que hay sitios en los que está resuelto para el arduino) y en su defecto he empleado el integrado MSGEQ7 con unos resultados muy satisfactorios. El circuito y la inspiración del código la he obtenido de este y este sitio.

En el caso del integrado proprociona los niveles en 7 bandas. Yo he interpolado para llegar a las 16 que son el número de caracteres de la pantalla LCD. Comentar que esta pantalla no permite gráficos y las barras las he generado creando los dibujos como caracteres nuevos al más puro estilo de cuando dibujabamos sprites con los primeros micro-ordenadores...

Para la prueba de concepto he recuperado un tema mío (Zimbolución) del año 2004 que terminé en el 2005 y que se adapta muy bien a la demostración por su rítmo y dinámica. A bailar!

3 comentarios

El Artista -

Como el integrado sólo da 7 valores una forma fácil de tener mas valores es calcular la media entre cada para de valores. Si tenemos el valor 1 y el valor 2. Calculo otro en medio que sea la suma dividida por 2. valor nuevo = (valor 1 + valor 2) / 2. Así se llegaría a 7 + 6 = 13. Para llegar a los 16 puedes repetir alguno. Lo que yo hice es inventar alguno más en el centro en función de los dos valores a la izquierda y dos de la derecha y dividiendo por 4.

Nicolás -

Hola, muy buen proyecto, gracias por compartirlo! Te animas a explicar un poco mejor como llegaste a las 16 bandas interpolando?

Jason -

Hola oye esta muy interesante, podrias compartir algo sobre el codigo?