Background
I was considering making a temperature sensor from some NPN transistors. I read the Wikipedia page on Silicon Bandgap Temperature Sensors (can't use more than 2 links...) and this piece from Analog Devices, Inc., which I think neatly explains how two or more transistors can be used to sense temperature. Yet another reference is
The basic idea is that the base-emitter voltage V_BE can be related to temperature via.
V_BE = kT/q ln(I_C/I_s)
So, for two transistors.
V_BE1 = kT/q ln(I_C1/I_s1) V_BE2 = kT/q ln(I_C2/I_s2)
For two matched transistors, as in on an integrated circuit, I should have I_s = I_s1 = I_s2. Further, if I take the difference of these two.
V_BE1 - V_BE2 = kT/q ln(I_C1/I_s) - kT/q ln(I_C2/I_s)
Applying the fact that the difference between two logarithms ln(x) - ln(y) = ln(x/y),
V_BE1 - V_BE2 = kT/q ln( [I_C1/I_s] / [I_C2/I_s] )
And this equals
V_BE1 - V_BE2 = kT/q ln( [I_C1] / [I_C2] )
So, the difference in base-emitter voltages will give me temperature multiplied by a constant.
V_BE1 - V_BE2 = [k/q ln(I_C1/I_C2)] T
I made the following circuit. Since VB1 = VB2, VBE1 - VBE2 should equal VE1 - VE2, I measured the voltages VE1 and VBE2.
Schematic
simulate this circuit – Schematic created using CircuitLab
Data
Now, with CH1 across RE1 and CH2 across RE2, my oscilloscope reads the following.
I also used the oscilloscope's MEASURE utility to find that VE1 was about 1.88 volts on average and VE2 was about 1.76 volts on average. I also measured this with my digital multimeter and found that the voltages fluctuate, but at one time I measured 1.909 volts across VE1 and 1.782 volts across VE2. The actual resistance values of RE1 and RE2 are 98.4 kiloohms and 1.01 kiloohm respectively.
So I_C1 = VE1/RE1 and I_C2 = VE2/RE2.
Problem
Now, if I go strictly by the equation
V_BE1 - V_BE2 = [k/q ln(I_C1/I_C2)] T
with k as Boltzmann's constant, q is the elementary charge (charge of an electron), and I_C1 and I_C2 are the collector currents of transistor 1 and 2 respectively, I should get a temperature reading for T.
T = (V_BE1 - V_BE2) * 1/[k/q ln(I_C1/I_C2)]
I get absurd temperature readings like -5415.135909660602 degrees Celsius or if I flip the values for I_C1 and I_C2, I get 5415.135909660602 degrees Celsius.
Is there something I'm missing? Thanks!