Thermocouple temperature measurement

  • Compatible with thermocouple types K, J, N, R, S, T, E and B
  • Allows reading from -210°C up to +1800°C
  • Resolution better than 0.01°C
  • Use up to 15 modules simultaneously

With the Termopar Nanoshield, you can measure temperature using a thermocouple sensor in a simple and hassle-free way. It is implemented with the MAX31856 chip from Maxim Semiconductor, which contains all the necessary circuit to perform this type of measurement: internal temperature sensor (cold-junction), amplifier and analog-to-digital converter. This way, the reading is given directly in degrees Celsius and read by the microcontroller through a SPI interface.

The Termopar Nanoshield supports thermocouple types K, J, N, R, S, T, E and B, and also features:

  • Detection of open-circuit, over/undervoltage and out-of-range temperature
  • Chip's internal temperature reading (cold junction)
  • Internal 50/60Hz noise rejection filter
  • Configurable averaging mode for 2, 4, 8 or 16 samples
  • Filter on the thermocouple input for better stability

Termopar Nanoshield features

!Thermocouple sensor connection

The Termopar Nanoshield features a terminal block to which you must connect the wire ends of your thermocouple sensor. Pay attention to the polarity indication ( and ). If you don’t know which are the positive and negative terminals of your thermocouple sensor, don’t worry: just "guess" the polarity and connect both ends in. Then measure the temperature and put the measuring part next to a heat source. If the measured temperature goes up, this indicates that the connection is correct. In case the measured temperature goes down, invert the polarity and measure again. The picture below shows how the connection should be done:

Thermocouple sensor connection

!Connection to an Arduino + Base Board Uno

The easiest way to use the Termopar Nanoshield along with an Arduino board is by using a Base Board Uno or Base Board L Uno. Just connect the boards as shown in the picture below and load our sample code to check that the system is working (see the sample code section below). This assembly can be used with Arduino UNO, Mega R3 or similar boards. The picture below shows how the assembly looks like.

Connection to an Arduino using the Base Board Uno (click on the image to enlarge)

!Connection to a Base Boarduino

It is also possible to connect the Termopar Nanoshield directly to our Arduino-compatible board, the Base Boarduino. The connection is done the same way it is done with the Base Board, as shown in the picture below. You just have to connect the boards, load our sample code and check that the system is working (see the sample code section at the bottom of the page).

Connection to a Base Boarduino (click on the image to enlarge)

!Direct connection to an Arduino

It is also possible to use the module with a direct connection to an Arduino using a breadboard and jumpers. Use the following wiring diagrams to connect the Termopar Nanoshield to an Arduino UNO or Arduino MEGA.

Connection to an Arduino UNO (click on the image to enlarge)

Connection to an Arduino MEGA (click on the image to enlarge)

!Using multiple modules simultaneously

The Termopar Nanoshield communicates with the Arduino microcontroller through an SPI communication interface. An advantage of this is the possibility to connect several modules simultaneously using just a few microcontroller pins. The bus features a clock line (SCK), two data lines (SDI and SDO) and a selection pin called chip select (/CS). All the modules connected to the bus share the same clock and data lines. However, to each one of them an exclusive chip select pin is assigned. This way the microcontroller can choose which module it will communicate with, sending a low-level logic signal (0V) to the chip select pin corresponding to that module when needed.

The Termopar Nanoshield features a set of jumpers on the top side of the board that allows the manual selection of up to 5 different Arduino pins for the chip select function (4, 7, 8, 10 and A3) – the default pin is 8. Besides those 5 options, the module also features 10 pins that are selectable via solder jumpers on the bottom side of the board (2, 3, 5, 6, 9, A0, A1, A2, A4 and A5). That enables the connection of up to 15 modules simultaneously to a single microcontroller.

The picture below shows the position of the manual jumpers on the top side and the solder jumpers on the bottom side of the board.

Termopar Nanoshield chip select options

In order to use several modules simultaneously, you just have to connect them together on different slots of the Base Board or Base Board L at the same time, using the jumpers to select a different chip select in each module. The figure below shows a set of four modules being used simultaneously. In this example, we used a Base Board UNO along with an Arduino Mega.

Using several modules simultaneously

However, keep in mind that the pins used for the SPI communications and the pins used for the chip select of the modules cannot be shared or have other functions on the circuit. Therefore, it is advisable to make an analysis of the pins that will be used before using several modules simultaneously. Check out our pinout table for more information on how to allocate the pins.

Using the Bridge Board, it is possible to connect multiple Base Boards together and expand the project even further, as shown below.

Example of a project with 13 modules simultaneously

The project above has 13 thermocouple modules, allowing simultaneous acquisition and logging of up to 13 different temperature channels on a single microcontroller.

Block diagram

Termopar Nanoshield Block Diagram

Electrical characteristics

  • Power supply: input via the 5V pin, with a range from 4.5V to 5.5V.

  • Current consumption: the maximum current consumption is approximately 1.5mA.

  • Logic levels: the input pins /CS, SDI and SCK work with a voltage of 5V or 3.3V. The output pin SDO has a logic level of 3.3V and is 100% compatible with the voltage levels accepted by Arduino, Raspberry Pi and others.

The table below describes the function of each signal, and their correspondence with the Arduino UNO and Arduino Mega R3 pins.

Function Arduino UNO Arduino MEGA Function
/CS 8 8 SPI chip select
SDO 12 50 SPI data line (MISO)
SDI 11 51 SPI data line (MOSI)
SCK 13 52 SPI clock line
5V 5V 5V 5V voltage input
GND GND GND Reference voltage (ground)
Pin description table

Applications and precision

Thermocouples are sensors used mostly when a wide measure range is needed, and when the temperature range or measurement environment are not compatible with other types of sensors, such as thermistors or semiconductor-based sensors. It is also possible to obtain very fast response times, depending on the type and geometry of the thermocouple sensor that is used. Some of the typical applications are:

  • Ovens
  • Turbines
  • Engines
  • Industrial processes (steel, metalworking, etc.)

Thermocouple sensors can show errors of ±1,5°C up to ±9°C, depending on the thermocouple type and measurement range – check the thermocouple manufacturer to verify the tolerances of your sensor. The internal precision of the chip is of ±0.15%.

For a more reliable measurement, always keep the thermocouple isolated from metallic or conductive parts. Also avoid holding the tip of the thermocouple with your hands during the measurements, unless absolutely necessary.

!Sample code

Previous versions

  • Version 1.2 - Documentation for version 1.2 of the Termopar Nanoshield.
  • Version 1.0 - Documentation for version 1.0 of the Termopar Nanoshield.