Lecturas ruidosas de ADC

Entonces estoy luchando con un problema, estoy seguro de que alguien lo habría enfrentado. Tengo un escudo RAMPS con un arduino Mega funcionando como el cerebro de mi impresora

Las lecturas de temperatura del termopar del calentador son ruidosas. El proceso de ajuste está en marcha desde el último par de horas.

1) Cuando el atmega2560 se alimenta desde el USB del cargador del teléfono, el Vcc es de 5,01 V. La temperatura es muy estable y muestra lo mismo que mi temperatura ambiente leída en un termómetro de mercurio, que es de 29 °C.

2) Cuando se desconecta el usb y se introduce un suministro de 12 v desde las rampas, el voltaje es estable a 4,98 v. Las lecturas de temperatura de Marlin varían de 29 °C a 34 °C y cambian cada segundo. Cuando se alimenta con 12v de un bloque de alimentación de 20a, ¿por qué debería variar tanto la temperatura?

En realidad, no existe una tabla de temperatura para un termopar. La temperatura está relacionada linealmente con la salida del chip TC ad595. ¿El ruido del suministro de conmutación está acoplado de alguna manera a los 5v, de modo que la referencia adc es ruidosa? ¿La adición de un condensador a la salida de 12v en el riel de 5A limpiará esto?

Hmm... el ADC en el ATMega2560 tiene una precisión nominal de 3LSB con una referencia de 4V, lo que se traduce en ~4C. El Arduino por defecto usa una referencia de 5V, que supongo que tiene aproximadamente el mismo error. Dependiendo de qué chip AD595 haya, podría haber otro error de precisión de hasta 3C, para un máximo de 7C. Sin embargo, no encontré ninguna información sobre las características de ruido de ninguno de los dispositivos. Suponiendo que se está apegando a temperaturas inferiores a 100C, ¿ha intentado cambiar la referencia de la MCU al 1.1V interno?
¿Por qué no intentar agregar un capacitor de +5V a GND y ver qué sucede? Ordene la magnitud 100nF, 1µF, 10µF. Agregar un capacitor en paralelo a los 12V es de poca utilidad si la corriente de salida es de hecho cerca de 5A, el capacitor requerido sería grande y costoso, mientras que el pequeño costaría un par de centavos.
¿Has probado a puentear las entradas con un corto? Esto debería convertir el chip en un termómetro. Además, el rechazo de la fuente de alimentación es de 10 mV por voltio en la línea de alimentación; esto es bastante cuando se considera que la línea de alimentación podría estar moviéndose hacia arriba y hacia abajo solo unos pocos milivoltios.
Intenté cambiar la referencia a 2.56v internos, encuentro la misma temperatura inestable, todo lo demás sigue igual. Probaré los condensadores en la línea de 5v. Cortar las entradas lo cambia a un termómetro.

Respuestas (1)

Intente desacoplar el capacitor entre VDD y el pin de tierra del ADC y, en segundo lugar, intente conectar el filtro (o puede ser un capacitor) en el pin analógico.