Si no es un problema de software, creo que Ignacio tiene razón: probablemente sea un problema de tiempo de muestreo o MUX.
El ADC tiene un condensador de muestreo y retención (a tierra) de aproximadamente 10pF que tiene suficiente carga para una conversión de ADC. Este condensador se alimenta a través de una resistencia por medio del ADC MUX que conmuta desde los distintos pines de entrada. Este MUX también tiene un condensador de aproximadamente 4pF. (No recuerdo los valores exactos de las resistencias).
simular este circuito : esquema creado usando CircuitLab
Si la impedancia de salida de sus fuentes es lo suficientemente baja, los condensadores se cargan (más o menos) instantáneamente y todo esto se comporta como un interruptor a un ADC. Sin embargo, si la impedancia de salida de su sensor de temperatura es alta, la corriente que fluye desde / hacia su sensor de temperatura entre el momento en que cambia el MUX y el momento en que lee el ADC puede no ser suficiente para cargar correctamente los condensadores. lea el mismo valor que antes del cambio de MUX.
Puedes corregir esto mediante:
-
esperando lo suficiente después de cambiar la entrada, para que los capacitores hayan tenido tiempo de asentarse,
-
agregando un condensador entre su pin de entrada de alta impedancia y tierra. El valor tendría que ser mucho mayor que 14pF (en una relación determinada por la precisión deseada), pero lo suficientemente pequeño para que las variaciones de tiempo de la temperatura sean más lentas que la constante de tiempo RC de su capacitor & impedancia del sensor.