Go Down

Topic: improving adc resolution? (Read 913 times) previous topic - next topic

maxlock

Hi There,

I'm designing an altimeter/variometer using the arduino environment. I have a pressure sensor that puts out 0-5v which I need to sample. The onboard 10-bit resolution is not enough however.

Instead of increasing the component count by adding an external adc, is there a valid approach documented anywhere where I might sample 0-2.5volts on one ADC channel and 2.5-5volts on a second channel? I could then do two readings and 'sum' them to produce a 20-bit? The sampling rate can be really slow 0.25sec for example

Any ideas?

-Cheers Max

drd

I just got a SCP1000 that has plenty of resolution, but it's a digital device, so you need to use SPI - I'm working on it.  At maximum resolution, this thing has one bit for each 9 cm of altitude.  Spark Fun has 'em!

D.

maxlock

ahh but that means I have to add a seperate adc :) I'm trying to be both clever and cheap ;)

maxlock

I'm looking at another approach which uses the pressure sensor as part of an RC timing network on a digital input, then using interrupts to time it. However I think this approach would require higher resolution timing than the microcontroller can do for a reasonable sample rate.

inspiration here: http://ludens.cl/Electron/Vario/vario.html

-Max

Daniel

hi

this is kind of a kooky idea, but it might work:
- use a voltage divider applied to the Aref pin to set the range at 2.5V
- at full scale (2.5V), use a digital pin to insert an op-amp into the circuit. the op-amp has the role of subtracting 2.5v from the sensor output.  

The drawback to this is that you need an op-amp and some kind of enable circuit. It is starting to sound like a nice little $3 SPI ADC would solve everything perfectly!

D

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy