Improve ADC Resolution by using 2 pins ?

hi everybody !

I'm using an arduino duemilanove to read out the Control Voltage output from an electronic music instrument.

Unfortunately, the 10-bit Resolution of the arduino's ADC is not enough and I don't want to add an external ADC.

So here's my question:
Is it possible to use two A/D pins for one input voltage in order to get a better (bit) resolution ??

I would scale the input Voltage to 10V, connect it to AIN1 and connect a -5V biased signal to AIN2. Then simply add the digital values together...

Will 10V to Analog In damage the board?

thanks for any advice!

Will 10V to Analog In damage the board?

As far as I know YES!

The arduino has only one analogue converter, and yes 10V will damage it.

You'll end up with an effectively slower sampling rate, but averaging will increase the effective number of bits.

You might want to go over this app note: Smart | Connected | Secure | Microchip Technology

Hey thanks James. I could use this method for some of my projects.

This document is not easy to follow but I think it tells us:

Your error bar goes down to 1/sqrt(n) of the error bar of a single measurement as you average n numbers. To apply this to discrete binary numbers, you gain one bit of resolution every time you reduce your error bar to 1/2, by sampling 4 times, sum them up and divide by only 2, since integer can't hold a bit after decimal. Am I right?

For the decimation, I kind of get it too. But I'll start with oversampling first. :slight_smile:

You might want to go over this app note: Smart | Connected | Secure | Microchip Technology

Sounds interesting, If you have sample code please share [would be a nice playground article] as this question is seen more oftenon the forum.

This is a very old technique I know by the name of dithering. Basically by adding noise you make the reading jitter. Then by averaging you can get a finer resolution because if a voltage is close to a threshold between one reading and the other it will be nudged more often over the threshold than a voltage that is slightly lower.
However it relies on noise being of the same order of magnitude as the steps in the A/D. Quite frankly if you need an extra few bits I think you would be better off getting an external A/D.

The arduino has only one analogue converter [...]

Oh...I didn't realize, that the analogue ins are multiplexed.
So, "combining" the data of two pins would be rather ridiculous.. :o

At what frequency does the control voltage of the musical instrument change? Is it the actual sound, or something else?

What resolution (number of bits) do you need?

A duemilanove is only good for a signal with the highest component a tad under 4.8KHz (the Nyquist limit says divide the sample frequency by very slightly more than 2, and an Arduino ADC runs at 9.6K samples/second), and depending on what you want to do, you may need many more samples.

Oversampling using the 'noise-dithering' technique to give two more bits of resolution would reduce 4.8KHz by 16x. So the signal frequency would need to be less than 4.8KHz/16 = 300Hz, i.e. D' above middle C.

if you needed more than 2 samples to reconstruct a signal, it will be even worse.

Summary - go with Grumpy_Mike's advice

So, "combining" the data of two pins would be rather ridiculous

No because it would be measuring two differently conditioned signals. However original advice still stands.