The LM35 is one of the most popular analog temperature sensors used in Arduino and electronics projects. It measures temperature by outputting a voltage directly proportional to degrees Celsius, and is widely used in weather stations, industrial monitoring systems, and home automation projects.
What is LM35?

The LM35 is a precision integrated-circuit temperature sensor designed to measure temperature in Celsius (Centigrade). It produces an analog output voltage that changes linearly with temperature, making temperature measurement simple and accurate.
One of the biggest advantages of LM35 is that it is directly calibrated in Celsius, so there is no need to subtract a constant voltage like with some temperature sensors calibrated in Kelvin. This makes it easier to use in electronic projects, microcontroller applications, and temperature monitoring systems.
LM35 overview
| Parameter | Value |
|---|---|
| Sensor Type | Analog Temperature Sensor |
| Operating Voltage | 4V – 30V |
| Current Consumption | 60µA |
| Temperature Range | -55°C to +150°C |
| Output Type | Analog |
| Sensitivity | 10mV/°C |
| Accuracy | ±0.5°C (at 25°C) |
| Communication | Analog Voltage Output |
| Mounting Type | Through Hole |
| Compatible Boards | Arduino Uno, ESP32, Raspberry Pi |
Pinout

| Pin Name | Type | Description |
|---|---|---|
| VCC | Power | Supplies power to the sensor (4V – 30V) |
| VOUT | Output | Outputs analog voltage proportional to temperature |
| GND | Power | Ground connection |
Note: The VOUT pin delivers 10mV for every 1°C rise in temperature. For example, at 25°C the output voltage will be 250mV.
Working principle
The LM35 works by converting temperature into a proportional analog voltage. Internally, it uses a temperature-sensitive transistor circuit that changes its electrical characteristics as temperature rises or falls.
For every 1°C increase in temperature, the VOUT pin produces exactly 10mV higher output. This makes the relationship between temperature and voltage very straightforward:
Output Voltage = Temperature (°C) × 10mV
For example:
- At 0°C → Output = 0mV
- At 25°C → Output = 250mV
- At 100°C → Output = 1000mV (1V)
Since the output is a clean analog voltage, a microcontroller like Arduino simply reads it through an ADC (Analog to Digital Converter) pin and converts it back to a temperature value using a simple formula.
The LM35 does not require any external calibration because it is factory-trimmed to deliver accurate results straight out of the box. It operates on a supply voltage between 4V and 30V and draws very little current (around 60µA), making it ideal for low-power applications.
Internal circuitry of the LM35
Although the LM35 looks like a simple 3-pin transistor, it contains several key components inside its IC package.

1. Temperature-Sensitive Transistor (BJT) The primary sensing element that detects temperature changes by varying its base-emitter voltage (VBE).
2. Differential Amplifier Amplifies the small voltage signal from the BJT and ensures a clean, linear 10mV/°C output.
3. Voltage Reference Circuit Sets the baseline for accurate output, eliminating the need for external calibration.
4. Output Buffer Drives the VOUT pin with low impedance for direct interfacing with a microcontroller ADC.
5. Thin Film Resistor Network Maintains accuracy and sets gain across the full temperature range of −55°C to +150°C.
Specifications
| Parameter | Value |
|---|---|
| Supply Voltage | 4V – 30V |
| Supply Current | 60µA (Typical) |
| Output Voltage Range | -550mV to +1500mV |
| Temperature Range | -55°C to +150°C |
| Sensitivity | 10mV/°C |
| Accuracy | ±0.5°C (at 25°C) |
| Linearity | ±0.25°C |
| Load Current | 1mA (Maximum) |
| Quiescent Current | 56µA (Typical) |
| Response Time | 1 second (in still air) |
| Operating Temperature | -55°C to +150°C |
| Storage Temperature | -60°C to +155°C |
| Package Types | TO-92, TO-CAN, SOIC-8 |
| Output Impedance | 0.1Ω (at 1mA load) |
Practical projects
*Download the datasheet: PDF here