how to amplify a thermocouple signal?

I'm new to the wiring/electronics part of arduino, but pretty good with the programming part so I apologize if this is a stupid question.

I want to make a software version of the MAX6675 chip that converts K type thermocouple analog input into a digital output. Like the MAX chip, the sketch will do cold junction compensation using a temp sensing IC or a thermistor to register the room (ambient) temp. (the max chip is $12, a thermistor is $2. Code is free)

The K thermocouple produces .039 millivolts @ 1 deg C, up to 54.886 millivolts @ 1372 deg F.

Best I can tell, (at least the lower part of) this range is too low for the analog inputs on the arduino to register? I hooked up the thermocouple at room temp, where it should produce somewhere in the neighborhood of 1 millivolt...but a simple sketch to write that value to the serial monitor produces 0,0,0,0,0,0,0.

So, how do I cleanly amplify this analog input so I can assign it a usable value to work with for conversion?

I'm new to the wiring/electronics part of arduino,

So you will find that the MAX6675 is quite good value for money. You need to amplify the signal using operational amplifiers. With such a low voltage signal these need to be very good operational amplifiers. They have to be carefully designed and even more carefully constructed. No doubt other might suggest a circuit but my advice is that it is a lot quicker, and cheaper and you get better results using the MAX6675.

Grumpy_Mike:

I'm new to the wiring/electronics part of arduino,

So you will find that the MAX6675 is quite good value for money. You need to amplify the signal using operational amplifiers. With such a low voltage signal these need to be very good operational amplifiers. They have to be carefully designed and even more carefully constructed. No doubt other might suggest a circuit but my advice is that it is a lot quicker, and cheaper and you get better results using the MAX6675.

I have the 6675 breakout board from adafruit. It works great.

I plan on making a bunch of these, and $12 per unit extra starts to add up. There are other reasons too (the 6675 does not support R or S type TCs...a software version could easily do so)

I realize I might lose some accuracy by going this route, which I think I can mitigate by averaging multiple readings. For my purposes, 5 degrees F of resolution is acceptable.

So, I would hope someone can point me in the right direction to amplify the signal as cleanly as possible.

Grumpy_Mike:

I'm new to the wiring/electronics part of arduino,

You need to amplify the signal using operational amplifiers. With such a low voltage signal these need to be very good operational amplifiers.

you indicate "amplifiers" plural, are you suggesting I'd need to run the voltage through multiple op amps? The thermocouple has just a one wire analog voltage, so would one (appropriately specced) op amp do the trick?

Any way, at .95c per unit for something like the LM358 I think this is the track I want to at least try before giving up and settling on the max chip.

I do see on the schematic where the max chip uses two op amps, but I have no idea why.

I realize I might lose some accuracy by going this route, which I think I can mitigate by averaging multiple readings

No .... taking an average only compensates for random noise. What you will have is systematic inaccuracies. These are caused by the DC offset on the op amps.

I do see on the schematic where the max chip uses two op amps

Yes but do you see all those switches on the inputs. They are used to compensate for the DC offset on the op amp's input. If you try to get a lot of gain from an amplifier at DC then you amplify the DC offset as well. This causes the amplifier to saturate without even having any signal from the thermocouple. Any circuit used must compensate for this.

Why don't you try an google a schematic?

I don't mean to derail the conversation, and I understand doing things for teh lulz, but I hate thermocouples and would suggest using RTDs if possible.

3z33:
I do see on the schematic where the max chip uses two op amps, but I have no idea why.

The second op amp has its gain set to one, so it would appear to be a buffer. I'd plan on some heavy studying up on op amp theory and application...

BetterSense:
I don't mean to derail the conversation, and I understand doing things for teh lulz, but I hate thermocouples and would suggest using RTDs if possible.

While I don't hate TCs, having worked with them for decades in an oil refinery, I tend to agree that TCs are not the best choice for most applications. As well as needing cold junction compensation they also suffer from a small amount of non-linearity over there total measurement range, so absolute accuracy is not all the great unless you add curve fitting functions. Their main claim to fame is that they are fairly inexpensive to manufacture and have very high maximum temperature capability. However if you don't need the very high temperature feature then RTDs and some of the newer semiconductor temp sensors can be much more accurate and a lot easier to interface with.

Lefty

How high a temp can RTDs go to?


Rob

Graynomad:
How high a temp can RTDs go to?


Rob

It varies. At the refinery we could buy 500F max RTD from just about any RTD supplier, 700F from just a few and I only found one that would rate theirs to 1000F.

Lefty

OK thanks I'm thinking oven thermometer and even my missus doesn't burn things that much :slight_smile: so the 500F versions would do just fine.

Unfortunately I've just laid out the PCB using a MAX6675 so for this one I'll probably stick with that.


Rob