Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/schreibfaul1/esp32-tft-library-ili9486
A library for 3.5 inch RPi LCD (A) 320x480 display from Waveshare
https://github.com/schreibfaul1/esp32-tft-library-ili9486
arduino esp32 ili9486 xpt2046
Last synced: 3 months ago
JSON representation
A library for 3.5 inch RPi LCD (A) 320x480 display from Waveshare
- Host: GitHub
- URL: https://github.com/schreibfaul1/esp32-tft-library-ili9486
- Owner: schreibfaul1
- Created: 2017-10-29T05:09:57.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-06-03T11:48:55.000Z (over 2 years ago)
- Last Synced: 2024-10-11T13:38:26.269Z (3 months ago)
- Topics: arduino, esp32, ili9486, xpt2046
- Language: C
- Size: 3.78 MB
- Stars: 97
- Watchers: 6
- Forks: 26
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ESP32-TFT-Library-ILI9486
A library for 3.5 inch RPi LCD (A) 320x480 display from Waveshare, for LCD (B) comment line 61 and uncomment line 62 in tft.cpp
![Display](https://github.com/schreibfaul1/ESP32-TFT-Library-ILI9486/blob/master/images/tested%20displays.png)Create new fonts with MikroElektronika GLCD Font Creator and insert the new font in fonts.h
You can also display bitmaps, touchpadcontroller XPT2046 is included
Examplecodes:
```` c++
#include "Arduino.h"
#include "ili9486.h"// GPIOs for SPI
#define SPI_MOSI 23
#define SPI_MISO 19
#define SPI_SCK 18// GPIOs for TFT/TP
#define TFT_CS 22
#define TFT_DC 5
#define TP_CS 13
#define TP_IRQ 12TFT tft;
//-------------------------------------------------------------------------------------
void setup() {tft.begin(TFT_CS, TFT_DC, VSPI, SPI_MOSI, SPI_MISO, SPI_SCK);
tft.setRotation(1); //landscape
tft.fillScreen(TFT_BLACK);
tft.setFont(Times_New_Roman66x53);
tft.setTextColor(TFT_CYAN);
tft.setCursor(20,30);
tft.print("Hello World!");
}
//-------------------------------------------------------------------------------------
void loop(void) {
for(uint8_t rotation=0; rotation<4; rotation++) {
tft.setRotation(rotation);
tft.fillScreen(TFT_BLACK);
tft.setCursor(20,30);
tft.print("Hello World!");
delay(3000);
}
}
//-------------------------------------------------------------------------------------````
Display a bitmap or jpg file, thanks to Bodmer for his great work - JPEG Decoder Library
https://github.com/Bodmer/JPEGDecoder
```` c++
#include "Arduino.h"
#include "SPI.h"
#include "SD_MMC.h"
#include "FS.h"
#include "ili9486.h"// GPIOs for SPI
#define SPI_MOSI 23
#define SPI_MISO 19
#define SPI_SCK 18// GPIOs for TFT/TP
#define TFT_CS 22
#define TFT_DC 5
#define TP_CS 13
#define TP_IRQ 12TFT tft;
//-------------------------------------------------------------------------------------
void setup() {
pinMode(2, INPUT_PULLUP);
if(!SD_MMC.begin("/sd", true)){
log_e("SD Card Mount Failed");
while(1){}; // endless loop
}
tft.setFrequency(40000000);
tft.begin(TFT_CS, TFT_DC, VSPI, SPI_MOSI, SPI_MISO, SPI_SCK);
}
//-------------------------------------------------------------------------------------
void loop(void) {
tft.setRotation(0); //portait
tft.drawBmpFile(SD_MMC, "/wall_e.bmp", 0, 0);
delay(2000);
tft.setRotation(3); //landscape
tft.drawJpgFile(SD_MMC,"/wallpaper1.jpg", 0,0);
delay(2000);
tft.drawJpgFile(SD_MMC,"/arduino.jpg", 100,50);
delay(2000);
}
//-------------------------------------------------------------------------------------
````
Use the touchpad
```` c++
#include "Arduino.h"
#include "ili9486.h"// GPIOs for SPI
#define SPI_MOSI 23
#define SPI_MISO 19
#define SPI_SCK 18// GPIOs for TFT/TP
#define TFT_CS 22
#define TFT_DC 5
#define TP_CS 13
#define TP_IRQ 12TFT tft;
TP tp(TP_CS, TP_IRQ);
uint16_t tp_x, tp_y;//-------------------------------------------------------------------------------------
void setup() {
tft.begin(TFT_CS, TFT_DC, VSPI, SPI_MOSI, SPI_MISO, SPI_SCK);
tft.setFrequency(40000000);
tft.setRotation(1); //landscape
tp.setRotation(1);
tft.fillScreen(TFT_BLACK);
tft.setTextColor(TFT_GREENYELLOW);
tft.setTextSize(4);
}
//-------------------------------------------------------------------------------------
void loop(void) {
tp.loop();
}
//-------------------------------------------------------------------------------------
// Events from TouchPad
void tp_pressed(uint16_t x, uint16_t y){
tp_x=x; tp_y=y;
}
void tp_released(){
tft.fillRect(100, 100, 120, 50, TFT_BLACK);
tft.setCursor(100, 100);
tft.print("PosX="); tft.println(tp_x);
tft.print("PosY="); tft.println(tp_y);
}
//-------------------------------------------------------------------------------------
````