Category :Tutorials


4 Inches TFT Touch Screen for Arduino Mega2560

Buy from US Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES Buy from JP

1 Product Picture
2 Product Description
3 Product Parameters
4 Interface Definition
5 Connect to Arduino
6 How to use on Arduino
7 Program Download

Product Picture

Product Description

    • Support Arduino Mega2560 direct plug-in use
    • 3.95-inch color screen, support 16BIT RGB 65K color display, display rich colors
    • 320×480 resolution for clear display
    • Supports 8-bit and 16-bit parallel bus transmission with fast transfer speed
    • On-board 5V/3.3V level shifting IC, compatible with 5V/3.3V operating voltage
    • Support touch function
    • Provides an Arduino library with a rich sample program
    • Available on C51 and STM32 platforms with a rich sample program
    • Easy to expand the experiment with SD card slot
    • Military-grade process standards, long-term stable work
    • Provide underlying driver technical support

Product Parameters

Name Parameter
Display Color RGB 65K color
Screen Size 3.95(inch)
Type TFT
Driver IC ST7796S
Resolution 480*320 (Pixel)
Module Interface 8Bit or 16Bit parallel interface
Active Area 83.52×55.68(mm)
Module PCB Size 61.54×105.69 (mm)
back light 6 chip HighLight white LEDs
Operating Temperature -20℃~60℃
Storage Temperature -30℃~70℃
Operating Voltage 5V/3.3V
Power Consumption TBD
Product Weight(Package containing) 68 (g)

Interface Definition

The blue box in the above figure is the 8-bit/16-bit data bus mode switch, which is described as follows:

Solder R5 with 0Ω resistor or short circuit directly, and disconnect R4: select 16-bit data bus mode (default), use DB0~DB15 data pin
Solder R4 with 0Ω resistor or short circuit directly, and disconnect R5: select 8-bit data bus mode, use DB0~DB7 data pin
Number Module Pin Pin Description Number Module Pin Pin Description
1 5V Positive power supply 2 5V Positive power supply
3 DB8 8th bit of data bus(No need to use when using 8-bit mode) 4 DB9 9th bit of data bus(No need to use when using 8-bit mode)
5 DB10 10th bit of data bus(No need to use when using 8-bit mode) 6 DB11 11th bit of data bus(No need to use when using 8-bit mode)
7 DB12 12th bit of data bus(No need to use when using 8-bit mode) 8 DB13 13th bit of data bus(No need to use when using 8-bit mode)
9 DB14 14th bit of data bus(No need to use when using 8-bit mode) 10 DB15 15th bit of data bus(No need to use when using 8-bit mode)
11 DB7 7th bit of data bus 12 DB6 6th bit of data bus
13 DB5 5th bit of data bus 14 DB4 4th bit of data bus
15 DB3 third bit of data bus 16 DB2 2nd bit of data bus
17 DB1 1st bit of data bus 18 DB0 0 bit of data bus
19 LCD_RS LCD register / data selection signalLow level: register, high level: command 20 LCD_WR LCD write control signal
21 LCD_CS LCD screen select control signal, low level enable 22 LCD_RST LCD reset control signal, low reset
23 NC Undefined, reserved 24 LCD_RD LCD read control signal
25 TP_IRQ Touch screen interrupt control signal, low level when touch is detected 26 NC Undefined, reserved
27 NC Undefined, reserved 28 NC Undefined, reserved
29 SD_CS SD card select control signal, low level enable 30 NC Undefined, reserved
31 MISO SPI bus input signal 32 MOSI Touch screen chip select control signal, low level enable
33 EX_CLK SPI bus clock signal 34 TP_CS SD card select control signal, low level enable
35 GND Power ground 36 GND Power ground


Connect to Arduino Mega2560

How to use on Arduino

  • Step 1: Download the test program
  1. Download the Arduino test program:
  2. For a description of the relevant test procedures, please refer to the test program documentation in the package
  • Step 2: Connect the Arduino development board
  1. Plug the module directly into the Arduino development board
  2. After the module is plugged in, power on the Arduino board
  • Step 3: Copy the dependent library
  1. Make sure the Arduino IDE is installed on your computer (if it is not installed: Arduino IDE download URL)
  2. After installing the Arduino IDE, you need to copy the dependent library to the Arduino project directory as follows:
(1) Decompress the downloaded test package
(2) Copy the dependent libraries in the Install libraries directory in the package (shown below) to the libraries folder of the Arduino project directory (the default Arduino project directory is C:\Users\Administrator\ Documents\Arduino\libraries).
  • Step 4: Compile and download the program to the development board
  1. Open the sample in the Example directory of the package to test, compile and download( Don’t know how to compile and download?
  • Step 5: Observe the running of the program
      1. After the program is downloaded, run it directly and observe the running status. If it can be displayed normally, the program runs successfully, as shown in the following figure (take the colligate_test test program as an example):
      2. This set of test procedures contains the following test items:
        1. Example_01_Simple_test is a simple swipe test that does not depend on the library, can be used to detect the LCD hardware;

        B.Example_02_clear_screen is a simple solid color brush test;

        1. Example_03_colligate_test is a comprehensive test, including graphics, lines, text display;
        2. Example_04_display_graph is a graphical display test, including graphics drawing and filling test;
        3. Example_05_display_scroll for character and graphic scroll display test;
        4. Example_06_display_string is a character display test;
        5. Example_07_show_bmp_picture is a picture display test, read the bmp picture in the SD card and display it;
        6. ExampIe_08_switch_test is the switch display and touch test;
        7. ExampIe_09_dispIay_phonecaII is a telephone dialing interface display and touch test;
        8. ExampIe_10_touch_pen is a touch pen test;
        9. SDCard Exten Example for Arduino platform SD card function test, including writing and reading;


Graphical Programming Tutorial for Arduino – Traffic Light Controller


The real time traffic light controller is a complex piece of equipment which consists of power cabinet, main controller or processor, relays, control panel with switches or keys, communication ports etc.

In this lesson, we will go over how to build a traffic light circuit with an arduino microcontroller.



  • Osoyoo UNO Board (Fully compatible with Arduino UNO rev.3) x 1
  • One Digit 7-Segment LED Display x 1
  • 74HC595 x 1
  • 200 ohm Resistor x 7
  • LEDs (Red LED x 2, Yellow LED x 2, Green LED x 2)
  • Breadboard x 1
  • Jumpers
  • USB Cable x 1
  • PC x 1

About this project

The use of personal vehicles is very common now a days and a result, the number of vehicles on the roads are exponentially increasing. Roads without any supervision or guidance can lead in to traffic congestions and accidents.

Traffic Lights or Traffic Signals are signalling devices that are used to control the flow of traffic. Generally, they are positioned at junctions, intersections, ‘X’ roads, pedestrian crossings etc. and alternate the priority of who has to wait and who has to go.

The traffic lights will provide instructions to the users (drivers and pedestrians) by displaying lights of standard color. The three colors used in traffic lights are Red, Yellow and Green.

In this project, an Arduino based Traffic Light Controller system is designed. It is a simple implementation of traffic lights system but can be extended to a real time system with programmable timings, pedestrian lighting etc. There is a green LED, which represents the green light. A yellow LED, which represents the yellow light. And a red LED, which represents the red light.

We will show all the hardware connections and the software needed to make this circuit work.


Build the circuit as below:

In this experiment, we use a 7-segment display to count down and set two groups of traffic lights to represent two directions, let’s say, north-south (TF1) and east-west (TF2), as shown in the above picture.


After above operations are completed, connect the Arduino board to your computer using the USB cable. The green power LED (labelled PWR) should go on.Open the Graphical Programming software Mixly and follow the next operations:

Setup baud rate and define datArray[] to store the to-be-display number.

Set a function State 1(), to light up a red LED(Pin 5).

Display the number from 9 to 1 on the 7-segment Display, and light up the Green2 LED (Pin 4), set T_CP( Pin 12) Low and hold low for transmitting, then pull it to save the data.

Turn off the Green LED (Pin 4), and display the number 3 to 1 on the display, then turn on Yellow 2 LED (Pin 3). Next, dim LED Yellow 2 and Red 1( Pin 5).

Next comes the State2() The blocks of State2() is just similar and you can study by yourself.

Execute function State 1() and State2().

Running Result

A few seconds after the upload finishes, you can see what is similar to the traffic light now. First, the 7-segment display counts down from 9s, and the red light in the TF1 and the green one in the TF2 light up. Then it counts down from 3, and the green LED in the TF2 goes out when the yellow lights up, with the TF1 red light still on. 3s later, the 7-segment counts down from 9s again. Meanwhile, the red light in the TF2 and the green in the TF1 light up. After 9s, it counts down from 3s, when the yellow light in the TF1 lights up and the red in the TF2 keeps on. And this repeats over and over again, as a traffic light would.

Although it is not the ideal implementation for real life scenarios, it gives an idea of the process behind the traffic light control system.

Note: The project implemented here doesn’t include the pedestrian crossing and pedestrian signaling in to consideration.

Once you know how the software operates, you can change the values to make the LEDs be on or off for any period of time. For example, instead of being on for 9 seconds, you can easily change it to 15 seconds or 30 seconds. You could make the yellow LED be on just for 1 second or 2 seconds.