I have been trying to built an thermocouple base temperature monitoring system which can measure negative temperatures (say about -150 C). I previously have used max6675 but later on I found out it can measure only from 0 to 1024 C. So I want to make my own thermocouple Cold junction compensation but using LM35's temperature as its reference temp and this can work for both high and low temperatures(say -100 c and 1000c ) and last but not the least I want to feed it to a Arduino and I don't want to use AD595 or AD859x series chips or breakout boards. So how can this cold junction compensation can be achieved? if anyone knows then please help. Thanks in advance.
an example below for J sensors was done by TI.
http://www.ti.com/lit/an/sloa204/sloa204.pdf For cold-junction temperature measurement, an IC-based analog output device (such as the LM35) is chosen. This device has linear output with a 10-mV/ºC slope.
The thermocouple voltage gives you the temperature delta between the hot junction and the cold junction.
The cold junction thermometer gives you the cold junction temperature.
Use simple arithmetic to give hot junction temperature = cold junction temperature + delta temperature.
A thermocouple gives you a voltage that is a function of the temperatures at both the "hot" (which could actually be cold) junction and the "cold junction". The cold junction is where the two dissimilar alloy wires are connected to copper.
If the cold junction is held at a constant 0°C you can find the temperature as a function of the voltage from a polynomial or lookup table T = f(Vtc) where f is a nonlinear function.
It's obviously inconvenient to have an ice bath to hold the cold junction at 0°C, so measuring the cold junction temperature and compensating is a practical approach.
To do this accurately, you need the inverse nonlinear function Vtc = f'(Tcjc)- also with reference temperature of 0°C. You then add the resulting voltage to the measured voltage so you have:
T = f(Vtc + f'(Tcjc))
For the fully compensated and linearized temperature.
For example, suppose you have a copper-constantan thermocouple and the CJC temperature reads as 21°C and Vtc = +6.00mV.
Vtc = f'(21°C) = 830uV.
To be clear, 830uV is the voltage you would read if the hot junction was at 21°C and the reference or cold junction(s) were at 0°C.
T = f(6.00mV + 0.83mV) ~= 152.5°C.
If you're unconcerned about accuracy, you can just do a linear approximation around the expected CJC temperature but that's not good enough for many applications. The output in mV/K can vary significantly over the full range of a thermocouple.