Preview build — page text is a draft awaiting human review. Code badges come from real compiles. The flasher is real but not yet hardware-tested; the Playground is still a preview.

MAX6675 thermocouple with Arduino Uno — 0 to 1024 °C readings

Wire a MAX6675 K-type thermocouple module to an Arduino Uno R3 on three digital pins and read up to 1024 °C, with open-probe detection and polarity tips.

Arduino C++Verified — core avr 1.8.8, MAX6675 library 1.1.2, 3 Nov 2026Compile-only

Community draft — report a mistake

A K-type thermocouple measures very high temperatures — ovens, kilns, gas tandoors, soldering stations — that would destroy a DHT or DS18B20. The MAX6675 module turns its tiny voltage into a digital reading from 0 to 1024 °C in 0.25 °C steps, and often comes bundled with a screw-in probe for about ₹350.

On the Uno it runs from 5V and talks over a simple read-only SPI link on three digital pins: SCK on D6, CS on D5 and SO on D4. The library generates the clock itself, so these needn’t be the hardware SPI pins.

The sketch reads once a second and reports an open or disconnected probe instead of a wrong number.

Wiring

Arduino Uno R3Only the pins used are shown · 5 V logicMAX6675 K-type thermocouple module5VGNDD4D5D6GNDVCCSCKCSSOT+ → Thermocouple + (red or yellow lead)T- → Thermocouple − (blue lead)
Every connection
Arduino Uno R3MAX6675 K-type thermocouple moduleWireNotes
—T+—To Thermocouple + (red or yellow lead) (not drawn)
—T-—To Thermocouple − (blue lead) (not drawn)
GNDGNDblack
5VVCCredThe MAX6675 runs from 3.0 to 5.5 V, so the Uno’s 5 V and 5 V logic are both fine.
D6SCKblue
D5CSyellow
D4SOgreenData out from the MAX6675.

3.0–5.5 V part, 5 V board. The MAX6675 runs from 3.0–5.5 V and its SO output follows VCC. Power it from 3.3 V on ESP32 and Pico, 5 V on Uno — then every pin matches your board.

Board quirks

  • The Adafruit MAX6675 library bit-bangs SPI, so it doesn’t need D11–D13. That keeps the hardware SPI pins free for an SD card or radio.
  • Range 0 to 1024 °C in 0.25 °C steps — it can’t read below 0 °C. The chip needs about 220 ms per conversion; reading faster just returns the old value.
  • If the reading drops as the probe heats, the thermocouple leads are reversed. On K-type cable the red (or yellow) lead is +, and the blue (or red, on some Indian-sold probes) is −. Check by heating it.
  • Keep the module and the cold-junction screws away from heat — the chip measures its own temperature as the reference. Only the probe tip goes into the oven or kiln.
  • Use the thermocouple cable all the way to the module. Joining it with copper wire adds an error at the joint.

Code

max6675-uno.inoArduino C++Open in PlaygroundOpen in PlaygroundFlash
// MAX6675 K-type thermocouple module on an Arduino Uno R3.
// VCC → 5V, GND → GND, SCK → D6, CS → D5, SO → D4. Thermocouple: red/+ → T+, blue/− → T−.
// The library bit-bangs SPI, so any three digital pins work.
#include <max6675.h>

const int SO_PIN = 4, CS_PIN = 5, SCK_PIN = 6;
MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN);

void setup() {
  Serial.begin(9600);
  Serial.println(F("MAX6675 K-type thermocouple"));
  delay(500);  // the chip needs about 220 ms to finish its first conversion
}

void loop() {
  float c = thermocouple.readCelsius();
  if (isnan(c)) {
    Serial.println(F("Thermocouple open - check the T+/T- screws"));
  } else {
    Serial.print(F("Temp "));
    Serial.print(c, 2);  // 0.25 °C steps
    Serial.println(F(" C"));
  }
  delay(1000);  // reading faster than every 220 ms stops new conversions
}

Library: MAX6675 library (Adafruit) — compiled with MAX6675 library 1.1.2.

Expected serial output

Serial Monitor · 9600Output
MAX6675 K-type thermocouple
Temp 29.75 C
Temp 30.00 C
Temp 212.50 C

Common errors

“Thermocouple open”

The probe isn’t connected or a lead is broken. The MAX6675 detects an open circuit and the library returns NAN.

Always reads 0 °C

SO and SCK swapped, or CS not on D5. Check the three pin numbers match the sketch.

Reading jumps by several degrees

Electrical noise on a grounded probe touching metal (heaters, motors). Add 10 nF across T+ and T−, or use an ungrounded probe.

↑↓ to move · Enter to open