correct me if I'm wrong! first of all I have settled on 16 columns and 20 rows 320 LED matrix common cathode for the columns and common anode for the rows!
I know that multiplexing lights up one LED in a row at a time and one after another, an LM3914 or LM3916 is a dot bar display driver and can be cascaded, and it's signal is a varying voltage.
Narrow (Single Frequency) Band Pass filter lets a signal pass through and that drives audio filters built around a simple op-amp, Whilst you CAN make analogue filters with VERY narrow pass bands they become increasing complicated and component-dense, but with a digital filter you can derive practically any band width just by programming.
The 3914 is a is voltage peak detector and, all we need to do is get a operational amplifier and a microphone/input, (I want the signals from RCA jacks!) I want to use a splitter cable so that the audio can go into the spectrum analyser and to the midi box that I have.
The FFTlibrary (Fast Fourier Transform) does this digitally and has so called frequency bins, I want 16.
The LED's I'm driving are of the bar graph type, If you increase the number of bands, the overlap will be worse. I can use an alternative way of doing this with the CY8CKIT-059 somehow, but that looks complex.
From what frequency range will light up a certain column and where it overlaps to the next - I want not much overlap so that the output is more crisp.
I am not using WS2812B, So are you constrained to LEDs? yes no LCD's!
OpAmp solutions have problems with accuracy and drift, whereas if a FFT is run its clock accuracy accurate. And basically code based.
The processor can generate effectively all the filters needed because thats what a FFT does, gives you freq versus amplitude as output data.
The challenge in an FFT is update rate because its computationally intensive in processor speed needed.
Difference between filter and FFT : Filter we need a filter solution for each channel (frequency) and can only do 2 / PSOC
chip.
FFT we take a bunch of samples, then run the FFT analysis on the sample set, Its computationally intensive, large latency = lower update rate of display, but I think doable. This is a test you would clearly work out, resolution of FFT in frequency versus update rate, its a tradeoff.
I am not expert here learning myself, I think preferred method here is FFT by far I'll have to make use of transistors aswell.
The difference here is that the FFT takes a number of samples (e.g. 1024) and computes the spectrum from these samples whereas the filters work all in parallel and you get an updated output with every sample.
Thus FFT involves a certain latency (aka delay) between the input and the output of the FFT whereas the filter approach works (almost) instantaneously. When you change the number of bands, you also have to change the center frequency and the bandwidth of each band. This requires a lot of computation and a lot of changing of components
1)So you create an array whose size is a replication of your desired frequency resolution,
and then write a routine to start an Analog to digital 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.
This was an idea
I am going to have a esp32. I want to build a Led matrix of 320 leds 16bands/columns/channels and 20 rows. I will be using 74HC595's, 2 for the columns (thats 20) and 2 for each row there are 20 rows, the columns are updated each 60hz so across the set of 16 there will be 960 pulses of the column cycling frequency and updating the amplitude (how many led's it lights in the y direction) and each bar is represented by 3 decibals. 25 times per second for each band. I am using two RCA jacks (white and red) I do not want arduino code at this point . are you following so far. Frequency Band Analysis: This could be done using an FFT I need to calculate the amplitude of each band I want the bands on the left to be low and basey 32hz and the high pitch to be 16khz
- 53.8 Hz
- 69.8 Hz
- 117 Hz
- 151 Hz
- 196 Hz
- 328 Hz
- 721 Hz
1186 Hz
- 1532 Hz
- 2559 Hz
- 3306 Hz
- 4265 Hz
- 5489 Hz
- 8050 Hz
- 11631 Hz
- 14955 Hz
I want the high of the bars to be moved up in decibels of 3, for each LED in the column
I was thinking that maybe I should use the LM3914 and the pwm pins of the esp32 dev board (there are 16) each pin to represent a column and band width and set the max signal of the LM3914 to 5V so that means that when the signal is at 5v, all the LED's in that column would light.
I must itterate that I'm not using WS2812B LED strip
anybody have any ideas about charlieplexing and multiplexing with the esp32 and the 20 pins I need for the 320 LED's I'm using in my LED matrix which I'm making
Shift register a I kind of understand but don' know how to implement
thats all the info from this thread condenced!