I would like to describe/explain the working principle of the Temperature Measurement Process with the help of the following diagram. I apologize for any inconvenience.

Figure-1: Tentative Hardware Block Diagram of Temperature Measurement System

1. Your Temperature Sensor is given symbolic name TS, and it is connected to 5V supply via a 300 ohm (as you have said in your original post) resistor. According to data sheet of this sensor, it is a NTC (Negative Temperature Coefficient) type sensor.

2. According to your post, the TS provides:

(a) 4.75V when the Temperature is 50

^{0}F ==> A(50, 4.75)

(b) 1.70V when the Temperature is 221

^{0}F ==> B(221, 1.70)

(c) V

_{DT} when the Temperature is T

^{0}F ==> C(T, V

_{DT})

(From where have you got these values? Have you measured these practically or got it from data sheets?)

3. The DC voltage produced by TS is designated by the symbol V

_{DT}. Here, V stands for Voltage, D stands for DC Voltage, and T stands for T

^{0}F temperature. This means that the TS will produce a voltage V

_{DT} (0V to 5V) when the Engine Temperature is T

^{0}F.

4. The DC signal of the TS is sent to the Analog-to-Digital Converter (ADC) via Channel-1 (Ch1) of the ADC.

5. Based on the data of Step-2, we can draw the following response curve of TS:

Figure-2: Response curve of Temperature Sensor

6. Let us find the Equation for the ACB Line of Fig-2. It is of the form: y = mx +c.

(50 - 221) / (4.75 - 1.70) = (50 - T) / (4.75 - V

_{DT})

Upon simplification, we will find:

T = 316.3114 - 56.0655*V

_{DT}Validity Check of the above equation fo T:

With V

_{DT} = 4.75V:

T = 316.3114 - 56.0655*4.75 = 316.3114 - 266.3111 = 50.0002

^{0}F (OK!)

With V

_{DT} = 1.70V:

T = 316.3114 - 56.0655*1.70 = 316.3114 - 90.3113 = 221.0000

^{0}F (OK!)

7. The DC signal of the TS sensor is sent to the Analog-to-Converter (ADC) Module via Channel-1(Ch1). The V

_{DT} is digitized by the ADC, and it produces an equivalent 10-bit binary value. Let us designate this binary value by the symbolic name ADCT (value of ADC when the Engine Temperature is T

^{0}F). There is a relationship between V

_{DT} and ADCT, and it is given by: V

_{DT} = (5/1024)*ADCT (Let us leave the derivation pending!). Using the value of V

_{DT}, we can re-write the Equation of T of Step-6 as follows:

T = 316.3114 - 56.0655*V

_{DT}==> T = 316.3114 - 56.0655*(5/1024)*ADCT

The Arduino Command to read the ADC value (when the input signal is at Ch-1) is:

analogRead(A1). Now, the Equation for T becomes as:

T = 316.3114 - 56.0655*(5/1024)*analogRead(A1)

8. Finally, the Arduino Coding:

void setup()

{

Serial.begin(9600); //Serial Monitor becomes active

analogReference(DEFAULT); //Vref for ADC is 5V

}

void loop()

{

//T = 316.3114 - 56.0655*(5/1024)*analogRead(A1)

float T; //T is declared as 32-bit floating point number

T = 316.3114 - 56.0655*(5/1024)*analogRead(A1); //read TS; convert to Temp and assign to T

Serial.println(T, 2); //show Temp on Serial Monitor in degree F with 2-digit after decimal point

delay(3000); //refresh temperature at 3-sec interval.

}

9. To show the temperature value on the 7-segment display unit of Fig-1, one may consult the documents of

this link.