Skip to main content

Grove - 1-Wire Thermocouple Amplifier(MAX31850K)

The Grove - 1-Wire Thermocouple Amplifier (MAX31850K) is a thermocouple-to-digital converters with 14-bit resolution and cold-junction compensation. This module is designed to be used in conjunction with a k-type thermocouple. The thermocouples have a much larger measurement range than thermistors. For example, this k-type thermocouple on our website has a measurement range of -50℃ to +600℃.

This module is based on the MAX31850K, which integrates amplifier, ADC and 64-bit ROM. Thanks to the 64-bit ROM, each device has a unique 64-bit serial code, which allows multiple units to function on the same 1-Wire bus. Therefore, it is simple to use one microcontroller (the master device) to monitor temperature from many thermocouples distributed over a large area.

Again, this module can't work alone, it must work with a k-type thermocouple, if you do not have one, you can consider Thermocouple Temperature Sensor K Type-1M in our bazaar.

Version

Product VersionChangesReleased Date
Grove - 1-Wire Thermocouple Amplifier (MAX31850K)InitialAug 2018

Features

  • Integrated Cold-Junction Compensation
  • Wide Conversion Range: allow readings from -270℃ to +1768℃
  • 14-Bit, 0.25℃ Resolution
  • Will not work with any other kind of thermocouple except K type
  • Detects Thermocouple Shorts to GND or VDD
  • Detects Open Thermocouple
caution

Although this module can convert from -270℃ to +1768℃, the temperature measurment range also limited by the thermocouple you use.

Specification

ItemValue
Operating Voltage3.3V/5V
Temperature Resolution14 bits
Temperature Accuracy± 2℃
Operating Temperature Range-40℃ to +125℃
Allow Readings Range-270℃ to +1768℃
Storage Temperature Range-65℃ to +150℃
Input JackDIP Female Blue-2Pin
Output Interface1-Wire bus
SizeL: 40mm W: 20mm H: 18mm
Weight4.8g
Package sizeL: 140mm W: 90mm H: 20mm
Gross Weight11g

Applications

  • Medical
  • Appliances
  • Industrial
  • HVAC(Heating, Ventilation and Air Conditioning)

Hardware Overview

Pin Map

Schematic

Input Jack

Because of the small signal levels involved, we take a lot measures to filter the noise.

  • 1--L1,L2 We use thermocouple up to 1 meter long. Such long wires can be regarded as antennas, which will receive spatial electric field interference and generate high frequency noise. So we use two inductances to filter the high frequency noise.

  • 2--C1 It is strongly recommended by the chip manufacturer to add a 10nF ceramic surfacemount differential capacitor, placed across the T+ and T- pins, in order to filter noise on the thermocouple lines.

  • 3--D1 We use the SZNUP2105LT3G DUAL BIDIRECTIONAL VOLTAGE SUPPRESSOR to protect this module from ESD(Electro-Static discharge).

Bi-directional level shifter circuit

This is a typical Bi-directional level shifter circuit to connect two different voltage section. The left part, DQ pin of the MAX31850K use 3.3V, if the Arduino use 5V, this circuit will be needed. In the schematic above, Q6 is N-Channel MOSFET 2N7002, which act as a bidirectional switch. In order to better understand this part, you can refer to the AN10441.

note
  In this section we only show you part of the schematic, for the full document please refer to the [Resources](https://wiki.seeedstudio.com/Grove-I2C_High_Accuracy_Temperature_Sensor-MCP9808/#resources)

Assembling Drawing

tip

Please insert the Red wire of thermocouple into the **T+** port of the Grove - 1-Wire Themrocouple Amplifier (MAX31850K) , and the White wire into T- port. If you do not use the k-type thermocouple from our bazaar, the color may be different, please make sure the + - with the seller.

Platforms Supported

ArduinoRaspberry Pi
caution
The platforms mentioned above as supported is/are an indication of the module's software or theoritical compatibility. We only provide software library or code examples for Arduino platform in most cases. It is not possible to provide software library / demo code for all possible MCU platforms. Hence, users have to write their own software library.

Getting Started

Play With Arduino

Hardware

Materials required

Seeeduino V4.2Base ShieldGrove - 1-Wire Thermocouple Amplifier x 2
Get One NowGet One NowGet One Now
k-type thermocouple x 2Grove - I2C Hub
Get One NowGet One Now
note

1- We've offered two software examples, simple and multiple, the materials requirement above is for the multiple example. If you want to test the simple example, then the Grove - I2C Hub is not necessary, and only one Grove - 1-Wire Thermocouple Amplifier will be enough.

2- We use I2C Hub here not as a I2C interface, but just as a normal one-to-two transfer interface.

  • Step 1. Insert the red wire of k-type thermocouple into T+, insert the light white wire of k-type thermocouple into T-

  • Step 2. Connect the Grove - I2C Hub to the D3 port of the Base Shield.

  • Step 3. Plug the Grove - 1-Wire Thermocouple Amplifier A and B into the Grove - I2C Hub.

  • Step 4. Plug Grove - Base Shield into Seeeduino.

  • Step 5. Connect Seeeduino to PC via a USB cable.

note

If we don't have Grove Base Shield, We also can directly connect this module to Seeeduino as below.

SeeeduinoGrove CableGrove - I2C HubGrove - 1-Wire Thermocouple Amplifier
GNDBlackGGND
5VRedVVCC
NCWhiteSDANC
D3YellowSCLDQOUT

Software

caution
    If this is the first time you work with Arduino, we strongly recommend you to see [Getting Started with Arduino](https://wiki.seeedstudio.com/Getting_Started_with_Arduino/) before the start
  • Step 1. Download the Seeed_MAX31850K Library from Github.

  • Step 2. Refer to How to install library to install library for Arduino.

  • Step 3. Unzip the library folder, follow the path to find and open Multiple.ino ---> xxxx\Arduino\libraries\Seeed_MAX31850K-master\examples\Multiple. xxxx is the path you installed your Arduino.

This folder \Arduino\libraries\Seeed_MAX31850K-master\examples contains two examples: Multiple.ino and Simple.ino.

Simple.ino--single mode(one host and one slave)

Multiple.ino--multiple mode(one host and multiple slaves,base on rom addressing-one wire search algorithm)

Or, you can just click the icon in upper right corner of the code block to copy the following code into a new sketch in the Arduino IDE.

#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 3
#define TEMP_RESOLUTION 9

#define MAX_NUM_OF_DEVICE 10

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

// arrays to hold device addresses
DeviceAddress Device_add[MAX_NUM_OF_DEVICE];
DeviceAddress insideThermometer, outsideThermometer;

void setup(void)
{
// start serial port
Serial.begin(115200);
Serial.println("Dallas Temperature IC Control Library Demo");

// Start up the library
sensors.begin();

// locate devices on the bus
Serial.print("Locating devices...");
Serial.print("Found ");
Serial.print(sensors.getDeviceCount(), DEC);
Serial.println(" devices.");

Serial.print("Parasite power is: ");
if (sensors.isParasitePowerMode()) Serial.println("ON");
else Serial.println("OFF");

for(int i=0;i<sensors.getDeviceCount();i++)
{
if(!sensors.getAddress(Device_add[i],i))
{
Serial.println("Find device error!!");
}
else
{
Serial.print("Device [");
Serial.print(i);
Serial.print("] addr =");
printAddress(Device_add[i]);
}
Serial.println(" ");
}

}

// function to print a device address
void printAddress(DeviceAddress deviceAddress)
{
for (uint8_t i = 0; i < 8; i++)
{
// zero pad the address if necessary
if (deviceAddress[i] < 16) Serial.print("0");
Serial.print(deviceAddress[i], HEX);
}
}

// function to print the temperature for a device
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
Serial.print("Temp C: ");
Serial.print(tempC);
Serial.print(" Temp F: ");
Serial.print(DallasTemperature::toFahrenheit(tempC));
}

// function to print a device's resolution
void printResolution(DeviceAddress deviceAddress)
{
Serial.print("Resolution: ");
Serial.print(sensors.getResolution(deviceAddress));
Serial.println();
}

// main function to print information about a device
void printData(DeviceAddress deviceAddress)
{
Serial.print("Device Address: ");
printAddress(deviceAddress);
Serial.print(" ");
printTemperature(deviceAddress);
Serial.println();
}

void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
Serial.print("Requesting temperatures...");
sensors.requestTemperatures();
Serial.println("DONE");

for(int i=0;i<sensors.getDeviceCount();i++)
{
printData(Device_add[i]);
}

}

  • Step 4. Upload the demo. If you do not know how to upload the code, please check How to upload code.

  • Step 5. Open the Serial Monitor of Arduino IDE by click Tool-> Serial Monitor. Or tap the ++ctrl+shift+m++ key at the same time. Then set the baud rate 115200.

success
 If every thing goes well, you will get the result.
DONE
Device Address: 3B23211800ing temperatures... 77.00
Requesting temperatures...DONE
Device Address: 3B2321180000005C Temp C: 25.00 Temp F: 77.00
Requesting temperatures...Dallas Temperature IC Control Library Demo
Locating devices...Found 2 devices.
Parasite power is: OFF
Device [0] addr =3B4C965D06D80C98
Device [1] addr =3B2321180000005C
Requesting temperatures...DONE
Device Address: 3B4C965D06D80C98 Temp C: 26.25 Temp F: 79.25
Device Address: 3B2321180000005C Temp C: 25.25 Temp F: 77.45
Requesting temperatures...DONE
Device Address: 3B4C965D06D80C98 Temp C: 26.25 Temp F: 79.25
Device Address: 3B2321180000005C Temp C: 25.00 Temp F: 77.00
Requesting temperatures...DONE
Device Address: 3B4C965D06D80C98 Temp C: 26.25 Temp F: 79.25
Device Address: 3B2321180000005C Temp C: 25.25 Temp F: 77.45
Requesting temperatures...DONE
Device Address: 3B4C965D06D80C98 Temp C: 26.00 Temp F: 78.80
Device Address: 3B2321180000005C Temp C: 25.25 Temp F: 77.45
Requesting temperatures...DONE
Device Address: 3B4C965D06D80C98 Temp C: 26.00 Temp F: 78.80
Device Address: 3B2321180000005C Temp C: 25.25 Temp F: 77.45

Schematic Online Viewer

Resources

Tech Support & Product Discussion

Upgradable to Industrial Sensors

With the SenseCAP S2110 controller and S2100 data logger, you can easily turn the Grove into a LoRaWAN® sensor. Seeed not only helps you with prototyping but also offers you the possibility to expand your project with the SenseCAP series of robust industrial sensors.

The IP66 housing, Bluetooth configuration, compatibility with the global LoRaWAN® network, built-in 19 Ah battery, and powerful support from APP make the SenseCAP S210x the best choice for industrial applications. The series includes sensors for soil moisture, air temperature and humidity, light intensity, CO2, EC, and an 8-in-1 weather station. Try the latest SenseCAP S210x for your next successful industrial project.

Loading Comments...