Panteltje's th_pic page
Panteltje's th_pic page
A thermocouple adaptor with RS232 interface.
This one has connections for 4 thermocouples, and also measures cold side.
The adaptor is powered from the RS232 DTR line, no external power is needed.
Here it works both on the serial port or an USB to RS232 adaptor.
Disclaimer: This is an experimental setup, things get modified over time.
I made my own type T thermocouples by using resistance wire of .08 mm diameter (Conrad item nr 429074, 100 Ohm / m, less than 2 Euro),
together with transformer wire of about the same diameter, twisted together, and soldered at the end.
Used 60/40 soldered at 270 C, this seems to give no problems with temperature cycling from +150 C to close to 70 K.
Used 370 C to burn the isolation of the transformer wire before soldering.
I added a M3 nut to one of the thermocouples so it would sink to the bottom of the dewar.
The other thermocouple goes on the 'cold finger' of my cryocooler (see Ben's projects with the same type cryocooler).
A third thermocouple (thicker wire) measures the hot side (cooling fin) of the cryocooler).
I think accuracy all together is amazingly good for the money, not more than 4 degrees Kelvin off over the full range I'd say, tested from +150 C (+-1%) to -195.3 C (76 K).
This archive contains the diagram, the source asm file, and a pre-assembled hex file, and also a Linux C program and executable that displays the temperatures on the PC.
Click here to download th_pic-0.2.tgz
To run the software you will also need the th program:
Click here to download th-0.4.tgz
Example of output:
The circuit diagram:
The parts between the [ ] brackets are not fitted, the original idea was to make an extra negative supply for the 74HC4053 switches and opamp from the clock out of the PIC, plus a RS232 input.
You could replace the zener by a 78L05, and the BC547 by an opto coupler, then run the thing from a 9 V battery isolated from the PC ground, also 4 AAA cells would do without the 78L05 regulator and zener.
The not used pins of the second 74HC4053 should be connected to ground.
I have tried it with a LM324 opamp, as I had no LT1014 in the junkbox, it works, the quite large offset is cancelled out.
To improve readout stability I added 2 470 nF capacitors between output and - input of 2 channels of the LM324 opamp, it seems to help, maybe I will do the other 2 channles too.
Also I added a 100k trimpot to adjust the LM335 so it correctly displays the room temperature, say 'cold side'.
The hardware, PCB top:
In this picture the thermocouple connections are shorted with little wire bridges.
You can see the LM135 temperature sensor on the connection block.
It is possible to put the connection block further away from the main PCB by means of an extention cable, as long as you also move the LM135 cold side temperature sensor there.
The hardware, the PCB bottom:
How it works:
4 100x opamp amplifiers are switched between the + and - side of each thermocouple by means of 74HC4053 CMOS switches, sort of a chopper system.
This eliminates any offsets in the opamp, as only the difference in used of the 2 measured values for each thermocouple.
The output of the opamp is connected to a PIC 16F690 ADC, and the ADC steps are send to the PC via RS232 at 119200 Bd, 1 start -, 8 data - , and 1 stop bit.
The ADC also measures the temperature of the thermocouple connection block by means of a LM135 temperature sensor, this is used for cold side compensation.
The ADC steps for this cold side temperature, as well as the ADC reference voltage as a constant, is also send via RS232 to the PC.
This last feature allows several th_pic devices to be used interchangeably.
All calculations are done on the PC side by the thpc program, this allows for more simple PIC code.
The thpc program displays the cold side temperature, as well as the cold side corrected temperature of each thermocouple, for example like this:
2010 10 19 18:58:27   cold_side 22.9 °C   channel 1 type T 296.040 K 22.890 °C   channel 2 type T 295.430 K 22.280 °C   channel 3 type T 296.040 K 22.890 °C   channel 4 type T 296.040 K 22.890 °C
The 2.5V reference and the gain and offset of the opamp limit the range.
For a wider range reduce the op amp gain, then also change the #define OPAMP_GAIN 100.0 at the top of thpc.c and recompile.
To shift the range (in case you only want to measure positive or negative temperatures for example), you could change the value of the 33k resistor that controls the bias at the thermocouple inputs.
Click here for some more Microchip PIC based projects
Click here for some programs I make available under the GPL.