top of page

Demystifying Arduino LCD Connections: Step-by-Step Guide to I2C LCD Module Interfacing and Text Out

Updated: Feb 12

We all know that the television screen we see today has gone through a lot of stages of development in terms of technology to reach the present stage. There can be two types of display, LCD (Liquid crystal Display) and #LED (Light Emitting Diode). In this article, we are going to discuss how to interface this LCD module with Arduino through code to get the desired output.

We will be dealing with different types of output like Static or Non-moving text output, Moving text, Blinking text output, etc. So, let's get started.

Table of content :

Hardware Requirements Setup for Arduino LCD Connection

1. Arduino Board

Arduino UNO
Arduino UNO

#Arduino board is a microcontroller that is used to accept inputs from sensors connected and provide an output action on the desired device connected to it. The sensor inputs can be from light-detecting sensors, motion sensors (Ultrasonic or IR), temperature sensors, etc. The output function done on the devices can be turning on an LED, the sound of a buzzer, or a Serial monitor display.

Buy Arduino from here.

2. I2C LCD Board

I2C LCD Module
I2C LCD Board

I2C is basically a serial protocol which is used for two-wire interfacing. It connects low-speed devices like A/D, D/A, #microcontrollers, and other peripherals. I2C LCD is an easy display device that uses a few lines of code for any text output.

Buy I2C LCD Board from here.

3. Jumper Wires

Jumper Wires
Jumper Wires

These are the main components that are used to establish the connections between different devices of the circuit.

Buy Jumper Wires from here.

Software Requirements

Arduino IDE

Arduino IDE Logo
Arduino IDE Logo

Arduino IDE (Integrated Development Platform) which is used to interface the boards like #NodeMCU to run the desired code designed to interface hardware devices.

Circuit Connections

Circuit Diagram
Circuit Diagram

This circuit has simple connections. There are four pins on the I2C #LCD that need to be connected to the Arduino board.

  • The Ground pin of the LCD must be connected to the Ground pin of Arduino.

  • The VCC pin of the LCD needs to be connected to the 5V pin in Arduino.

  • The SDA (Serial Data) pin is connected to the analog pin (A4) of Arduino.

  • The SCL (Serial Clock) pin is connected to another analog pin (A5) of the Arduino.

The Arduino board is then connected to the system in which the code is written and interfaced.

This completes the circuit connections. Let's see how the code for different text outputs work.



As usual, the SDA line is enabled and the data transmission begins. The backlight is switched ON. The data is displayed from the right side and using one of the library functions of LCD, the scrollDisplayLeft( ) function is executed to allowing scrolling of data from the present position to the left. Using #SCL, a delay is given and again the data starts scrolling from right to left.

For the complete code for all these programs, download the following documents.

Note: Please change the file format to .ino(Arduino IDE) format before you upload the code to the Arduino board.

Here are the images that show how the circuit is when connected and interfaced.

Circuit connected and before interfacing.
Circuit connected and before interfacing.
Circuit connected and interfaced.
Circuit connected and interfaced.

The video given below shows an explained version of the circuit building, working of the code, and display of output for better understanding.

Project video by Aishwarya Balajee

Using the I2C LCD modules and displaying messages and text is a very interesting circuit/device to explore. These devices themselves on a larger scale are implemented almost everywhere. Say the traffic lights, the ticket display at theatres, the token number display at banks, and many more. Learn how to display your message on the LCD screen and start developing your circuit now.

LCD Pin Diagram and Arduino Display: A Guide to Interfacing LCD Display with Arduino


LCD displays (Liquid Crystal Displays) are widely used for visualizing information in various projects. These displays come in different sizes, with the LCD display 16x2 being a popular choice due to its compact size and ease of use. In this guide, we'll walk you through the process of interfacing a LCD display 16x2 with an Arduino board to create a simple and informative display.

LCD Pin Diagram:

Before we delve into the Arduino integration, let's understand the pin diagram of a typical LCD display 16x2:

  1. VSS (Ground): Connect this pin to the ground (GND) pin of your Arduino board.

  2. VCC (Power): Connect this pin to the +5V pin of your Arduino board.

  3. VO (Contrast): This pin controls the contrast of the display. Connect it to a potentiometer to adjust the contrast.

  4. RS (Register Select): Connect this pin to a digital pin on the Arduino. It determines whether the data sent is a command or character.

  5. RW (Read/Write): Connect this pin to ground (GND) to set the display in write mode.

  6. E (Enable): Connect this pin to a digital pin on the Arduino. This pin enables the data to be read or written.

  7. D0-D7 (Data Pins): These are the data pins. Connect them to digital pins on the Arduino for data transfer.

Interfacing LCD Display 16x2 with Arduino:

To interface the LCD display 16x2 with an Arduino, follow these steps:

  1. Connect the VSS pin to GND, VCC to +5V, and VO to a potentiometer for contrast control.

  2. Connect the RS pin to a digital pin on the Arduino, and the RW pin to GND.

  3. Connect the E pin to another digital pin on the Arduino.

  4. Connect the data pins (D0-D7) to consecutive digital pins on the Arduino.

Arduino Code:

Here's a simple Arduino code to initialize the LCD display and show "Hello, Arduino!" on the screen:

#include <LiquidCrystal.h>LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // RS, E, D4, D5, D6, D7void setup() {
  lcd.begin(16, 2); // Initialize the LCD with 16x2 dimensions
  lcd.print("Hello, Arduino!");

void loop() {
  // No additional actions needed in this example


Interfacing an LCD display with an Arduino is a fundamental skill for any electronics enthusiast. By following the pin diagram and using the provided code, you can display text and information on the LCD screen easily. This opens up possibilities for creating various informative and interactive projects using Arduino and LCD displays.

In the realm of electronics, the combination of LCD displays and Arduino microcontrollers opens the door to countless creative possibilities. In this guide, we'll delve into the exciting world of LCD display integration with Arduino boards. Whether you're a beginner or an experienced maker, this guide will walk you through the steps of harnessing the potential of LCD displays in your projects.

LCD Display Arduino Connection:

Connecting an LCD display to an Arduino involves understanding the pin configuration and establishing proper connections. For instance, the RS (Register Select) pin is used to differentiate between command and data input, while the RW (Read/Write) pin determines the direction of data flow. By meticulously wiring the LCD pins to specific digital and analog pins on the Arduino, you set the stage for seamless communication between the two components.

LCD Display Arduino Code:

To bring the LCD display to life with the Arduino, coding plays a pivotal role. Utilizing libraries such as the LiquidCrystal library simplifies the process. Consider the following code snippet, which displays "LCD Arduino Integration" on a LCD display 16x2:

#include <LiquidCrystal.h>LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7void setup() {
  lcd.begin(16, 2); // Set the LCD dimensions
  lcd.print("LCD Arduino");

void loop() {
  // Your dynamic content updates could go here

LCD Display Applications:

The synergy between LCD displays and Arduino extends across a spectrum of applications. From creating real-time weather stations that provide visual forecasts to crafting interactive menus for home automation systems, the LCD-Arduino combination empowers your ideas. Imagine building a digital thermometer that not only measures temperature but also displays it on a clear LCD screen.

Expanding Possibilities:

Taking your LCD-Arduino journey further, you can explore advanced concepts such as scrolling text, animated graphics, and user input handling. Integrate sensors to showcase live data, or design a simple game where players interact with the LCD screen using buttons connected to the Arduino.


The fusion of LCD displays and Arduino microcontrollers exemplifies innovation at its finest. By comprehending the intricacies of LCD pin configurations, mastering the code that brings these displays to life, and pushing the boundaries of creativity, you can transform ordinary projects into extraordinary experiences. So, dive into the world of LCD-Arduino integration and unlock a realm of visual communication and interaction.



Learn electronics from Learn Electronics!

Follow us -

Please do follow us i.e #learnelectronicsindia to get daily updates about new blogs, videos, courses, quizzes, and contests.

Check us :

Click on the below links for internship and other opportunities:

Related Posts

See All


Daipayan Maitra
Daipayan Maitra
Aug 10, 2023

Excellent article on LCD interfacing with Arduino! Your explanation of arduino LCD connection was precise and well-illustrated. I will definitely be using your guide for my upcoming project. Kudos!


Your article on interfacing LCD DISPLAY with Arduino was a great read. Your knack for explaining complex concepts in a simple manner is commendable. It would be awesome to see content about integrating sensors, especially ldr interfacing with Arduino. Looking forward to more!


Anushka Gupta
Anushka Gupta
Jul 27, 2023

Learn Electronics India has done an incredible job with this article. Their attention to detail and dedication to providing clear explanations is commendable. I've bookmarked this page for future reference, and I'm eager to explore more of their content. Highly recommended.


LearnElectronics India simplifies complex concepts beautifully. Thank you!


Jun 21, 2023

Your blog post on LCD display Arduino was exactly what I needed. The instructions for arduino LCD connection were spot on, and I found it easy to implement. Thank you for sharing your expertise on LCD interfacing with Arduino!

bottom of page