Welcome! Log In Create A New Profile

Advanced

Thermocouple without sensor board?

Posted by dazed.dnc 
Thermocouple without sensor board?
September 25, 2010 11:46AM
I'm assuming the IC on the thermocouple sensor boards is some form of microcontroller or that it could be emulated using the arduino and appropriately written firmware. While I have done some basic electronics and firmware hacking, I'm not an EE and I don't know anything about the complexity of programing firmware to emulate the sensor or what the extra overhead would cause.

Has anyone attempted to directly connect the thermocouple to an arduino? There must be a reason for not doing it this way, but being a novice, the extra board seems a bit redundant when we already have a microcontroller that can take analog readings. It would be nice if it were possible to get more accuracy without buying another $50 board for each heater.

My understanding is that the main problem with the thermistor is that it does not change resistance linearly over the temperature range. At the temperature range we need, a one degree change causes little resistance change which makes it harder to detect. Thermocouples are apparently more linear, which should mean that resistance changes over our temperature range are larger and easier to detect. So, even if you still had to use the temperature look-up tables, it sounds like you should be able to get more accuracy. If it really is linear, then maybe you don't need the look-up tables since the temperature-resistance relationship should be easier to calculate on-the-fly. Removing the gaps in our look-up tables could really improve accuracy.
Re: Thermocouple without sensor board?
September 25, 2010 12:40PM
@dazed.dnc,

If you look at the voltages a thermocouple produces, at the temperature (difference) of interest, you'll see that it's only a few LSB of an Arduino's A2D resolution.

The Wikipedia article, [en.wikipedia.org]
gives the following info on type K thermocouples: 41 µV/°C.

For a temperature difference of 325 degrees C (25 deg C to 350), this gives 0.013284 volts (13 millivolts.)
If memory serves, an Arduino has a 10-bit A2D; if this is over 5 volts, then the Arduino's A2D resolution is 5 millivolts. So the temperature resolution would be terrible, even ignoring the impedance issues for thermocouples

This is why dedicated thermocouple interface chips have (at minimum) an *analog* front end (stable, high-input-impedance amplifier, cold junction compensation, etc.)


Larry Pfeffer,

My blog about building repstrap Cerberus:
[repstrap-cerberus.blogspot.com]
Re: Thermocouple without sensor board?
September 25, 2010 12:43PM
K type thermocouples have a sensitivity of 41 µV/°C, so that's about 0.01 V change over a 300 deg C range - you need an amplifier to detect that with the Arduino analog inputs.

Lots of cheaper alternatives though: I just picked up some Max 6675 breakout boards from Adafruit - $17.50, plus the cost of the thermocouple ($10). Haven't tried them yet, but Adrian already has code to read the digital output of the 6675 in the firmware.

I only use thermocouples in my extruders, and I really like them. Bought some extras for the espresso machine.

Wade

edit - better response by Larry, thanks! - I forgot about the cold junction compensation. smiling smiley No need for an ice bath with these chips.

Edited 1 time(s). Last edit at 09/25/2010 12:44PM by Wade.
Re: Thermocouple without sensor board?
September 27, 2010 06:17PM
Thanks for the informative explanations. My understanding of how thermocouples work was way off base. After digging in the firmware code a bit, I also noticed that it uses linear interpolation to fill in the gaps in the temperature table. While it might make the execution loops a little longer, linear interpolation makes it relatively insignificant that our temperature tables have gaps. I should have known better than to think that something wasn't being done behind the scenes to fill in those gaps.
Sorry, only registered users may post in this forum.

Click here to login