Electronic – Why is this MAX6675 temp. sensor so wrong

thermocouple

I recently bought this MAX6675 sensor with a K-type thermocouple, and I'm wondering what's wrong with it. I'm been testing it against a DS18B20 based sensor (metallic tip), and MAX6675 is giving me readings
way off the mark.

Chinese sensor

I tested it putting both sensors together against a hot plate and taking readings every 15 seconds. Plate start from room temperature. Previously, sensors were bring to start temp by immersing it in ice water.

test

Connections:

DS18B20

- Signal to Arduino Pin 8.
- Ground to Ground.
- Vcc to Vcc (plus a 4.7K resistor between Vcc and Ground).

MAX6675

- SCK to Arduino Pin 4.
- CS to Arduino Pin 5.
- SO to Arduino Pin 6.
- Vcc to Arduino Pin 3 (HIGH).
- Gnd to Arduino Pin 2 (LOW).

This is the result from a run test (temps in °C):

Test results

Basically, the greater the temp, the greater the difference between MAX6675 reading and "true" temp (as defined by DS18B20). In previous tests, when real temp reach 100°C, MAX6675 was giving ~150°C readings. This is not a offset or noise, but something else, almost exponential.

What is wrong here? Bad thermocouple? Throw it away and buy something else?

Best Answer

As user Totoxa wrote, the problem is that the original thermocouple wasn't a K-type one. I bought a new thermocouple, from another on-line store and voila!, it gives the correct reading from ice to boiling water. I only replace the thermocouple; chip, connections and sketch are the same.