Go Down

Topic: Measuring very very small voltage fluctuations? (Read 12313 times) previous topic - next topic

MikeX

I have a DC voltage (1v) that I would like to log using an Arduino. The voltage hovers at the same point, fluctuating by a few millivolts. What would be the easiest way to interface this voltage to be measured by the Arduino's 0-5v input? 8)

cmiyc

#1
Jun 23, 2012, 12:08 am Last Edit: Jun 23, 2012, 02:10 am by James C4S Reason: 1
You didnt give any real details to what you are doing.  So one option is you could use the analog input.  Set the ADC's reference to the 1.1V INTERNAL reference.

Read up on analogReference() and analogRead()

edit: thanks for catching my typo MarkT
Capacitor Expert By Day, Enginerd by night.  ||  Personal Blog: www.baldengineer.com  || Electronics Tutorials for Beginners:  www.addohms.com

MarkT

approximately 1.1V, not 1.1mV - won't help much.

Are you only interested in the variation, not the DC value?  If so then you can couple the signal with a capacitor to an opamp gain-block and then sample that.
[ I DO NOT respond to personal messages, I WILL delete them unread, use the forum please ]

wanderson

You have to decide what you are more interested in, the absolute voltage or the "noise".  Of course you could use two adc pins to measure both.  Measure one directly, and then feed the other to an op amp via a capacitor to measure the noise after amplifying it.

Docedison

Are you more concerned with the small fluctuations or the absolute value or just it's presence? Some more information would be good...

Doc
--> WA7EMS <--
"The solution of every problem is another problem." -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

MikeX

I'm more interested in the relative fluctuations, as it's a sign wave. I would like to capture the wave with enough resolution to plot it graphically. XD

Docedison

What frequency? is the sine wave and how much data will you want to return?

Doc
--> WA7EMS <--
"The solution of every problem is another problem." -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

MikeX

Around 300hz and under. I'm trying to get enough vertical resolution to be able to graph. Horizontal resolution should be plentiful.

Docedison

well I guess one more question, How much resolution and what are you going to do with the data as you can get. The period is 3.3333... mS lots of time to measure but are you trying to get cycle by cycle data or measure the amplitude of every sine wave and mark or store or are you looking to measure the signal on a more relaxed basis. at 100 uS / sample that's a lot of data/cycle, about 33.+ samples a second.

Doc
--> WA7EMS <--
"The solution of every problem is another problem." -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

Grumpy_Mike


MikeX

Doc, I would like to be able to do math analysis on the data, primarily getting the frequency at any point in time. It will vary between 0 and 300hz. I'd say a vertical resolution of about 30 steps would be adequate.

Grumpy_Mike, so if I have a source at +1v, that fluctuates by 0.01v, and I use a voltage divider to bring that down to 0.02v. Then set my ref voltage to 0.03v. Does that mean that I will be able to measure the fluctuations at a resolution of 0.00003v? I think my theory is right, the question is how will it work in practice? How low can my ref voltage go with decent output?

majenko

Keep your ref at 5V.  Connect the incoming signal to a capacitor, then that to an Op-amp.  Set the op-amp up so that it swings around a 2.5V virtual ground, and enough amplification so your tiny variations are now around +/- 2V.

Simplest arrangement is an inverting amplifier.  50/50 voltage divider on to non-inverting.  Signal via capacitor and resistor Rin to inverting.  Output through resistor Rf back to inverting.  The gain is -(Rf/Rin).



Note that the values then sampled by the ADC will be backwards, so subtract them from 1024 to get the real values.

wanderson


Doc, I would like to be able to do math analysis on the data, primarily getting the frequency at any point in time. It will vary between 0 and 300hz. I'd say a vertical resolution of about 30 steps would be adequate.

Grumpy_Mike, so if I have a source at +1v, that fluctuates by 0.01v, and I use a voltage divider to bring that down to 0.02v. Then set my ref voltage to 0.03v. Does that mean that I will be able to measure the fluctuations at a resolution of 0.00003v? I think my theory is right, the question is how will it work in practice? How low can my ref voltage go with decent output?


A reference voltage has to be stable, so a voltage divider on your Vcc doesn't really cut it.  In post #3, the suggestion is to use the internal 1.1V reference which would give a resolution of 1.1/1024 or about one milivolt of resolution.  If that isn't enough than you can either obtain a small (0.1 - 0.01V) precision voltage reference device (which I don't know if they exist) or you can amplify the voltage variance, since as you mentioned you don't need to know the base (1V) voltage...  If you used a two stage operational amplifier to obtain a 100 amplification (easy to do) fed through a capacitor you would have a resolution of about 10 nanovolts...

If you don't want to wire your own op amp, Sparkfun, has a predone breakout with a 100 amplification; http://www.sparkfun.com/products/9816

Magician

#13
Jun 23, 2012, 05:19 pm Last Edit: Jun 23, 2012, 06:09 pm by Magician Reason: 1
Reference voltage can't be set below 1.0 V.
Few millivolts is about voltage provided by electret mic. Search for mic amplifiers, some of them pretty simple, 1-2 transistors + few R & C

MikeX

wanderson, I had a brain freeze, and forgot that putting a voltage divider on the signal would also divide the swing  :smiley-mr-green: So it doesn't bring me any closer. 1mv resolution would indeed be too course.

Go Up