use arduino as super sensitive voltmeter? (millivolts)

I have a sensor (k type thermocouple), the output ranges from 0 to 55 millivolts.

On the thermocouple I connect the cathode to ground and the anode to an analog in pin, then do a simple analogRead() on that pin and direct the reading to the serial monitor. (I think this is correct?)

Anyway, it reads nothing but 0. (when I disconnect the Thermocouple, it reads random values for signal noise, but when I hook up the TC...it drops back to 0,0,0,0)

I think this is because at room temp, the output is in the 1-2 millivolt range...and that is too small for analogRead to pick up?

Is there some way to configure the arduino to accurately read voltages in the 0-55 millivolt range?

(I'm trying to avoid using a max amplifier chip if I can)

Try using the internal 1.1V reference instead of the 5V Aref.
Then 1 bit will equal 1.1/1023 = 1.08mV instead of 5/1023 = 4.88mV.

CrossRoads:
Try using the internal 1.1V reference instead of the 5V Aref.
Then 1 bit will equal 1.1/1023 = 1.08mV instead of 5/1023 = 4.88mV.

Well...tried that, but it didn't work. Here is my code.

Have the thermocouple anode going to analog pin 0 and the cathode going to ground.

void setup() {
  Serial.begin(9600);
  analogReference(INTERNAL);
}

void loop() {
  float thermocoupleValue = analogRead(A0);
  Serial.println(thermocoupleValue, 5);
  delay(1000);
}

reads noise at first, till i hook up the TC, then drops to 0
805.00000
947.00000
578.00000
780.00000
523.00000
467.00000
816.00000
475.00000
632.00000
0.00000 <<here is where I connect thermocouple
0.00000
0.00000
0.00000
0.00000
0.00000

Got a spec on the thermocouple?

You really need a thermocouple amplifier. Something like this:

Then you can follow that with a standard op-amp amplifier, but I wouldn't try to amplify the raw thermocouple signal itself.

--
The DIN Rail Mount kit for Arduino: quickly attach your Arduino to standard DIN rail

CrossRoads:
Got a spec on the thermocouple?

yes, sir..

RuggedCircuits:
You really need a thermocouple amplifier.

yeah...well if it comes to that I'll use the MAX6675, but the freaking thing is $12 bucks and its only available in SMT. I'mn pretty bad at regular through hole soldering...let alone SMT. (the 6675 on a breakout board is over $20)

I was really just trying to crudely replicate the functionality of the max chip using code instead of the chip. I can use a thermistor for the cold junction compensation reading.

I know it won't be as accurate as with the chip...I'm just wanting to figure out how accurate I can get using code and a thermistor ($1) instead of the max chip ($12)

I could do average of readings over time to mitigate the noise readings...

Check out page 7 of the datasheet

Get some op-amps from www.dipmicro.com and duplicate the input buffer functionality, feeding the arduino analog pin.

CrossRoads:
Check out page 7 of the datasheet
http://www.sparkfun.com/datasheets/IC/MAX6675.pdf
Get some op-amps from www.dipmicro.com and duplicate the input buffer functionality, feeding the arduino analog pin.

man, you have to be the highest ratio of knowledge:helpful on this board.

I might need some help selecting the op amps, the first one (A1) is a special low noise amp (probably one of the maxim-ic products)

It would be great if they would tell us which of thier opamps they use on the 6675 chip...then I could just buy those!

Go thru the JFet op amp datasheets and find one with low Equivalent input noise voltage, expressed as nV/Hz.

This may fit your budget better if you are willing to do some soldering:
http://code.google.com/p/tc4-shield/

Available with the SMDs pre soldered if you prefer.

I expect the new shipment of bare PCBs any day.

Jim

3z33:
I might need some help selecting the op amps, the first one (A1) is a special low noise amp (probably one of the maxim-ic products)

I've had some success with LT1007 and LT1037 amps. But the MCP3424 ADC works better, IMO, than the analog approach. The MCP9800 is a nice I2C temperature sensor to use for cold junction compensation.

The open source libraries for the TC4 project include one for type K linearization.

If you use the MAX6675 be very cautious about the effects of self heating on it's CJC results. Test with a loop of copper wire in place of the thermocouple and watch the reading rise for several seconds right after power up.

Jim