1. Измеряете напряжение на термопаре. 2. Измеряете температуру холодного спая.
3. Преобразуете температуру холодного спая в напряжение.
4. Вычитаете из напряжения термопары это напряжение.
5. Преобразуете полученное напряжение в температуру.
Пункт 3 можно делать без линеаризации, так как обычно температура холодного спая меняется в узких пределах. Я брал постоянный коэффициент 40.0 мкВ/°C для термопары K-типа.
Пункт 5 нужно делать с линеаризацией по таблице. Таблица должна содержать значения температуры для разных значений напряжения. Находите, между какими табличными отсчетами попадает напряжение и линейно интерполируете. Я использовал вот такую таблицу:
//Таблица линеаризации термопары K-типа. В таблице даны значения //температуры в десятых долях градуса в зависимости от напряжения. //Диапазон температур -82.4...+1346.0°C. //Шаг напряжения - 1 мВ, диапазон -3..+54 мВ const int __flash Lin[TC_POINTS] = { -824, -531, -259, //-3..-1 мВ 0, 250, 495, 736, 976, 1220, 1466, 1715, 1965, 2215, // 0.. 9 мВ 2462, 2707, 2950, 3190, 3430, 3668, 3906, 4143, 4378, 4614, //10..19 мВ 4849, 5083, 5318, 5553, 5787, 6022, 6258, 6494, 6731, 6969, //20..29 мВ 7208, 7449, 7690, 7933, 8177, 8423, 8670, 8919, 9169, 9421, //30..39 мВ 9674, 9929, 10186, 10445, 10706, 10969, 11234, 11501, 11772, //40..48 мВ 12045, 12321, 12600, 12883, 13169, 13460 //49..54 мВ };Для генерации таблиц есть вот такой ресурс: http://www.minco.com/tools/sensorcalc/