Thermocouples are one of the most widely used temperature sensors in the industrial application.
The reason they are so popular is that they are low cost to manufacture, reliable and work in extremly high temperature range.
More info on the thermocouples you can read on http://en.wikipedia.org/wiki/Thermocouple
In this application we will measure the temperature with K-type thermocouple which works with temperatures from –180C to +1100C.
These K-types thermocouples are the same which are used in the soldering irons for the temperature control of the soldering tips, they are used also in the reflow ovens, reflow profiles etc.
Some low cost multimeter also have K-type thermocouples to measure temperature, we will take our exactly from such multimeter.
The thermocouples produce very low voltage in the range on micro Volts, and preciese amplifier is necessary to amplify the result to something measurable with microcontroller.
Fortunately for us Maxim-Dallas have MAX6675 thermocouple interface IC which have not only amplifier but also Analog-to-Digital converter and cold junction compensation, so with this IC you can read the temperature directly with SPI.
Our UEXT connector have SPI interface so it was logically to produce MOD-TC which connects to UEXT and interface to Thermocouples.
The DuinoMite code which reads the temperature with MOD-TC is only 10 lines:
10 SCK=10:MISO=9:MOSI=8:CS=19 ‘define where SPI interface is (UEXT connector)
20 SETPIN SCK,8:SETPIN MOSI,8:SETPIN MISO,2:SETPIN CS,8 ‘set all ports are Digital outputs except MISO which is input
30 PIN(CS) = 0 ‘pull CS low to enable the MAX6675
40 PAUSE 100 ‘wait 100ms to settle the chip (not really necessary)
50 B1 = SPI(MISO,MOSI,SCK,0) ‘read high part of the 16 bit result
60 B2 = SPI(MISO,MOSI,SCK,0) ‘read low part of the 16 bit result
70 PIN(CS) = 1 ‘disable MAX6675
80 PRINT “temperature is: “;(B2+B1*256)/32;”C” ‘display the temperature
90 PAUSE 300 ‘wait a bit to not scroll too fast the results
100 GOTO 30 ‘do it forever
Here is the result first with program run at ambient temperature:
Then I decided to measure the temperature at the upper end of cigare lighter flame, soon the tip of the thermocouple become red and the result was:
wow I didn’t knew the cigare lighter flame is as hot as 900C!