Interfacing 2.4 inch TFT LCD Display Shield with Arduino


This module is a 2.4-inch TFT LCD module with “320X240” resolution and 65K color display. It is suitable for Arduino Uno and Mega2560 development boards, and also supports SD card expansion function. It uses 8-bit parallel port communication, and the driver IC is ILI9341.

You can download the datasheet of this module here. 

2.4 INCH TFT Display Pinout

This module has 20 pins:

  • 5V: Module power supply – 5 V
  • 3.3V: Module power supply – 3.3 V
  • GND: Ground
  • LCD_RST: LCD bus reset signal, low level reset
  • LCD_CS: LCD bus chip select signal, low level enable
  • LCD_RS: LCD bus command / data selection signal, low level: command, high level: data
  • LCD_WR: LCD bus write signal
  • LCD_RD: LCD bus read signal
  • LCD_D0: LCD 8-bit data Bit0
  • LCD_D1: LCD 8-bit data Bit1
  • LCD_D2: LCD 8-bit data Bit2
  • LCD_D3: LCD 8-bit data Bit3
  • LCD_D4: LCD 8-bit data Bit4
  • LCD_D5: LCD 8-bit data Bit5
  • LCD_D6: LCD 8-bit data Bit6
  • LCD_D7: LCD 8-bit data Bit7
  • SD_SS: SD card SPI bus chip select signal, low level enable
  • SD_DI: SD card SPI bus MOSI signal
  • SD_DO: SD card SPI bus MOSI signal
  • SD_SCK: SD card SPI bus clock signal
Arduino pins A5, and digital pins D10, 11, 12, 13 – if SD card is not in use – are free while using this shield, and you can use them for other purposes.

You can see the pinout of this module in the image below.

Required Materials

Hardware Components

Arduino UNO R3 × 1
2.4 inch Touch TFT LCD Display Shield × 1

Software Apps

Arduino IDE

Interfacing 2.4 INCH TFT Display with Arduino

Step 1: Circuit

The 2.4-inch display is a ready-made shield for Arduino Uno, which can also be placed on the Arduino Mega. The pins of this shield are designed to be easily installed on the Arduino. The bad point about these modules is that they use all Arduino Uno pins.

Step 2: Library

You need the Adafruit TouchScreen, LCDWIKI_KBV, and LCDWIKI GUI  libraries to use this display module.

To install these 3 libraries, download the file below and put its contents in the Arduino libraries folder.

Step 3: Code

First, download the following file.

Open the downloaded file and upload the main.ino code on your Arduino Board. This code is for testing the display module and comes with full screen calibration.

You can also use the following file if you are using the PlatformIO software.

Liked What You See?​
Get Updates And Learn From The Best​

Comments (16)

  • Music Reply

    There are so many how to guides, however I like this one as it’s pretty much to the point without waffling and with the info I need. I only have one question, are the PlatformIO software files meant to be installed on the SD card to fit into the touch screen?

    January 26, 2023 at 6:50 am
    • Ali Abdolmaleki Reply

      thank you for your Attention, that’s our honer.
      no,we use SD Card for any high resolution data like image or video.
      not for PlatformIO software.

      February 28, 2023 at 2:18 pm
  • Tony Reply

    can this work with ESP32?

    July 4, 2023 at 8:13 pm
  • Ike Reply

    Hi, in the code you posted here, the IDE tells me that it can’t find “LCDhelper.h” (“Compilation error: LCDHelper.h: No such file or directory”), but I’ve installed everything from the dependencies zip file. What am I missing?

    August 30, 2023 at 8:13 pm
    • Mohammad Damirchi Reply

      Hi ike,
      LCDHelper files are in the file. You should extract them and the main.ino file in a folder named main and then run it.

      September 2, 2023 at 4:56 am
  • Bater Reply

    Hi Mohamed,
    further up you write: …Arduino pins 2, 3, A5, and A4 are free while using this shield, and you can use them to for other purposes.

    But looks like pin 2, 3 are used as LCD_D2, LCD_D3. Only RX and TX are not connected. But also not free for other purposes.
    Pin A4 is LCD_RST

    Only A5 is not in use?
    Regards, Bater

    September 2, 2023 at 10:12 pm
    • Mohammad Damirchi Reply

      Hi Bater
      Thank you so much.
      Yes, you are right. I fixed it.

      September 3, 2023 at 6:28 am
  • Norman Kirchner Reply

    Where and how do you configure the library for the TFT Sheild?

    September 8, 2023 at 8:06 pm
    • Mohammad Damirchi Reply

      Hi Norman,
      you can config your LCD type in the LCDHelper.cpp file.

      September 10, 2023 at 12:08 pm
  • fluffy Reply

    after i uplod the progra, why my tft lcd just white screen

    September 11, 2023 at 3:20 pm
    • Mohammad Damirchi Reply

      Hi fluffy,
      What is your board model?

      September 12, 2023 at 12:00 pm
  • Magdi Meekhail Reply

    the driver st7789v doesn’t work
    i’ve tried other,the letters appears backwards

    September 15, 2023 at 9:29 pm
    • Mohammad Damirchi Reply

      Hi Magdi,
      this LCD uses ILI9341,
      if u have any problems with Mirroring, visit this link i put on github.

      September 17, 2023 at 8:56 am
  • Ghanem Reply

    I am using 2.4 TFT LCD Shield with Arduino Uno. Please, is there any way to display images without using the SD card?
    Could you please suggest to me another LCD that can be connected to the computer to display images and has almost same size with the 2.4 TFT LCD Shield?

    February 21, 2024 at 4:32 am
    • Mohammad Damirchi Reply

      Hi Ghanem,

      Unfortunately, Arduino Uno and similar models have limited RAM capacity, making it challenging to display images directly from internal storage.
      However, you can opt for an ESP32 board coupled with a TFT LCD that supports the SPI protocol. By using libraries like TFT_eSPI and JPEGDecoder, along with the SPIFFS file system of the ESP32, you can display images stored within the ESP32’s memory.
      Moreover, since ESP32 boards come with Wi-Fi capabilities, you can set up a web server to receive input images, save them in SPIFFS, and then display them on your TFT LCD.

      February 24, 2024 at 1:00 pm

Leave a Reply

Your email address will not be published. Required fields are marked *