The LM35 is a popular temperature sensor that outputs a voltage proportional to the temperature. By combining an LM35 with an Arduino board and an ADC, you can create a simple and accurate digital thermometer.
Hardware Setup
- Arduino Board: Choose a suitable Arduino board with built-in ADCs.
- LM35 Temperature Sensor: Connect the Vcc pin of the LM35 to the 5V pin on the Arduino, the ground pin to the ground pin on the Arduino, and the output pin (Vout) to an analog input pin on the Arduino.
- Display: Connect a display (e.g., LCD, seven-segment display) to visualize the measured temperature.
Arduino Code
Here’s a basic example of a digital thermometer using an LM35 sensor and a 10-bit ADC:
C++
const int analogPin = A0; // Analog input pin
const float referenceVoltage = 5.0; // Reference voltage (in volts)
const float lm35Sensitivity = 10.0; // LM35 sensitivity (mV/°C)
void setup() {
Serial.begin(9600);
}
void loop() {
int analogValue = analogRead(analogPin);
float voltage = (analogValue / 1023.0) * referenceVoltage;
float temperature = (voltage / lm35Sensitivity) - 0.5; // Offset of 0.5°C
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
// Display the temperature on the LCD or other display device
}
Explanation
- Read Analog Value: The
analogRead()
function reads the analog value from the LM35’s output pin. - Calculate Voltage: The formula
voltage = (analogValue / 1023.0) * referenceVoltage
converts the analog value to voltage. - Calculate Temperature: The formula
temperature = (voltage / lm35Sensitivity) - 0.5
converts the voltage to temperature, accounting for the LM35’s sensitivity and offset. - Display Temperature: The
Serial.print()
function displays the calculated temperature on the serial monitor.
Additional Considerations
- Accuracy: The accuracy of the thermometer depends on the ADC’s resolution, the reference voltage’s stability, and the LM35’s calibration.
- Temperature Range: The LM35 has a typical operating range of -55°C to +150°C. Ensure that the measured temperature falls within this range.
- Noise Reduction: Consider using filtering techniques to reduce noise in the analog signal, especially in noisy environments.
- Calibration: If necessary, calibrate the LM35 to ensure accurate temperature readings.
By following these steps and customizing the code to your specific requirements, you can create a functional digital thermometer using an Arduino board and an LM35 temperature sensor.