Olá Styg.
Com relação aos termopares.
1 - Um termistor não possui uma curva (Resistência X Temperatura) linear. Ela é exponencial (do tipo RT = Ra * e elevado a[ k*T]). Ra é o valor da resistência a 25ºC. k é uma constante e T é a temperatura a que o termistor está submetido. RT é o valor da resistência para a temperatua T). Mesmo que você use as compensações convencionais para o termistor (termistor em paralelo com um resistor, que possui um valor igual ao valor do termistor para uma temperatura média da faixa do ambiente), ainda assim não torna a função linear. Então uma solução com termopar vai acrescentar erro de compensação.
Eu usei um LM35, que possui uma relação (Tensão X Temperatura) linear, e o coeficiente angular bem próximo a 10mV/ºC. Mesmo assim, dependendo da sua precisão, pode ser necessário uma ajuste com um potenciômetro.
2 - O termopar também não apresenta uma função Tensão X Temperatura, linear.
Por exemplo. Se você ajustar o ganho do operacional que vai ser usado para que a faixa de tensões do termopar coincida com a faixa de tensões do CAD, você estará amplificando a curva do termopar. Como ela não é linear, vai propagar o erro. Se a temperatura dobrar, a tensão não será o dobro. Vai ter que fazer uma compensação dessa curva para torná-la uma reta (ou linearizar a curva). Existem dois métodos para isso. O que usa memória, por meio de uma tabela. Imagine dois bytes para cada valor inteiro de temperatura. Para a faixa entre 0ºC e 500º, seriam necessários 1000 bytes. O outro método é o que não usa tanta memória, mas precisa usar uma equação (polinomial ou outra qualquer, que os centros de referência calcularam). Esse método exige que o firmware execute essa equação. Isso normalmente leva a um uC um pouco mais caro.
Eu usei um terceiro método em um projeto que eu fiz. Em vez de gastar memória e usar equações polinomiais, eu peguei cada trecho da curva do termopar e transformei em pedaços de reta. A dificuldade foi encontrar os valores dessas retas (coeficientes linear e angular). Com isso precisei apenas das 4 operações (+, -, x e /). Também saí pela tangente com relação aos tipos de dados. Não usei ponto flutuante, apenas inteiros. O erro introduzido no cálculo da temperatura, usando valores inteiros, foi inferior a um grau. O erro introduzido devido as aproximações da curva por retas, também foi menor que um grau.
Acesse o endereço abaixo. Lá tem muita coisa sobre isso.
http://www.forumnow.com.br/vip/mensagen ... 09&nrpag=1
Finalmente.
Você pode aceitar um erro teórico de até + ou - 5 graus, para uma faixa de temperatura, entre 0ºC e uns 1050ºC, com um termopar do tipo k. Essa é a não linearidade introduzida pelo termopar do tipo k, para essa faixa. Não há sensor linear!!!
Tem um CI, que foi feito para o termopar do tipo k, da Maxim (MAX6675). Ele já tem incorporado muitas coisas, porém não compensa a curva do termopar. Mas como ele é para a faixa de 0ºC a 1024ºC, então o erro fica em +5ºC e -5ºC. Eu procurei por ele mas acabei desistindo. Com esse custo eu fiz o meu projeto com compensação do erro do termopar. O CI dá uma precisão incrível, porém se o termopar introduz um erro de linearidade, não adianta muito. É como uma corrente com elos diferentes. O elo que corresponde ao CI é bem forte, mas o elo da curva do termopar é menor. O CI não introduz quase erro, mas o termopar sim. Se puxar, vai rebentar no elo mais fraco (o erro continua entre +5 e -5)
No endereço que te passei, eu calculei esse erro intrínseco e plotei. Lá aparecem os +5 e -5ºC.
Editado:
Se usar um operacional, tem que se preocupar com a tensão de offset. Tem que ter um ajuste de offset.
Espero ter ajudado.
Boa sorte.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain