I had hope to do the band pass filtering all in software. Doesn't look like anyone has done that yet and not sure if it is possible.
When you want multiple frequency bands, that's normally done with FFT
. There is an FFT library for the Arduino so you don't have to write the code from scratch. I'm sure there are some limitations since the Arduino isn't a particularly fast processor, but I don't know what those limitations are.... You can find Arduino spectrum analyzers that use FFT..
I looked at the white papers for a BA3834 . A webpage claimed it is able to do 7 band pass filters in and serial out which sounds usable but I only see a b and c and assume those are inputs?
I'm not familiar with that one, but it might be similar to the MSGEQ7
, which you can buy from SparkFun. I've never used it, but the MSGEQ7 is a slick little chip. It has one time-multiplexed output, so you can get 7 channels/bands into one Arduino ADC input. Plus of course, it has the frequency-filtering, and it converts the AC waveform to a DC output that's easily handled by the Arduino.