Skip to content

Latest commit

 

History

History
58 lines (34 loc) · 2.91 KB

README.md

File metadata and controls

58 lines (34 loc) · 2.91 KB

LEDSpectrumAnalyzer

This project is a seven band spectrum analyzer used to drive a LED Matrix given an audio signal. The code is running on an Arduino Nano and the audio processing is done by an MSGEQ7 module, the board can be controlled via Bluetooth with a simple Android App.

SpectrumAnalyzer.mp4

How does it work?

The audio input signal is passed to an MSGEQ7 module which has seven pass-band filters, the module outputs the amplitude for each band of frequencies. The arduino controls three different LED strips using FASTLed libraries: the corner, the center, the little DOT in the bottom of the frame.

Corner led strip

The corner led strip ligths the led based on different animation designed to be visually captivating. The animations, as well as their colour and duration, are randomized and they are only changing under certain conditions (e.g average low frequencies read coming from MSGEQ7 >= 50%), this gives the frame a really dynamic transition between animations. A two-way reflective sheet was placed in both sides of the frame, giving the corner a cool "infinity mirror" effect.

Central led strip

Central led strip lights the LEDs based on MSGEQ7 output, every 40 ms the module updates its outputs, these levels of amplitude are passed to the arduino that maps the values in a range 0-10 and lights the leds in different colours based on the frequencies.

Colour Frequency band
RED 0Hz-63Hz
ORANGE 63Hz-160Hz
YELLOW 160Hz-400Hz
GREEN 400Hz-1kHz
LIGHT BLUE 1kHz-2.5kHz
BLUE 2.5kHz-6.25kHz
PURPLE 6.25kHz-16kHz

DOT led strip

The dot in the bottom of the strip is used as a flag for bluetooth data, when data is being received it turns blue to show that the data was received correctly.

Additional features

Controllable via App

I built a simple app using MitApp inventor to control the frame via smartphone. It is possible to connect to the board, turn the board ON/OFF, adjust brightness or choose a visualization mode.

Controller
In Party mode both the corner and the center generates different animations as shown in the demo video.
In Static mode every led from corner and center is turned with an optional color (corner and center colours are different), the color for both the center and the corner can be controlled via app.
In Relax mode the corner's leds are on in a still white colour, creating a more relaxing animation.
Strobo mode needs no introduction.

Another LED project i made of which i have a little introduction:

6PRIMO.INTRO.mp4

Animations i programmed and project's info:

https://youtu.be/t5UIrvfEN9Y?t=300