uno 2.2 tft display made in china
The main component of Me TFT LCD Screen module is a LCD display communicating with Makeblock Orion through serial port to show characters and graphics of different size and colors. The module is integrated with MCU and memory chip, and the Chinese characters, letters, and figures stored in the memory chip can be invoked easily through the serial port. Its blue/gray ID means that it has a double-digital signal port and needs to be connected to the port with blue or gray ID on Makeblock Orion.
Since the port of Me TFT LCD Screen has blue/gray ID, you need to connect the port with blue or gray ID on Makeblock Orion when using RJ25 port. Taking Makeblock Orion as example, you can connect to ports No. 5 as follows:
When the Dupont wire is used to connect the module to the Arduino UNO Baseboard, its TX and RX pins should be connected to TX and RX ports respectively as follows:
If you use Arduino to write a program, the library Makeblock-Library-master should be invoked to control the Me TFT LCD Screen. This program serves to display different graphics and characters through Arduino programming.
This module (Me TFT LCD Screen – 2.2 Inch) contains a voltage converter, an STM32 chip, and a serial flash memory of 2M. In contrast with other displays, it needs only serial port for communication, so it is easy to operate and connect.
A special serial port assistant is provided to help you set the baud rate of transmission, and store the processed pictures you want to display into the flash memory so as to implement the display or switch of boot pictures in your own project. To download pictures, you need other serial port for conversion. In addition, it also supports superposition of background pictures and the letters, and GUI display. Its applications include the calendar, voltage meter, ampere meter, etc.
We have used Liquid Crystal Displays in the DroneBot Workshop many times before, but the one we are working with today has a bit of a twist – it’s a circle! Perfect for creating electronic gauges and special effects.
LCD, or Liquid Crystal Displays, are great choices for many applications. They aren’t that power-hungry, they are available in monochrome or full-color models, and they are available in all shapes and sizes.
Today we will see how to use this display with both an Arduino and an ESP32. We will also use a pair of them to make some rather spooky animated eyeballs!
There are also some additional connections to the display. One of them, DC, sets the display into either Data or Command mode. Another, BL, is a control for the display’s backlight.
The above illustration shows the connections to the display. The Waveshare display can be used with either 3.3 or 5-volt logic, the power supply voltage should match the logic level (although you CAN use a 5-volt supply with 3.3-volt logic).
Another difference is simply with the labeling on the display. There are two pins, one labeled SDA and the other labeled SCL. At a glance, you would assume that this is an I2C device, but it isn’t, it’s SPI just like the Waveshare device.
This display can be used for the experiments we will be doing with the ESP32, as that is a 3.3-volt logic microcontroller. You would need to use a voltage level converter if you wanted to use one of these with an Arduino Uno.
The Arduino Uno is arguably the most common microcontroller on the planet, certainly for experiments it is. However, it is also quite old and compared to more modern devices its 16-MHz clock is pretty slow.
The Waveshare device comes with a cable for use with the display. Unfortunately, it only has female ends, which would be excellent for a Raspberry Pi (which is also supported) but not too handy for an Arduino Uno. I used short breadboard jumper wires to convert the ends into male ones suitable for the Arduino.
Once you have everything hooked up, you can start coding for the display. There are a few ways to do this, one of them is to grab the sample code thatWaveshare provides on their Wiki.
The Waveshare Wiki does provide some information about the display and a bit of sample code for a few common controllers. It’s a reasonable support page, unfortunately, it is the only support that Waveshare provides(I would have liked to see more examples and a tutorial, but I guess I’m spoiled by Adafruit and Sparkfun LOL).
Open the Arduino folder. Inside you’ll find quite a few folders, one for each display size that Waveshare supports. As I’m using the 1.28-inch model, I selected theLCD_1inch28folder.
You can see from the code that after loading some libraries we initialize the display, set its backlight level (you can use PWM on the BL pin to set the level), and paint a new image. We then proceed to draw lines and strings onto the display.
After uploading the code, you will see the display show a fake “clock”. It’s a static display, but it does illustrate how you can use this with the Waveshare code.
This library is an extension of the Adafruit GFX library, which itself is one of the most popular display libraries around. Because of this, there isextensive documentation for this libraryavailable from Adafruit. This makes the library an excellent choice for those who want to write their own applications.
As with the Waveshare sample, this file just prints shapes and text to the display. It is quite an easy sketch to understand, especially with the Adafruit documentation.
The sketch finishes by printing some bizarre text on the display. The text is an excerpt from The Hitchhiker’s Guide to the Galaxy by Douglas Adams, and it’s a sample of Vogon poetry, which is considered to be the third-worst in the Galaxy!
Here is the hookup for the ESP32 and the GC9A01 display. As with most ESP32 hookup diagrams, it is important to use the correct GPIO numbers instead of physical pins. The diagram shows the WROVER, so if you are using a different module you’ll need to consult its documentation to ensure that you hook it up properly.
The TFT_eSPI library is ideal for this, and several other, displays. You can install it through your Arduino IDE Library Manager, just search for “TFT_eSPI”.
There is a lot of demo code included with the library. Some of it is intended for other display sizes, but there are a few that you can use with your circular display.
To test out the display, you can use theColour_Test sketch, found inside the Test and Diagnostic menu item inside the library samples. While this sketch was not made for this display, it is a good way to confirm that you have everything hooked up and configured properly.
A great demo code sample is theAnimated_dialsketch, which is found inside theSpritesmenu item. This demonstration code will produce a “dial” indicator on the display, along with some simulated “data” (really just a random number generator).
One of my favorite sketches is the Animated Eyes sketch, which displays a pair of very convincing eyeballs that move. Although it will work on a single display, it is more effective if you use two.
The first thing we need to do is to hook up a second display. To do this, you connect every wire in parallel with the first display, except for the CS (chip select) line.
The Animated Eyes sketch can be found within the sample files for the TFT_eSPI library, under the “generic” folder. Assuming that you have wired up the second GC9A01 display, you’ll want to use theAnimated_Eyes_2sketch.
The GC9A01 LCD module is a 1.28-inch round display that is useful for instrumentation and other similar projects. Today we will learn how to use this display with an Arduino Uno and an ESP32.
The TFT display is a kind of LCD that is connected to each pixel using a transistor and it features low current consumption, high-quality, high-resolution and backlight. This 2.8-inch full color LCD has a narrow PCB display. The resolution is 320×280 pixels and it has a four-wire SPI interface and white backlight.
The new line of 3.5” TFT displays with IPS technology is now available! Three touchscreen options are available: capacitive, resistive, or without a touchscreen.
Checking a TFT lcd driver is very messy thing especially if its a Chinese manufactured TFT. TFT’s that are supplied by Chinese manufactures are cheap and every body loves to purchase them since they are cheap,but people are unaware of the problems that comes in future when finding the datasheet or specs of the particular TFT they purchased. Chinese manufactures did not supply datasheet of TFT or its driver. The only thing they do is writes about the TFT driver their lcd’s are using on their websites. I also get in trouble when i started with TFT’s because i also purchased a cheap one from aliexpress.com. After so many trials i succeeded in identifying the driver and initializing it. Now i though to write a routine that can identify the driver.
I wrote a simple Arduino Sketch that can easily and correctly identify the TFT Lcd driver. I checked it on 2.4, 3.2 and 3.8 inch 8-bit TFT lcd and it is identifying the drivers correctly. The drivers which i successfully recognized are ILI9325, ILI9328, ILI9341, ILI9335, ST7783, ST7781 and ST7787. It can also recognize other drivers such as ML9863A, ML9480 and ML9445 but i don’t have tft’s that are using this drivers.
The basic idea behind reading the driver is reading the device ID. Since all the drivers have their ID’s present in their register no 0x00, so what i do is read this register and identify which driver tft is using. Reading the register is also a complex task, but i have gone through it many times and i am well aware of how to read register. A simple timing diagram from ST7781 driver explains all. I am using tft in 8-bit interface so i uploaded timing diagram of 8-bit parallel interface. The diagram below is taken from datasheet of ST7781 tft lcd driver.
The most complex tft i came across is from a Chinese manufacturer “mcufriend”. mcufriend website says that they use ILI9341 and ILI9325 drivers for their tft’s. But what i found is strange their tft’s are using ST7781 driver(Device ID=7783). This is really a mesh. I have their 2.4 inch tft which according to their website is using ILI9341 driver but i found ST7783 driver(Device ID=7783). The tft i have is shown below.
I am using Arduino uno to read driver. I inserted my lcd on arduino uno and read the driver. After reading driver i am printing its number on Serial Monitor.
Note:On serial monitor driver number will be displayed like if your lcd is using ST7783 controller than on serial monitor 7783 will be displayed or if tft is using ILI9341 than on 9341 will be displayed.
The code works on Arduino uno perfectly but if you are using any other board, than just change the pin numbers according to the board that you are using also check out for the Ports D and B. TFT Data Pin D0 is connected to Port-B Pin#0 and D1 is connected to Port-B Pin#1. TFT Data Pins D2 to D7 are connected to Port-D Pins 2,3,4,5,6,7. So if you are using Arduino mega than check for the Ports D and B and Make connections according to them. Arduino mega is working on ATmega2560 or ATmega1280 Microcontroller and Arduino uno is working on ATmega328p Microcontroller so both platforms have ports on different locations on arduino board so first check them and then make connections. The same process applies to all Arduino boards.
According to my experence for another 2.2" LCD display with D/C Pin, I am using CD4050BE to convert the UNO pin 5v to 3.3v to fit to the TFT signal standard.
The graphic display coordinates and the text display coordinates of the 2.2”screen are two different coordinates systems. The origin of the graphic display coordinates begin from the centre point of the screen while that of the later one begins from the top left hand side of the screen.
The following codes are just one part of the API funciotn description. For more information, please refer to ST7687S Library Introduction and Display Library Introduction.
* @The formal parameter size refers to the text size based on the font(6×8). Size is rounded to the integer greater than 0; if size is 1, the pixel points the font occupied will be 6×8. if it is 2, that will be 12×16. The text out of the screen cannot be displayed;
The function of the program: realize the refreshing of the background color of the 2.2”screen and the switching of background color among red, white and black; there are 19 common defined color in the library, and users can also customize 4-bit hexadecimal code or decimal color code (0~65535) to alter the background color of the screen.
The function of the program: taking the centre point of the 2.2”screen as the starting point(note: the graphic display coordinates and the text display coordinates are two different coordinates, the centre point of the graphic display coordinates is (64, 64) while that of the later one is (0, 0)), display a character string ”fire” with red text background box, white font and the size of the font 2 on the screen. The formal parameter size of the function to set font size tft.setTextSize (uint8_t size) should be greater than 0 and the text out of the screen cannot be displayed.
The function of the program: use the software image2lcd.exe to extract the bitmap of one image and display it on the centre part of the 2.2”screen(note: for the reason of UNO’s internal memory, the following demo cannot be accepted on UNO since the image file is too large, but it can be displayed on ESP32. So you’d better choose small image file if you want to display it on UNO. ) The parameter selection of the software is provided below.
Truly’s US$200 million thin-film transistor-liquid crystal display (TFT-LCD) panel line in southern China’s Guangdong province has an annual production capacity of up to 24 million units of small to medium-sized displays.
Wong expects the firm to sell 5 million TFT-LCD units in the second half of this year and up to 20 million units in 2008. This will boost its revenue growth by a further 5 percent to 8 percent in 2007 and by more than 10 percent in 2008, he said.
Truly’s TFT panel line is not designed to compete with the world’s large TFT producers but to form the front and integral part of a vertical integration chain for its finished TFT module products.
((Reporting by Vinicy Chan and writing by Alison Leung; editing by Jane Baird; Reuters Messaging: vinicy.chan.reuters.com@reuters.net; +852 2843 6369, fax +852 2845 0636))