

The LM35 is a precision temperature sensor manufactured by Sensor, with the part ID LM35. It provides an output voltage directly proportional to the Celsius temperature, making it an ideal choice for temperature measurement and control applications. Unlike many other temperature sensors, the LM35 does not require any external calibration or trimming, ensuring high accuracy and reliability. Its linear output and ease of interfacing with microcontrollers make it a popular choice for a wide range of projects.








The LM35 is designed to operate efficiently in a variety of environments. Below are its key technical details:
| Parameter | Value |
|---|---|
| Supply Voltage (Vcc) | 4V to 30V |
| Output Voltage Range | 0V to 1.5V (for 0°C to 150°C) |
| Temperature Range | -55°C to +150°C |
| Accuracy | ±0.5°C (at 25°C) |
| Output Scale Factor | 10mV/°C |
| Current Consumption | 60 µA (typical) |
| Load Impedance | ≥ 10 kΩ |
The LM35 has a 3-pin TO-92 package, as shown below:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | Vcc | Positive power supply (4V to 30V) |
| 2 | Vout | Analog output voltage proportional to temperature |
| 3 | GND | Ground (0V reference) |
The LM35 is simple to use in a circuit, requiring minimal external components. Below are the steps and considerations for using the LM35:
Below is an example of how to connect and read temperature data from the LM35 using an Arduino UNO:
// LM35 Temperature Sensor Example with Arduino UNO
// Reads temperature in Celsius and prints it to the Serial Monitor
const int sensorPin = A0; // Analog pin connected to LM35 Vout
float temperatureC; // Variable to store temperature in Celsius
void setup() {
Serial.begin(9600); // Initialize serial communication at 9600 baud
}
void loop() {
int sensorValue = analogRead(sensorPin); // Read analog value from LM35
// Convert the analog value to voltage (5V reference, 10-bit ADC)
float voltage = sensorValue * (5.0 / 1023.0);
// Convert voltage to temperature in Celsius (10mV per °C)
temperatureC = voltage * 100.0;
// Print the temperature to the Serial Monitor
Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.println(" °C");
delay(1000); // Wait 1 second before the next reading
}
Incorrect Temperature Readings
No Output Voltage
Fluctuating Output
Overheating
Q1: Can the LM35 measure negative temperatures?
Yes, the LM35 can measure temperatures as low as -55°C. However, for negative temperatures, the output voltage will be below 0V, which may require additional circuitry to read.
Q2: Can I use the LM35 with a 3.3V microcontroller?
Yes, the LM35 can operate with a supply voltage as low as 4V. However, if your microcontroller uses a 3.3V ADC reference, you may need to adjust the calculations accordingly.
Q3: How do I extend the cable length for the LM35?
Use shielded cables to reduce noise and interference. Additionally, place a decoupling capacitor (e.g., 0.1 µF) near the sensor to stabilize the output.
Q4: Is the LM35 waterproof?
No, the standard LM35 is not waterproof. For outdoor or wet environments, consider using a waterproof housing or a specialized waterproof temperature sensor.
By following this documentation, you can effectively integrate the LM35 into your projects for accurate and reliable temperature measurements.