How to Play with Thermocouples


Whether you are building a temperature-sensing device or need to bring temperature-sensing capabilities to an existing system, you should familiarize yourself with thermocouples and learn how to devise thermocouple interfaces. A thermocouple is simply a length of two wires made from two dissimilar conductors that are welded together at one end.

Basics of Thermocouples

thermocouple diagram Many different types of thermocouples are available on the market, depending on the combination of the two dissimilar conductors. However, all types operate based on the same fundamental theory — the Seebeck effect. Whenever a conductor experiences a temperature gradient from one end of the conductor to the other, the electric potential (also known as the Seebeck voltage, Seebeck coefficient, or loop current) builds up. This happens because free electrons within the conductor diffuse at different rates, depending on temperature. Electrons with higher energy on the hot side (measurement junction) of the conductor diffuse more rapidly than the lower-energy electrons on the cold side (reference junction). The net effect is that a buildup of charge occurs at one end of the conductor and creates an electric potential from the hot and cold ends.

K-type Thermocouples

K-type thermocouples are usually selected for microcontroller-based temperature sensor projects since they are inexpensive, provide sufficient temperature range, and have good precision and linearity. The K-type thermocouple’s two dissimilar conductor elements are nickel-chromium alloy (positive side) and nickel-aluminum alloy (negative side). Note that the Seebeck coefficient of a typical K-type thermistor at room temperature (25°C) is 41μV/°C, and its usable temperature range is –270°C to 1,372°C. The transfer function of a standard K-type thermocouple, as shown in the next figure, proves that the Seebeck coefficient is roughly constant at about 41μV/°C from 0°C to 1,000°C.

Seebeck coefficient vs temperature

Temperature Measurements

The front end of a thermocouple-based temperature sensor is, of course, the thermocouple. Since the transfer function of a thermocouple is in μV/ºC, a proper signal conditioning circuit is necessary to amplify the thermocouple’s output to a proper voltage value for further processing. Because the voltage signal is very small, the signal-conditioning circuitry typically requires gains of about 100 or so. You can certainly use op-amps or even discrete components to build the signal conditioner. The next figure shows one experimental thermocouple signal-conditioning circuit based on an op-amp with a gain up to 500 (depending on the value of the potentiometer).


The formula to calculate the gain of this LM358 non-inverting circuit is “Gain = 1 + P1/R1.” For example, R1 = 1K and P1 = 200K, resulting in a gain of 201. This means that a thermocouple output of 5mV will result in an output just above 1V. A gain of 500 would allow for better resolution of the temperature, but a gain of 200–270 is adequate for most purposes. Although a K-type thermocouple’s usable temperature ranges from –270°C to 1,372°C, there is a limiting factor. The K-type thermocouple comes with insulated wires and cable sheathing, which also have temperature limits associated with them. It is not unusual to have sheathing on the thermocouple that falls below the possible range of the application. Shown below is a picture of a low-cost K-type thermocouple. Note its limited working temperature range: –50°C to 200°C. Also note that most K-type thermocouples come with a red lead and a yellow lead. The red lead is normally the negative connection and the yellow lead is the positive connection.

K-type thermocouple

If you only need to check if the temperature is increasing or not — for example, to monitor a little furnace — and don’t care about the actual temperature, the op-amp-based signal-conditioning circuit (as a front-end) is okay to an extent. However, precision temperature measurement calls for a cold-junction temperature-correction circuit as well as the signal-conditioning circuit. Because the thermocouple’s output is actually a measurement of the temperature difference between the hot end and the cold end, the actual hot-end (measurement junction) temperature must be corrected by adding the cold-end (reference junction) temperature to the thermocouple reading. For this, you can use an additional temperature sensor at the cold end. Later, in software, just add the measured thermocouple temperature (the difference between the hot and the cold end) to the measured temperature of the cold end. This calculation will yield the absolute temperature of the hot end. The next figure depicts one basic solution for an estimable two-channel thermocouple amplifier.

two-channel thermocouple amplifier

The circuit uses one-half of a high-precision linear dual op-amp IC, LTC1051, to process the signal from the thermocouple. The use of a low-offset op-amp obviates the usual requirement of the zero-offset circuitry for these types of DC amplifiers. The “full-scale trim” potentiometer can be used to calibrate the thermocouple to the target 10-mV/ºC output from LTC1051. The other IC used in this circuit, LT1025, is a very good thermocouple compensator from Linear Technology Corp (LTC).

Practical Matters

Recently, a couple of students needed a thermocouple circuit and asked me to build them one. Because I had limited time and resources, I purchased a microcontroller-compatible MAX6675 thermocouple module and a K-type thermocouple from eBay. Next, I prepared a simple Arduino project to print temperature in Celsius and Fahrenheit to the serial monitor. The results turned out nicely. If you want to try this, just follow the hardware wiring and load the example sketch to Arduino.

arduino max6675 thermocouple

  // MAX6675 Arduino Example Sketch   #include “max6675.h” // see text  int ktcSO = 8;   int ktcCS = 9;   int ktcCLK = 10;   MAX6675 ktc(ktcCLK, ktcCS, ktcSO);   void setup() {      Serial.begin(9600);      // wait for max chip to stabilize      delay(500);   }   void loop() {      // basic readout test, just print the current temp      Serial.print(“Deg C =  ” );      Serial.print(ktc.readCelsius());      Serial.print(“t Deg F =  ” );      Serial.println(ktc.readFahrenheit());      delay(1000);   }  

The required “max6675.h” library, which provides Celsius and Fahrenheit temperature functions, is freely available at

At the heart of the MAX6675 module is the MAX6675 chip from Maxim. This chip has a temperature sensor (cold-junction compensation diode) in it that detects the temperature of the cold end. This is presumably the same temperature as the circuit board on which the chip is mounted. Using this method to measure the cold-junction temperature can be fairly inexpensive and quite accurate. According to the datasheet, the MAX6675 performs cold-junction compensation and digitizes the signal from a K-type thermocouple. The data is output in a 12-bit resolution, SPI™-compatible, read-only format. Shown below is the circuit diagram of a MAX6675 module (also see the PCB idea for DIYers). This circuit is an exact replica of what is offered in the datasheet as a sample design.

MAX6675 module


MAX6675 also has an “open thermocouple detection” feature. The next figure shows the serial interface protocol of MAX6675. A complete serial interface read requires 16 clock cycles. The first bit, D15, is a dummy-sign bit and is always zero. Bits D14–D3 contain the converted temperature in the order of MSB to LSB. D1 is low to provide a device ID for the MAX6675 and bit D0 is three-state. Bit D2 is normally low and goes high when the thermocouple input is open.

open thermocouple detection

Based on this information, I redesigned the PCB art and added a jumper option to enable/disable this open thermocouple detection option (see jumper SJ1 in the revised PCB artwork shown below). Note that, in order to allow the operation of the open thermocouple detector, SJ1 must be closed.

pcb art

Closing Time

Thermocouples are found in a variety of applications, including industrial furnaces and medical instruments. While easy to use, just like any electronic component, they require a certain amount of experimentation and observation. Admittedly, there are a few limitations with the ideas presented in this article, though they do not interfere with functionality. A future article will provide more information to enhance your designs and practical projects.

Reference Courtesy (including but not limited to):