Summary of Digital Thermometer using pic microcontroller and MCP9700
This tutorial details building a digital thermometer using a PIC16F877A microcontroller and an LM35 temperature sensor. The system reads analog voltage from the sensor, converts it via the internal SAR ADC, and displays the Celsius value on a 16x2 LCD. The project requires a PicKit 3 for programming, a 20 MHz crystal oscillator, a 7805 voltage regulator, and various passive components like resistors, capacitors, and a potentiometer to ensure accurate temperature measurement without external calibration.
Parts used in the Digital Thermometer using PIC Microcontroller:
- PicKit 3
- LM35 Temperature Sensor
- 16*2 LCD
- PIC16F877A IC
- 40 - Pin IC holder
- Perf board
- 20 MHz Crystal OSC
- Female and Male Bergstick pins
- 33pf Capacitor (2 Nos), 100uf and 10uf cap
- Resistors: 680 ohm, 220 ohm, 10K, and 560ohm
- Potentiometer 10k
- LED of any color
- Soldering kit
- IC 7805
- 12V Adapter
- Connecting wires
- Breadboard
In this article you will learn, Digital Thermometer using pic microcontroller and MCP9700:

In this tutorial, we are making a Digital Thermometer using PIC microcontroller and LM35 Temperature Sensor. In this project, we will sense the temperature using LM35 and display it on 16×2 LCD. LM35 Temperature Sensor is accurate and cheaper and doesn’t require any external calibration. The output voltage is proportional to Celsius temperature scale and changes by 10mV per °C.
Material Required
- PicKit 3
- LM35 Temperature Sensor
- 16*2 LCD
- PIC16F877A IC
- 40 – Pin IC holder
- Perf board
- 20 MHz Crystal OSC
- Female and Male Bergstick pins
- 33pf Capacitor – 2Nos, 100uf and 10uf cap.
- 680 ohm, 220 ohm, 10K and 560ohm Resistor
- Potentiometer 10k
- LED of any color
- 1 Soldering kit
- IC 7805
- 12V Adapter
- Connecting wires
- Breadboard
LM35 Temperature Sensor:
LM35 temperature sensor has zero offset voltage, which means at 0°C the output will be 0V. The maximum voltage it can handle is 1.5V which means it can be able to sense a maximum temperature of 150°C (1.5V / 10mV).
| Pin No | Function | Name |
| 1 | Supply voltage; 5V (+35V to -2V) | Vcc |
| 2 | Output voltage (+6V to -1V) | Output |
| 3 | Ground (0V) | Ground |
We have already used LM35 with many other microcontrollers to measure the temperature:
- Digital Thermometer using LM35 and 8051 Microcontroller
- Temperature Measurement using LM35 and AVR Microcontroller
- Digital Thermometer using Arduino and LM35 Temperature Sensor
- Room Temperature Measurement with Raspberry Pi
As we already told that LM35 gives analog output, so first we need to read that analog values using PIC Microcontroller and then we will convert them into digital values using ADC (Analog to Digital Conversion). So we will learn ADC in PIC Microcontroller before going any further.
ADC in PIC Microcontroller PIC16F877A:
There are many types of ADC available and each one has its own speed and resolution. The most common types of ADCs are flash, successive approximation, and sigma-delta. The type of ADC used in PIC16F877A is called as the Successive approximation ADC or SAR in short. So let’s learn a bit about SAR ADC before we start using it.
Successive Approximation ADC: The SAR ADC works with the help of a comparator and some logic conversations. This type of ADC uses a reference voltage (which is variable) and compares the input voltage with the reference voltage using a comparator and difference, which will be a digital output, is saved from the Most significant bit (MSB). The speed of the comparison depends on the Clock frequency (Fosc) on which the PIC is operating.
For more detail: digital thermometer using pic microcontroller and MCP9700
- What is the primary function of the LM35 sensor in this project?
The LM35 senses temperature with zero offset voltage at 0°C and provides an output proportional to the Celsius scale. - How does the PIC16F877A convert the sensor data?
The microcontroller uses its Successive Approximation Register (SAR) ADC to convert the analog voltage from the LM35 into digital values. - Can the LM35 sensor measure temperatures up to 150°C?
Yes, because the maximum voltage it can handle is 1.5V, which corresponds to a maximum temperature of 150°C. - What type of ADC is utilized in the PIC16F877A?
The PIC16F877A utilizes a Successive Approximation ADC (SAR) that compares input voltage with a variable reference voltage. - Does the LM35 require external calibration for this project?
No, the article states that the LM35 is accurate and does not require any external calibration. - What component is used to display the measured temperature?
A 16x2 LCD is used to display the temperature readings converted by the microcontroller. - What power supply configuration is required for the circuit?
The project uses a 12V adapter and an IC 7805 regulator to provide the necessary voltages, including 5V for the Vcc pin. - How is the speed of the ADC comparison determined?
The speed of the comparison depends on the Clock frequency (Fosc) on which the PIC is operating.
