Summary of DS1631 – Arduino Code and Temperature Validation
The DS1631 is a low-cost, I2C digital thermometer used for validating temperature readings against a standard type J thermocouple. The project demonstrates 12-bit accuracy across a -55°C to +125°C range using an Arduino IDE script updated for newer libraries. Testing involved heating sensors with a heat gun and monitoring office temperature fluctuations over hours to compare performance between the IC and the NI 9214 module.
Parts used in the DS1631 Thermometer Validation:
- DS1631 Digital Thermometer
- Type J Thermocouple
- NI 9214 Thermocouple Input Module
- Arduino Board
- Heat Gun
- Arduino IDE (version 1.6.6)
- Wire.h Library
Basic information
The DS1631 is a low cost, I2C interface digital thermometer popular in the maker community. Capable of providing 12-bit temperature readings over a -55°C to +125°C range. I have need for a digital thermometer in many of my projects and thought it would be nice to do a simple validation against a standard thermocouple. I have also provided an Arduino Script for use with the Arduinos IDE. This code comes from the archived Arduino forums; I have updated it so it will work with a newer IDE (version 1.6.6) and Wire.h library.
The thermocouple is read using a NI 9214 thermocouple input module as shown below. The wiring schematic for the DS1631 as tested is also provided. All three address pins are pulled low, to give the chip an address of 0x90.
Schematic
Data
The figures below are a brief set of data collected during testing of the DS1631. Here the IC is tested against a type J thermocouple. Data in the first figure was collected using a heat gun to heat up both sensors. The heat gun was set to 100 C, and the data was collected at 500 Hz for both sensors. The difference in the recorded temperature may be a factor of how the DS1631 package holds heat, vs the bare tip of the thermocouple. The second set of data was collected over a few hours in my office. You can clearly see the temperature swing at the beginning when I leave my office.
For More Detail: Arduino Code and Temperature Validation
- What is the DS1631?
The DS1631 is a low cost, I2C interface digital thermometer popular in the maker community. - Can the DS1631 provide 12-bit temperature readings?
Yes, it is capable of providing 12-bit temperature readings over a -55°C to +125°C range. - How was the thermocouple read in this project?
The thermocouple was read using a NI 9214 thermocouple input module. - What address was assigned to the chip during testing?
All three address pins were pulled low to give the chip an address of 0x90. - What tool was used to heat up both sensors?
A heat gun set to 100 C was used to heat up both sensors. - At what frequency was data collected during the heating test?
Data was collected at 500 Hz for both sensors. - Does the provided code work with newer IDE versions?
Yes, the code has been updated so it will work with a newer IDE version 1.6.6 and Wire.h library. - What caused the difference in recorded temperature during testing?
The difference may be a factor of how the DS1631 package holds heat versus the bare tip of the thermocouple.