Puede usar la fórmula ( ecuación de Steinhart-Hart ). Sí, implica el cálculo de funciones trascendentales, pero es una línea con cualquier compilador de C.
Por otro lado, simplemente puede utilizar una tabla de búsqueda. Digamos que tienes un ADC de 10 bits, que tiene solo 1024 códigos de salida distintos. Simplemente precalcule la temperatura para cada uno de los 1024 códigos una vez en una PC usando su lenguaje de programación favorito y escupa una tabla que puede incluir en su programa de firmware.
Si tiene un ADC de N bits de muy alta resolución, puede tener una tabla más pequeña que los elementos \ $ 2 ^ N \ $ e interpolar usando interpolación lineal simple, splines cúbicos o cualquier otro método que se adapte a su gusto.
Edite: Aquí hay una hoja de datos adecuada para un termistor. Puede encontrar los parámetros Steinhart-Hart (extendidos) en la hoja de datos (A, B, C, D) y simplemente enchúfelos en la ecuación para encontrar la temperatura para cualquier resistencia dada.
Para encontrar una resistencia a partir de un código ADC ratiométrico, sabes que Vout = Vref \ $ \ cdot \ $ Rt / (Rt + 3K \ $ \ Omega \ $).
Resuelve esto para Rt (Vout). Sabe que el código será un Código = \ $ 2 ^ N \ cdot \ frac {V_ {OUT}} {Vref} \ $ para un ADC de ratiometría unipolar, por lo que puede resolverlo por Vout (Código) y sustituirlo por Rt ( Código). Luego use Steinhart-Hart para calcular T (Código). Muy simple.