Use of the Log Function to Calculate Temperature for an NTC Thermistor

' Program THERMIS_1.BAS
'
' Calculate the temperature of T_F at 25 equal intervals over the range of
' R_therm from 5.0K to 30.0K for a nominal 10K NTC thermistor.
'
' The primary intent of this routine was to experiment with the natural
' log function.  
'
' This uses the classic two point thermistor model where;
' 
' T_K = 1/(a + b*ln(R_therm))
'
' This will later be interfaced with an A/D converter so as to 
' determine the thermistor's resistance and thus the temperature which
' may then be logged to the BasicX's EEPROM or an external 24LC256.
'
' Another technique for measuring the thermistor's resistance is the use 
' of the RCtime command.
'
' copyright, Onya D. Barnes, Baltimore, MD, Sept, '99

Public Sub Main()

   Const a as single = 0.000413200	' thermistor constants
   Const b as single = 0.000320135
   
   Dim R_therm as single
   Dim n as integer
   Dim T_K as single
   Dim T_C as single
   Dim T_F as single

   Call OpenSerialPort(2, 9600)
		
   For n=0 to 25  ' Note the necessity to cast n as a float
      R_Therm=5000.0 + 25000.0*(Csng(n)/25.0) ' generate an R_therm
      T_K=1.0/(a+b*log(R_therm))	' degrees Kelvin
'     Call PutS(T_K)			' display the value - for debugging
'     Call Putbyte(32)
      T_C=T_K - 273.15			' calculate degrees C
      T_F=1.8*T_C + 32.0		' degrees C

      Call PutS(R_Therm)		' display R_therm and T_F
      Call Putbyte(32)
      Call PutS(T_F)
      Call Newline()
   Next

End Sub