I’m using a MCP9600 breakout board connected to Arduino to read temperatures. My goal is to calibrate the sensor and get a high accuracy as possible. According to the datasheet, the typical accuracy is 0.5 C. My problem, however, is that the precision seems to be off, when I connect an instrument used for calibration, which outputs a voltage corresponding to a specific temperature (for type K) I get different readings between reboots. For example, I apply a voltage corresponding to 150.0 C, I get 148.88 C as output from sensor, I reboot with same precise input, and I now read 149.21 for example (the difference between readings with same input can be as large as 1.5 C).
I am using 18-bit ADC and exponential moving average filter with n = 3. Is there any way I can increase the precision of these readings so I can calibrate the sensor and achieve higher accuracy?