Uso de un termopar de tipo K ADC para medir una sonda de tipo E

1

Actualmente estoy tratando de medir la temperatura de un soldador comercial. Después de darme cuenta de que el sensor de temperatura en el soldador es un termopar, pedí una placa ADC de termopar tipo K, más específicamente una placa de separación basada en MAX6675. Si bien puedo obtener lecturas de temperatura del chip, son demasiado altas en comparación con la temperatura real. Por ejemplo: estoy obteniendo una lectura de aproximadamente 550 ° C, cuando en realidad el hierro tiene una temperatura ligeramente inferior a 300 ° C.

Mirando esta tabla en la Wikipedia, creo que mi plancha podría ser un termopar tipo E. enlace

Ahora para la pregunta final: ¿Es posible / factible convertir / calcular la temperatura correcta (de una sonda de tipo E) a partir de la lectura de ADC del termopar tipo K? ¿Alguien ha hecho esto en el pasado? Realmente no necesito una alta precisión absoluta, de todos modos, + -10 ° C estará presente debido a la regulación PID.

Mi última solución sería pedir / muestrear un MAX31855E-chip de Maxim y luego intercambiar el chip en el tablero. Realmente no quiero hacer eso, porque el MAX31855E no es tan fácil / barato de obtener.

Información adicional: estoy usando un microcontrolador ATmega328, el firmware está escrito en C, por lo que cualquier código de ejemplo también sería muy apreciado.

    
pregunta Tobias Mädel

2 respuestas

1

Así es como lo veo: -

  • Tiene un TC de tipo K conectado a una interfaz de medición adecuada
  • Lo anterior le está diciendo a 550 grados centígrados
  • Su TC en su soldador le indica aproximadamente 300degC cuando está conectado a su "interfaz de medición adecuada"
  • Ha concluido que el TC en su hierro es de tipo E.

Mirando la gráfica de arriba, usted esperaría que un TC E produzca un voltaje mayor que un TCK para la misma temperatura, por lo que debe preguntarse si sus creencias están fundamentadas.

EDITAR sección

Ahora parece que el OP está utilizando el TC interno conectado a un circuito de interfaz de tipo K y esto tiende a justificar que el dispositivo interno más probable es un TC de tipo E. Los gráficos son bastante lineales y ambos caen a través de 0 uV y 0 grados centígrados, por lo que una aproximación de primer orden es tratar la conversión como lineal. A 1000 ° C, un tipo K produce 41 mV y un tipo E produce aproximadamente 76 mV.

Si desea un polinomio más preciso, intente con ESTA hoja de datos: -

    
respondido por el Andy aka
0

Ahora he encontrado una solución al problema.

double TypeEVoltageToTemperature(double voltage)
{
    return
        1.7057035 * pow(10, -2) * voltage +
        -2.3301759 * pow(10,-7) * pow(voltage, 2) +
        6.5435585 * pow(10,-12) * pow(voltage, 3) +
        -7.3562749 * pow(10,-17) * pow(voltage, 4) +
        -1.7896001 * pow(10,-21) * pow(voltage, 5) +
        8.4036165 * pow(10,-26) * pow(voltage, 6) +
        -1.3735879 * pow(10,-30) * pow(voltage, 7) +
        1.0629823 * pow(10,-35) * pow(voltage, 8);
}
double TypeKTemperatureToVoltage(double temperature)
{
    double precal = (1.185976 * pow(10,2)) * pow(2.7182818284590452 ,(-1.183432 * pow(10,-4)) * pow((temperature - 126.9686),2));

    return  (-1.7600413686 * pow(10,1))     * pow(temperature,0.0) + precal +
            ( 3.8921204975 * pow(10,1))     * pow(temperature,1.0) + precal +
            (1.8558770032 * pow(10,-2.0))   * pow(temperature,2.0) + precal +
            (-9.9457592874 * pow(10,-5.0))  * pow(temperature,3.0) + precal +
            (3.1840945719 * pow(10,-7.0))   * pow(temperature,4.0) + precal +
            (-5.6072844889 * pow(10,-10.0)) * pow(temperature,5.0) + precal +
            ( 5.6075059059 * pow(10,-13.0)) * pow(temperature,6.0) + precal +
            (-3.2020720003 * pow(10,-16.0)) * pow(temperature,7.0) + precal +
            ( 9.7151147152 * pow(10,-20.0)) * pow(temperature,8.0) + precal +
            (-1.2104721275 * pow(10,-23.0)) * pow(temperature,9.0) + precal;
}

Esta solución lleva alrededor de 80,000 ciclos en un ATmega328. (5 milisegundos por ambas llamadas).

¡Gracias a @Toble_Miner y @Andy aka por su ayuda para solucionar este problema!

    
respondido por el Tobias Mädel

Lea otras preguntas en las etiquetas