A Thermocouple is a terrific way to measure temperature. The effects of temperature change on dissimilar metals produces a measurable voltage. But to make that measurement you need an amplifier circuit designed for the thermocouple being used.
While researching “Zero Drift Amplifiers” as a follow-up to my video on Instrumentation Amplifiers I noticed the little schematic the front page of the LTC1049 datasheet which is shown here. I thought it was an ideal example of an analog application where some gain and some “gain helper” were needed to accomplish our useful little application of amplifying a thermocouple probe.
In the video I don’t really talk much about the thermocouples themselves other than the type I see most of the time which is type K. If you’re not already familiar with the construction of these probes you can find an informative write-up on thermocouples and the different types on the Wikipedia page and you might also want to check out the Analog Devices app note if you would like to know more. What I will cover is a reliable and precise way to read from these probes, seen in the video below and the remainder of the post after the break.
If you’re reading a thermocouple with one of those fancy schmancy SPI thermocouple amplifiers, this one isn’t for you. If, however, you’re still going through those old-school analog thermocouple amplifiers like the AD595, [miceuz] has just the thing for you. He’s come up with a library for embedded devices that reads the temperature of a k-type thermocouple with +- 0.03°C of accuracy.
As with anything dealing with natural phenomena, the voltage generate by the bimetallic junction of a thermocouple probe is decidedly non-linear. This is a problem when dealing with embedded devices, as that would mean using floating point arithmetic, greatly increasing the amount of code. [micuez] found the NIST tables for a K-type thermocouple and interpolates the actual temperature of the thermocouple probe from the NIST data. The usual way of measuring thermocouples – a polynomial unction of some sort – has an error of about 0.06°C. [miceuz]’s library has an error of less than half that, all while using less code.
The library doesn’t support temperatures below zero, but this is still a work in progress. Still, if you’re looking for a very accurate library for a forge, crock pot sous vide build, or a toaster oven reflow controller, you can’t do better than [miceuz]’s work.
[Rob Spanton’s] house is equipped with a rather cheap oven, which was discovered while his roommate tried using it to bake part of a wedding cake. If someone took a shower during the baking process, a large portion of unit’s gas pressure was diverted to the boiler, causing the oven to shut off completely. This is obviously not a good situation for baking cakes, so the housemates decided to construct a makeshift controller to keep temperatures in line.
They started by installing a pulley on the oven’s knob, which is connected to a small motor via a long rubber belt. The other end of the belt connects to a small motor, which is controlled by a Pololu 18v7 motor controller. A K-type thermocouple monitors the oven’s temp, feeding the data through a MAX6675 converter to (presumably) [Rob’s] computer.
Since they were in a bit of a time crunch, [Rob] and his roommate [Johannes] decided the best way to keep the oven at a steady temperature was via bang-bang control. While you might imagine that cranking the gas knob between its minimum and maximum settings repeatedly wouldn’t be the ideal way to go about things, their solution worked pretty well. The cake came out perfectly, and the maximum temperature swing throughout the entire baking process was only 11.5°C – which is pretty reasonable considering the setup.