Arduino - Display Temperature from LM35 Sensor on LCD

In this tutorial, we are going to learn how to read the temperature from LM35 sensor and display it on an LCD 16x2 I2C.

Arduino LM35 Temperature Sensor LCD

Hardware Required

1×Arduino UNO or Genuino UNO
1×USB 2.0 cable type A/B
1×LM35 Temperature Sensor
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Please note: These are Amazon affiliate links. If you buy the components through these links, We will get a commission at no extra cost to you. We appreciate it.

About LM35 Temperature Sensor and LCD I2C

If you do not know about LM35 Temperature Sensor and LCD I2C (pinout, how it works, how to program ...), learn about them in the following tutorials:

Wiring Diagram

Arduino LM35 Temperature Sensor LCD Wiring Diagram

This image is created using Fritzing. Click to enlarge image

Arduino Code - LM35 Temperature Sensor - LCD I2C

/* * Created by * * This example code is in the public domain * * Tutorial page: */ #include <LiquidCrystal_I2C.h> // LCD I2C library #define ADC_VREF_mV 5000.0 // in millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A0 // pin connected to LM35 temperature sensor LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD I2C address 0x27 (from DIYables LCD), 16 column and 2 rows void setup() { Serial.begin(9600); lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight } void loop() { int adcVal = analogRead(PIN_LM35); // convert the ADC value to voltage in millivolt float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION); // convert the voltage to the temperature in Celsius float tempC = milliVolt / 10; float tempF = tempC * 9 / 5 + 32; // convert Celsius to Fahrenheit lcd.clear(); lcd.setCursor(0, 0); // start to print at the first row lcd.print(tempC); // print the temperature in Celsius lcd.print("°C"); lcd.setCursor(0, 1); // start to print at the second row lcd.print(tempF); // print the temperature in Fahrenheit lcd.print("°F"); // print the temperature to Serial Monitor Serial.print(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); delay(500); }

Quick Steps

  • Open Arduino IDE on your PC.
  • Navigate to the Libraries icon on the left bar of the Arduino IDE.
  • Search “LiquidCrystal I2C”, then find the LiquidCrystal_I2C library by Frank de Brabander
  • Click Install button to install LiquidCrystal_I2C library.
Arduino LiquidCrystal I2C library
  • Copy the above code and open with Arduino IDE
  • Click Upload button on Arduino IDE to upload code to Arduino
  • Put the sensor on hot and cold water, or grasp the sensor by your hand
  • See the result on LCD and Serial Monitor


The I2C address of LCD can vary according to the manufacturers. In the code, we used 0x27 that is specified by DIYables manufacturer

Video Tutorial

We are considering to make the video tutorials. If you think the video tutorials are essential, please subscribe to our YouTube channel to give us motivation for making the videos.

The Best Arduino Starter Kit