Thermometer can be easily constructed using a PIC Microcontroller and LM35 Temperature Sensor. LM35 series is a low cost and precision Integrated Circuit Temperature Sensor whose output voltage is proportional toΒ Centigrade temperature scale. Thus LM35 has an advantage over other temperature sensorsΒ calibratedΒ in Kelvin as the users donβt require subtraction of large constant voltage to obtain the required Centigrade temperature. It doesnβt requires any externalΒ calibration. It is produced by National Semiconductor and can operate over aΒ -55Β Β°C to 150 Β°C temperature range. Its output is linearly proportional to Centigrade Temperature Scale and it output changes byΒ 10 mV perΒ Β°C.
The LM35 Temperature Sensor has Zero offset voltage, which means that the Output = 0V, Β atΒ 0 Β°C. Thus for the maximum temperature value (150 Β°C), the maximum output voltage of the sensor would be 150 * 10 mV = 1.5V. Β If we use the supply voltage (5V) as the Vref+ for Analog to Digital Conversion (ADC) the resolution will be poor as the input voltage will goes only up to 1.5V and the power supply voltage variations may affects ADC output. So it is better to use a stable low voltage above 1.5 as Vref+. We should supply Negative voltage instead of GND to LM35 for measuring negative Temperatures.
This article only covers the basic working of Digital Thermometer using PIC Microcontroller and LM35, and uses 5V as Vref+. If you want more accurate results it is better to select Vref+ above 2.2V. I suggest you to useΒ Β MCP1525 IC manufactured by Microchip, which will provide precise output voltage 2.5.
Suggested Readings:Β
Circuit Diagram
Note: VDD and VSS of the pic microcontroller is not shown in the circuit diagram. VDD should be connected to +5V and VSS to GND.
You can download the complete MikroC Source Code and Proteus files at the bottom of this post. The Analog output voltage of LM35 temperature sensor is given to the Analog Input pin AN0 of the PIC Microcontroller. The result of the 10-bit Analog to Digital (A/D)Β ConversionΒ is read using the functionΒ ADC_Read(0). This 10-bit digital value is then converted to the corresponding voltage by multiplying with 0.4887 (For More Details read:Β Analog to Digital Converter in PIC Microcontroller). Then the Voltage is converted to corresponding character to Display it in LCD.
For more detail: Digital Thermometer using PIC Microcontroller and LM35 Temperature SensorΒ