The tools and components were provided by our FYP supervisor Teo Shin Jen.
In this project, fast fourier transform(fft) is used to convert analog data from time domain to frequency domain.
We need to map the amplitude of each frequency bands (14 bands in total) and for all of the frequency bands into RGB. To further make the matter more complicated, Amplitude transition within each frequency band should be represented with the intensity/lumen of the RGB via the use of Pulse width modulation (PWM), follow by hue/fading when transition in-between frequency bands.
In other words, the idea is to
1. Arrange the frequency bands into 3 "groups", low mid and high frequency and "map" into R, G then B.
2. Amplitude of each frequency band would translate into the brightness/intensity of each color using Pulse width modulation (PWM).
3. Cycling from one frequency band to another, the R<->G<->B would "fade" by changing the hue of each color.
Using a 3.5mm" stereo jack to tap audio signal from computer/smart phone into A0 of arduino.
PWN pin 9,10,11 are use for controlling the RGB. The arduino shield (it has a darlington IC) is used to "switched" 12v for the RGB LED strip with PWM.
Step 4: Software
Fix_fft library: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286718155
Code : snipt.org/vvY4