Wasn't quite sure what to call the project, as of yet I don't have an ardinuio nor do I have any experience with one. I was currently looking to make a simple device that can take 8-16 audio channels using a analogue multiplexer, one from the 7400 series is good enough. and using it along with a single adc that converts the analogue input to digital, than send its across an optical fibre to a receiving unit that decodes it back to an analogue signal and on to the correct channel.
The use of this is to take a large number of mic/instruments from one end of a room to a mixer at the back of the room. The reason for first starting to think about it was where we wanted to run regular audio cables there is a mains voltage wire and its causing interference. So the advantages of this system is that it would only require a single optical fibre, since it only needs to send in one direction, its immune to any EMI and multiple audio inputs can be sent down one wire.
I was originally going to use all basic logic components, for the multiplexer, counters, op-amps, etc or possible a system with a micro controller. But I was think it may be easier and quicker to use a multiplexer and an arduino, since it would probably only require a relatively simple program? the cost would be slightly higher, but it also has the possibility of expanse into other features if required, such as more channels, signal processing, etc.
Any suggestions are welcome and people with experience to say whether this is possible or not and or if using the micro controller would be just as effective with lower cost.
Arduino was not design to process audio signals, it ADC can work at most 5KHz, is this ok with your mic/instruments?
Try ARM or DSP processor. Arduino Realtime Audio Processing
Not really, I need something around 40kHz, I was looking and it only has 10bit on the analogue inputs, but for good quality I need something like 16bit. Could I possibly use the arduino with a seperate adc, and then feed the digital input to the arduino, this way I can still use the arduino to run the device. Or do you think the arduino is not designed for this purpose? I just can't find a single solution ic for my problem, most of the devices are designed to be used in sound cards, dvd players, etc. and are controlled by the pc or another IC.
Thanks anyways and I will look up ARM and DSP processors, I still want to get one of these arduinos could be useful for something else.
Or do you think the arduino is not designed for this purpose
No so much not designed but not suitable. 16bits at 40Khz at 16 channels is 16 * 16 * 40 = 10.24 Mega bits per second data transfer. The arduino only runs at 16 MHz clock rate so you have not got nearly enough processing power to attempt this.
these arduinos could be useful for something else.
fair enough, but its not extreme data processing, Its just a single function, that doesn't require that much. 10.24Mbits is nearly 6Mhz less than 16Mhz surely thats enough or am I not account for some kind of processing overheads? Back to the drawing board I think.
I was think simplisticaly based off of the clocking, if the chips is clocked by a 20mhz crystal then it registers any changes on the digital inputs every time the clock goes to a high and so in 1 second it should be able to take 20Mbits. This assumes that the inputs aren't clocked at a division of the 20Mhz. So units in my case where analogous, Hz being bits. Although Im probably wrong since I assumed things here and I don't even have an arduino so youve probably got a better Idea of the capabilities of it.
What I think I will do is buy two arduinos and start from the bottom up rather than going straight to the end product. Start by writing a program that use an external adc and multiplexer, but try 4 inputs sampled at 5khz using 10bit samples. If this is actually possible I can try to increase the the bits and sample rate and then eventually if theres enough bandwidth and processing power increase the number of channels. maby?