Reading milli voltage

Hi, genius.
I have one question.
Can arduino read the milli voltage?
Thank you for reading my question.
I am waiting your help.

Which range of milliVolt? Which arduino? AC or DC? It's hard to answer without knowing this...

Cheers, Ale.

The Uno's ADC is 10 bit. It can be configured to use the internal 1.1V reference as full-scale, which
gives about 1mV per division resolution.

In general to measure very small voltages you would amplify them first.

I sense the xyproblem. What are you trying to do?

my arduino is UNO and input voltage is DC.
Range of milivolt is 0.5mv~1.5mV.

So, no way to read it directly with arduino, you need an amplifier. If you explain what are you trying to do became easyer for us to help.

Cheers, Ale.

I want to read T type thermocouple voltage.
I don't use reference thermometer i will input room temperature in my code.
You guys are saying UNO arduino can read 1~5V.
And Can UNO read point like a 1.564V?
Thank you for reading my question.

Hi,
You need this,

The IC canbe configured for T-Type.

Tom... :slight_smile:

pokipoki:
I want to read T type thermocouple voltage.
I don't use reference thermometer i will input room temperature in my code.
You guys are saying UNO arduino can read 1~5V.
And Can UNO read point like a 1.564V?
Thank you for reading my question.

xyproblem. You should have been asking for a good thermocouple chip on a breakout board. Standard
item.

I don't use reference thermometer i will input room temperature in my code.

For "room temperature", I'd recommend an [u]LM34 or LM35[/u]. These things are cheap, accurate, and easy to use. Or, you may be able to get by with a thermistor.

Thermocouple Module

Thank you guys.
I know there are many good Thermocouple modules but I am trying to make temperature measurement system only using Arduino Uno and Thermocouple.

pokipoki:
Thank you guys.
I know there are many good Thermocouple modules but I am trying to make temperature measurement system only using Arduino Uno and Thermocouple.

Hi there,

Well, you are asking a little too much from the Arduino then unless you can meet a noise specification for oversampling. Otherwise at the very least, you need an amplifier to amplify the output of the thermocouple. Here's why...

At 400 deg C you get an output of about 21mv, and with the Arduino reference of 5v that gives you roughly temperature readings between 0 C and 400 C of:
0, 100C, 200C, 300C, 400C,

so you wont be able to tell the difference between 100C and 140C for example.

So you can do it, but it would be one of the poorest measuring systems for temperature.

If you change the Arduino reference to the 1v reference, you'll get better resolution but not much. For example, between temperatures of 100C and 200C you'll read:
100C, 120C, 140C, 160C, 180C, 200C

and that's under ideal conditions and careful calibration. So now it's a little better but you still wont be able to tell the difference between 120C and 130C for example. It will only read 120C or 140C for an actual temperature of 130C.

So you see the problem now. The resolution wont be good enough unless you are happy with that very very poor result.

Now add one low input offset amplifier and you've got an entirely different story. Amplify the signal by only 10 and now you can read (approximately):
100C, 102C, 104C, 106C, etc., from 0C to 400C.
So now it becomes apparent that to get a practical reading you need to add something to the Arduino. That's why everyone here suggested you use a ready made solution.

If you amplify by 20, then you can get readings like this:
100C, 101C, 102C, 103C, etc., so now you are able to get 1 deg C resolution approximately. That's often enough, but if you want better then you will have to amplify more or go to one of the ready made solutions.
If you amplify by 200 (which takes some care) then you get:
100.0C, 100.1C, 100.2C, 100.3C, etc., under ideal conditions and will probably limit the top end of the measurement range.

The choice is always yours what way you want to do it, but you most likely cant put up with the results from the Arduino alone without at least the addition of an amplifier.

There is one other possibility that i can think of at the moment, and that is the use of oversampling. If you were to oversample all the measurements by a factor N then you might improve the resolution of the ADC enough to get better readings with the 1.1v reference such as:
100C, 102C, 104C, 106C

without using an amplifier, but you'd have to be able to ensure that there is enough noise in the system to meet the specifications required for oversampling. If not, your readings would truncate back to:
100C, 120C, 140C, 160C, etc., or even 100C, 200C, 300C, etc.

To understand this more thoroughly you should read up on oversampling.
My guess is that this would be asking for too much from oversampling theory too, but it should be looked into more carefully before making a decision. Of course you also have to consider what your measurement system can put up with in terms of accuracy or the lack of it.

Take a look at instrumentation amplifiers, try to find one with a low input offset.

but I am trying to make temperature measurement system only using Arduino Uno and Thermocouple.

Is this a school assignment requirement ?

pokipoki:
Thank you guys.
I know there are many good Thermocouple modules but I am trying to make temperature measurement system only using Arduino Uno and Thermocouple.

Get 20 thermocouples, connect them in series, use analogReference(INTERNAL).

Get 20 thermocouples, connect them in series, use analogReference(INTERNAL).

Hardware averaging ?

A said in series, not in parallel.

It is still averaging. The DSP folks where I work don't bother with the division when they are averaging, they just scale the expected value.

MarkT:
Get 20 thermocouples, connect them in series, use analogReference(INTERNAL).

That's a thermopile.

My scheme is like amplifying, not averaging. I was tongue-in-cheek, BTW.