Need some advice on multiple ADCs (lack of)


I had this idea for a project where bunch of microphones (6-10) are connected to Arduino board and it's sending volume levels to PC via USB. Pretty soon I've found out it won't work with more than 1 mic due to my Arduino board having single ADC multiplexed between inputs.

Is there some other Arduino board model suited for this or an extension shield I could use?
Or maybe someone can recommend other noob friendly platform?


You could use a Mini per Mic or make a standalone AVR-duino per Mic for less than $5 ea then put them all on an SPI bus to the Arduino board.

How are you checking volume?

How are you checking volume?

Just analogRead with some delays between switching inputs to stabilize value, don't have code handy.
Worked fine with single mic but as I've added more I got weird values and found out on this forum this is effect of switching analog inputs. Then I've tried some tricks to speed it up but in the end it's not really usable for my purpose.

Suppose that you feed the rectified mic signal to a circuit that averages "volume" as a voltage to read. You would only have to check that value occasionally, 10 per second per channel. A single Arduino can easily check and report ADC in less than a millisecond. Just don't run it faster than the report takes to get sent out on serial.... my IDE allows 2000000 baud. :slight_smile:

Circuit I see is mic to rectifier to BJT to the analog pin with a capacitor to ground attached and with a resistor attached to ground as a pulldown.

Arduino Micro has 12 analog pins. If you checked 1 every 10ms, you would check 12 pins each 8x per second.

It's for a midi 'drumkit', need to detect volume change at the moment it happens in order to be usable.

When you look so fast you hit spots on the frequency curve then you have to get a LOT of samples to begin to guess at the real volume and that doesn't happen instantly, However if that's how you want then a DSP is more suited to the job.

I have made a program on PC side that reads the values from serial port, does some simple calculations and triggers midi note, everything works fine with single mic, I even get some hit strength/velocity from the signal. I recon it should be ok as it is if only I can get more analog input reads without much more delay.

I've found this MCP3208 chip that looks promising and there are arduino compatible libs for it on github:

Never done SPI communication tho, don't know what's the time overhead when reading from SPI or if this chip is also slowing down when reading from multiple inputs..
and possibly I'd need two of those connected to single arduino