Playing around with 2.8” TFT display with driver ILI9341 from ebay. This one has SPI connection and SD card reader built-in at the back of this TFT display. I choose the display without touch-screen because I don’t need it for my next project.
But it seems I always have trouble with things from ebay: this TFT display using driver ILI9341 that accept 3v3 signal and the module doesn’t come with a level conversion chip like this LCD Shield using driver 4535.
Because this TFT doesn’t have a 5v to 3v3 level shifter IC, so it simply won’t work with Arduino UNO which using 5v signal. So I have buy a level shifter ic.
You can be creative to get 3v3 TTL level out of 5v TTL level by using many methods:
- voltage divider using just couples of resistors
- transistors (in saturation mode) to switch between Vcc and Gnd
- mosfet (such as BSS138) which can be found in some Logic Level Converter module
- CMOS ic like 74HC245 that can be found in most TFT display that accept 5v signal
- or even a CD4066 (quad bilateral switch) could do the job (switch between 3v3 and GND)
To make it easier, you can get a 5v-3.3v Logic Level Converter module like this from ebay with a cheap price. It’s best for experiments with breadboard.
Let puts everything together.
There are 7 signal pins that need to be connected to Arduino UNO, but my level shifter modul has only 4 channels. So:
- I use 4 channels for SCK, MOSI, DC, CS.
- MISO and RESET pin, it is 3v3 level from TFT Display to 5v level at Arduino UNO which ([S]might[/S]) accepts 3v3 as HIGH. So, it should work without of level shifter
- And for LED pin, just hook it up to 3v3.
Tada! It works in first try!
Note:
- Using ILI9341 library from Adafruit
- MISO can be left disconnect if you don’t need to read the TFT driver id
- CS connect to pin 10 of Arduino UNO
- DC connect to pin 9 of Arduino UNO
- SD_CS connect to pin 8 of Arduino UNO
- RESET connect to pin Reset of Arduino UNO
[tag]Arduino, TFT LCD display ili9341[/tag]