ESP32 – Display
Testaufbau ESP32 Display
Beschreibung ESP32 Display
Dieses Projekt gibt, bei meinem Test, „Hello World“ auf einem Display von 320x240px aus. Das Display basiert, auf dem Controllers ILI9341, mit einer SPI-Schnittstelle. Als ESP32 Modul kommt ein AZ Delivery ESP32S Dev Kit C zum Einsatz.
Die Einbindung, des Displays in die ESP32 Software, erfolgt mit der Library TFT_eSPI von Bodmer, in der Version 2.5.43. Mit dieser Library können vielfältige Informationen auf dem Display angezeigt werden, von einfachen Texten, wie in meinem Beispiel, als auch komplexe Grafiken.
Das Modul kann auch als Touch Screen Einheit in der Software verwendet werden.
Hardware
Die Hardware ist ein ESP32 mit einem 2,8 Zoll LCD TFT Touch Display, basierend auf dem Controller ILI9341.
- AZ Delivery ESP32S Dev Kit C
- Display ILI9341-320x240px SPI
Schaltplan
Software
Die Arduino IDE benötigt zum Betrieb des Displays eine Library. Im Library Manager unter Tools. wird TFT_eSPI von Bodmer, in der Version 2.5.43 hinzugefügt.
Library: TFT_eSPI
Anpassen der Library Einstellungen
Für den korrekten Betrieb des Displays, müssen nun die Einstellungen in TFT_eSPI\User_Setup.h geändert werden.
Pfad unter Windows: C:\Users\….\Documents\Arduino\libraries\TFT_eSPI\User_Setup.h
Die markierten Zeilen sind auszukommentieren, 45, 88, 92, 212-217
// Display type - only define if RPi display
//#define RPI_DISPLAY_TYPE // 20MHz maximum SPI
// Only define one driver, the other ones must be commented out
#define ILI9341_DRIVER // Generic driver for common displays
//#define ILI9341_2_DRIVER // Alternative ILI9341 driver, see https://github.com/Bodmer/TFT_eSPI/issues/1172
//#define ST7735_DRIVER // Define additional parameters below for this display
//#define ILI9163_DRIVER // Define additional parameters below for this display
// #define TFT_WIDTH 170 // ST7789 170 x 320
#define TFT_WIDTH 240 // ST7789 240 x 240 and 240 x 320
// #define TFT_HEIGHT 160
// #define TFT_HEIGHT 128
// #define TFT_HEIGHT 240 // ST7789 240 x 240
#define TFT_HEIGHT 320 // ST7789 240 x 320
// #define TFT_HEIGHT 240 // GC9A01 240 x 240
// For ESP32 Dev board (only tested with ILI9341 display)
// The hardware SPI can be mapped to any pins
#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS 15 // Chip select control pin
#define TFT_DC 2 // Data Command control pin
#define TFT_RST 4 // Reset pin (could connect to RST pin)
//#define TFT_RST -1 // Set TFT_RST to -1 if display RESET is connected to ESP32 board RS
Programm Code
#include <TFT_eSPI.h> // Library für ILI9341 Controller
TFT_eSPI tft = TFT_eSPI(); // Library init
void setup(void) {
tft.init();
tft.setRotation(2);
tft.setTextSize(3); // Grosse Schrift
tft.fillScreen(TFT_BLACK); // Schwarzer Hintergrund
tft.setTextColor(TFT_WHITE, TFT_BLACK); // Weisse Schrift, Schwarzer Hintergrund
tft.drawString("Hello World!", 0, 0, 2); // Text ausgeben
}
void loop() {
delay(1000);
}
Andere ESP32 Beiträge: ESP32 – Entfernungsmesser,