So I made a 1 column, so how do you choose a bandwidth of the frequency that this column will turn on and and how do you make it so that when the frequency is the same but the amplitude goes up and so making the LED higher up the column light??? thanks for the KiCAD it's nice. and where does the signal go, does it go into the resistors?
View attachment 60566
Thats were the code and sampling come in.
1)So you create an array whose size is replication of your desired frequency resolution,
and then write a routine to start an A/D and fill that array.
2) Once filled you run the FFT code on that which creates an array where each ROW is
the frequency and two elements in the array, for that row, are real and imaginary magnitude
of the FFT computeted spectra complex magnitude
3) Then you code a routine to take each pair of elements and do the sqrt(sum of squares)
to convert to magnitude and save that.
4) Next you scan array by ROW and convert that MAGNITUDE to a LED value, how many
to turn on. Save that in an array.
5) Now you code the LED scan taking the Array values just computed and turn on GPIO pins
to set the correct number LEDs in that column.
Thats the basics.
I would advise you start posting on Infineon site on how to do the FFT with CMSIS library
and manage A/D conversion, etc.. I posted earleir a link to CMSIS project you can incorporate.
Earlier you posted :
and am having them vertical for a total of 30 LED's high (because they are sets of 10) and am having 16 columbs like picture attached. So there will be a grand total of 180 LED's in the matrix - look at the picture! I'm not too fussy about how to achieve this but all suggestions are welcome!
# LEDs = 16 COLUMN x 30 LEDs / COLUMN = 480 LEDs For that you need 16 + 30 GPIO = 46 GPIO.
Thats pretty close to exhausting that parts GPIO. You might post at Infineon site and ask if there is a
bigger board with more GPIO. Or two PSOC boards, like two of the 059 boards, and break up array
between them. Will take some coding as you will have to pass the FFT array from one board to the
other so it can do its scan.
You may be forced into a chipscale package to get enough I/O, ask Infineon if they
have a board that uses this.....