The LM35 is a precision temperature sensor manufactured by Texas Instruments, with the part ID LM35. It provides an output voltage directly proportional to the temperature in degrees Celsius, making it an ideal choice for temperature monitoring and control applications. Unlike thermistors, 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 over a wide range of temperatures and provides a simple analog output. 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 Sensitivity | 10mV/°C |
Current Consumption | 60 µA (typical) |
Load Impedance | ≥ 10 kΩ |
The LM35 is available in a 3-pin TO-92 package (commonly used) and other package types. Below is the pinout for the TO-92 package:
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 straightforward to use in a circuit. Follow the steps below to integrate it into your project:
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
float voltage = sensorValue * (5.0 / 1023.0); // Convert to voltage (5V reference)
// Calculate temperature in Celsius (10mV per degree Celsius)
temperatureC = voltage * 100.0;
// Print temperature to Serial Monitor
Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.println(" °C");
delay(1000); // Wait 1 second before next reading
}
No Output Voltage:
Inaccurate Temperature Readings:
Fluctuating Output:
Q1: Can the LM35 measure negative temperatures?
A1: Yes, the LM35 can measure temperatures below 0°C. However, the output voltage will be negative, so additional circuitry (e.g., an op-amp) may be required to read negative values.
Q2: Can I power the LM35 with 3.3V?
A2: The LM35 requires a minimum supply voltage of 4V. For 3.3V systems, consider using a level shifter or a different temperature sensor compatible with 3.3V.
Q3: How do I convert the output voltage to Fahrenheit?
A3: Use the formula:
Temperature (°F) = (Temperature (°C) × 9/5) + 32
For example, if the output voltage corresponds to 25°C, the temperature in Fahrenheit is:
(25 × 9/5) + 32 = 77°F
.
By following this documentation, you can effectively integrate the LM35 temperature sensor into your projects and troubleshoot common issues with ease.