As part of a joint project with my cohort in hax, Jimbowen we require some high temperature sensing. I have previously used the Maxim/Dallas DS18b20 series digital temperature sensors for environmental monitors but these are only capable of sensing within the range of -40C to +125C; we need to be able to monitor soldering temperatures over 200C.
The decision was made to make use of a thermocouple because they are fairly accurate and can be used at very high temperatures. A major difficulty in using thermocouples is the very small output voltage they provide (~10uV/C for k-type). Most micro controllers will not be able to reliably convert such low range signals to digital so some specialist electronics is required.
Having done some research online we choose the MAX6675 0-1000c k-type thermocouple to digital converter IC. Annoyingly this part is only available in SOIC-8 footprint (surface mount). Fortunately Sparkfun provide some adaptor boards to allow this to be used on stripboard or breadboard.
I have assembled the circuit as shown in the schematic here:
The ATMEGA32u2 has a built in SPI module (just like any other AVR) and has a USB module to communication power and programming from a PC.
I base all my usbavr software on the LUFA libray by Dean Camera and not supprisingly the code to interface this chip is very simple.
uint16_t t;
//Toggle chip select for MAX6675
PORTB &= ~1;
_delay_ms(1);
//read the register into a uint16_t
t = SPI_ReceiveByte()<<8;
t |= SPI_ReceiveByte();
//mask off useless data.
//bit 15 is a dummy sign
//bit 2 Goes high if thermocouple contacts are open.
if(t & (1<<2))
fprintf(&USBSerialStream, "Thermocouple contacts open\r\n");
else
{
//mask off useless data.
//bit 2 Goes high if thermocouple contacts are open.
//bit 1 device id? (dont care!)
//but 0 state? (dont care?)
t &= 0b0111111111111000;
t >>=3;
fprintf(&USBSerialStream, "Temp %06.2fC\r\n",t*0.25);
}
//Release chip select.
PORTB |= 1;

hummm
Extract from max6674 datasheet
“This converter resolves temperatures to 0.125°C, allows
readings as high as +128°C, and exhibits thermocouple
accuracy of ±2°C for temperatures ranging from 0°C to
+125°C.”
I thought that you wanted more than that to monitor “hotplate” temperature for soldering….
Correct and correct.
However we are using a MAX6675 which is pin compatible with MAX6674 but 0-1000C.
See the notes in schematic and the blog text.
Pingback: Southackton @ The Art House, 8th June 2011 « SoutHACKton
i have been unable to get the max6675, do you have any idea of a substitute component for it.
At the time the max6675 as the only device I could find that had these features. I know of no part that has identical features.