PN Junction temp Sensing

PN Junctions Serving as Temp Sensors

For some time Ive been skeptical about PN junctions serving as simple temperature sensors, probably because it seems too good to be true. So after seeing the temp gauge article in Septembers Nuts and Volts, I figured I'll try it out with some diodes

At First things were a little well, hairy. I was getting Voltages all over the place, and things didnt make sense. There were a great variance in my original readings so I Had to come up with a better solution. 

I grabbed a analog thermometer from outside we had in the window and figured I'll let this be my standard value. I would compare the results I got from the formula. The formula Nuts and Volts give is as follows, 

Vd(@T)= Vd(@0)- αT


Vd(@T) is the voltage at T

Vd(@0) Its Voltage at 0C

α = 2mV/C

T= the temperature 

So we have two variables, T and Vd(@0). Fortunate for us, Vd(@0) is easy to find, now that I know how to find it.I had the best of Luck with Transistors, TO-220 type or any type with a metal tab. I used NTE311. I tied the Base and collector together to eliminate error and noise.



1) Bias the transistor with current. I used a 470 Ohm resistor and a 5V supply. At room temp it gave any where from .645v to .660v, yours will be different. This is the T we will need to find.

2)  Next, Get some kind of container, fill with Ice,  water and about a table spoon of salt. Generously mix it together to get the salt mixed in with the water. Put your thermometer in the water and set in freezer

3) Wait. Wait until the thermometer reads 0C or Lower (But in range! -2C is acceptable) If you read lower It Will be OK, but you'll have to subtract the difference from your readings.

4) When water is cold enough Set up same circuit but use alligator clips to drip transistor into cold water. The water should cover the metal part and not the whole thing, since the water is now conductive and can throw off readings. Record Voltage. This is Vd(@0). 

4a) If yours was lower than 0C, Multiply that number by 2mV. Mine was off by -2C, So I had to subtract 4mV From each reading.

5) Re-Arrange Formula,

T= [Vd(@T) - Vd(@0)] / -2mV

This will give you the temperature where you measured Vd at. If you did this in a room, it should be around 23 to 25C. Be sure to measure the room temperature at the same place every time! Use a analog thermometer to confirm this.

The Most Important Number to know is Vd(@0C). This is the number you wont have most of the time. You'll always have Vd(T) but never Vd(0). To get this, youd have to find the Difference between the two voltages and take an average. Luckly, Ive done this already for you.

The Magic number is...48mV!. Just add on 48mV to your Reading at 25C to get Vd(0) and this will remain constant over the temp sensing range of the diode. Now what ever voltage you do get from the sensor, you can easily figure out the temperature. My Junctions have a overall accuracy of +/- 1.5C which isnt bad considering that the LM35 has a accuracy of +/- 1C.