Arduino LCD 20×4 I2C Code Basic Tutorial

LCD I2C 20×4 Arduino

How to use LCD 20×4 Arduino I2C? – LCD 20×4 displays that use a monochrome display. These types of displays are often used in electronic devices such as clocks, thermostats, and appliances. They consist of a grid of 20 columns and 4 rows of pixels, which can be used to display text and simple graphics.

The display is monochrome, meaning that it can only display one color, typically white, green, or blue. The display is controlled by a microcontroller or computer, which sends data to the display over a set of wires or a serial connection. The display is usually backlit, which makes it easier to read in low-light conditions. One of the most current uses is Prusa 3D Printers.

The use of the 20×4 LCD is very easy with the help of the Arduino library, both for displaying text and characters. In this tutorial, we will learn how to display 20×04 LCD using Arduino.

Library liquidcrystal_i2c

First, click the download button to get the LiquidCrysta_I2Cl file:

After the download is complete, open Arduino IDE:

  • Click Sketch > Include Library > Add .ZIP Library
  • Choose the LiquidCrystal_I2C library that has been downloaded
  • Click File > Example
  • If the LiquidCrystal_I2C list appears, it means that the library has entered the Arduino IDE


Before Arduino is programmed, make the circuit first as shown in the image below.

LCD 20x4 Arduino I2C Code Basic Tutorial

Scan I2C Address

After you have assembled like the picture above, we must know the I2C address of the LCD. To be able to find out the address, we scan first. Please upload this code to your Arduino boards:

#include <Wire.h>

void setup() {
  Serial.begin (9600);
  while (!Serial) 
  Serial.println ();
  Serial.println ("Search I2C Address ...");
  byte count = 0;
  for (byte i = 8; i <120; i++)
    Wire.beginTransmission (i);
    if (Wire.endTransmission () == 0)
      Serial.println ("get it");
      Serial.print ("Address is: ");
      Serial.print ("0x");
      Serial.println (i, HEX);
      delay (1);  
  Serial.println ("Done.");
  Serial.print ("Found ");
  Serial.print (count, DEC);
  Serial.println (" Device.");
void loop() {}

Displaying Text on LCD

From the program above, in my case, I get the result that the ID address of this LCD is 0x3F. Another address for this LCD is 0x27. Upload the LCD 20×4 i2c code below to your boards.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F, 20, 4);  //another address commonly is 0x27

void setup()
  lcd.setCursor(0, 0);
  lcd.print("    Hello World!");
  lcd.setCursor(0, 2);

void loop()

if the upload is successful, you will see the result as shown in the following image

LCD 20x4 Arduino I2C

Good luck and I hope this article is useful. Want to share? Please use the share button below. Other tutorials about Arduino Display:

Similar Posts