3.5 Zoll TFT-LCD (Arduino-Shield) an ESP32 betreiben möglich?

Hi zusammen,

ich habe folgendes Display:

das eigentlich als Shield für einen Arduino UNO gedacht ist.

grafik

Hat von euch jemand so ein Display schon mal erfolgreich an einen ESP32 angeschlossen?
Die Touchscreen-Funktionalität wäre mir im Prinzip gar nicht wichtig.
Ich möchte es nur als Display verwenden.

Oder würdet ihr euch sowas hier kaufen:

Aber so wie ich das sehe (wahrscheinlich total falsch :wink: hab ich dann nur noch 3 freie GPIOs, oder?

LG Daniel

Das Display ist für 5V ausgelegt, ich würde es eher für 5V Systeme verwenden.

Was hältst du von dieser Kombination aus ESP32 / Display?

https://de.aliexpress.com/item/1005004632953455.html

Hi,

der Link funktioniert bei mir leider nicht ;-(

grafik

Aber:
Wenn ich den ESP mit 5V Eingangsspannung versorge, sollte ich doch am Vin 5Volt abgreifen können, oder? Ich hab mal die Pins des Displays neben die Pins eines Arduino-Style ESP32 geschrieben:

Meinst nicht, dass das funktionieren könnte?
Allerdings wirds da wahrscheinlich keine passende Library für geben...

LG

Nein, ich glaube nicht, dass das von dir gezeigte Teil 5V ausgibt oder verträgt.

Bei mir geht der Link, komisch.

Kopier mal diesen mit der Hand, irgendwas macht das Forum da nicht korrekt.

https://de.aliexpress.com/item/1005004632953455.html

2 Likes

Danke dir, hört sich gut an

Leider nein, da so viele Kabel notwendig sind. Aber ich hätte als Vorlage ILI9341 + ESP32 (Parallel) verwendet.

Meine ESP32 vertragen übrigens alle 5 V an den digitalen Pins, da würde ich das Display auch mal mit 5 V versuchen.

Bitte berichte!

Viel Glück mit dem Ansatz.

Mein Glück würde ich gerne für andere Dinge einsetzen. Im Datenblatt meiner älteren ESP32 stand die 5V-Festigkeit noch drin, inzwischen nicht mehr. Die letzten Revisionen könnten aber zu einer Änderung geführt haben.

Nö, ESP32 waren immer 3.3V Devices.

Habe mich beschien schlau gemacht wollte den auch holen, nur da hat ein Uno mehr Pins wie das ding, ist wahrscheinlich ein 8 Bit Display also sind 12 Pins belegt

Such nach 3,5" TFT SPI die funktionieren 1A, und statt dem ala Uno nehme normalen ESP32, dann haste mehr Freude,

1 Like

Hallo basementmedia,

ich habe es geschafft, dass von dir oben beschriebene 3,5 Zoll TFT an einem ESP32S anzuschließen.

Es funktioniert mit den TFT_eSPI Libraries von Bodmer.

Wichtig ist die Einstellung der User_Setup.h.

Hier meine Werte (ich habe die auskommentierten Stellen gelöscht):

// User defined information reported by "Read_User_Setup" test & diagnostics example

#define USER_SETUP_INFO "User_Setup"

#define ILI9486_DRIVER

// Tell the library to use 8 bit parallel mode (otherwise SPI is assumed)
#define TFT_PARALLEL_8_BIT

// The ESP32 and TFT the pins used for testing are:
#define TFT_CS 33 // Chip select control pin (library pulls permanently low
#define TFT_DC 18 // Data Command control pin - must use a pin in the range 0-31
#define TFT_RST 32 // Reset pin, toggles on startup

#define TFT_WR 4 // Write strobe control pin - must use a pin in the range 0-31
#define TFT_RD 2 // Read strobe control pin

#define TFT_D0 12 // Must use pins in the range 0-31 for the data bus
#define TFT_D1 13 // so a single register write sets/clears all bits.
#define TFT_D2 26 // Pins can be randomly assigned, this does not affect
#define TFT_D3 25 // TFT screen update performance.
#define TFT_D4 21
#define TFT_D5 5
#define TFT_D6 27
#define TFT_D7 14

Das Display habe ich mit den oben genannten Pins verbunden. Zusätzlich 5V und (!) 3V und GND.

BG

Menion

1 Like

Hey, dankeschön.
Ich hab mit jetzt schon ein anderes Display besorgt werd das aber trotzdem mal testen.

Lg und schönen Sonntag allen
Daniel

Mit einem 3,5 Zoll SPI TFT Display geht es einfacher, sind nur wenige Kabel zu verbinden. Außerdem funktioniert das SPI Display auch mit dem ESP8266, das parallele geht nicht, der ESP8266 hat zu wenige Pins.

BG

Menion

1 Like

Eigentlich ist das Display für meinen Sohnemann.
Der will da ein kleines Spiel (So Tetris-mäßig) drauf programmieren.

Und das "alte" oben von mir beschriebene Display ist ja eigentlich als Shield für einen Arduino Uno oder Mega gedacht. Also haben wir das mal mit einem Arduino Mega getestet und ein Vierech von Links nach rechts "fliegen" lassen.#Da ist uns aufgefallen, dass die Perfomance etwas zu wünschen übrig lässt. Man sieht richtig, wie das Bild immer wieder neu aufgebaut wird, hat also keine flüssige Bewegung.

Liegt das

  • am Arduino Mega (zu langsam)
  • am TFT Display (zu langsam)
  • an beiden :wink:

Ich werd das dann auch nochmal mit dem andern Display dass ich mir für den ESP 32 bestellt habe testen.

Evtl. liegt es auch noch zusätzlich an der Programmierung.
Wenn Du immer mit clear das ganze Display löschst, muss das Display mehr tun, als nötig.
Besser wäre, das alte Rechteck mit der Hintergrundfarbe zu überschreiben und dann das neue mit der Vordergrundfarbe zu zeichnen.

Gruß Tommy

Hi Tommy,

genau so mach ich schon, also kein clear...
Trotzdem läuft die Bewegung noch "relativ" ruckelig. Aber das wird wohl dann doch an dem China TFT liegen.

Lg Daniel

Ok, dann ist die Hardware an ihren Grenzen.

Gruß Tommy

Ich bezweifle, dass die Hardware das Limit ist, ungeachtet ihres Ursprungs.

Hallo, ich habe das gleiche Display am ESP32 WROM Mini laufen. Als Bibliothek nehme ich die LGFX (LovyanGFX.h) Bibliothek. Als Config habe ich folgenden Code:

lass LGFX : public lgfx::LGFX_Device
{ lgfx::Panel_ILI9486  _panel_instance;   // ILI9486 oder R61581
  lgfx::Bus_Parallel8  _bus_instance;

  public:
    LGFX(void)
    { { auto cfg = _bus_instance.config();

        cfg.i2s_port = I2S_NUM_0;   // 
        cfg.freq_write = 20000000;  // 
        cfg.pin_wr =  16;            // WR 
        cfg.pin_rd =  15;            // RD 
        cfg.pin_rs = 17;            // RS(D/C)
        cfg.pin_d0 = 2;             // D0
        cfg.pin_d1 = 13;            // D1
        cfg.pin_d2 = 26;            // D2
        cfg.pin_d3 = 25;            // D3
        cfg.pin_d4 = 27;            // D4
        cfg.pin_d5 = 12;            // D5
        cfg.pin_d6 = 14;            // D6
        cfg.pin_d7 = 4;             // D7
        _bus_instance.config(cfg);
        _panel_instance.setBus(&_bus_instance);
      }

      { auto cfg = _panel_instance.config();
        cfg.pin_cs           =    33;
        cfg.pin_rst          =    32;
        cfg.pin_busy         =    -1;  // -1 = disable

        cfg.panel_width      =   320;  // 
        cfg.panel_height     =   480;  // 
        cfg.offset_x         =     0;  // 
        cfg.offset_y         =     0;  // 
        cfg.offset_rotation  =     2;  // 0..7 (4..7 ist Spiegelverkehrt)
        cfg.dummy_read_pixel =     0;  // 8
        cfg.dummy_read_bits  =     0;  // 1
        cfg.readable         = true;   // 
        cfg.invert           = false;  // 
        cfg.rgb_order        = false;  // 
        cfg.dlen_16bit       = false;  // 
        cfg.bus_shared       = false;  // 

        _panel_instance.config(cfg);
      }

      setPanel(&_panel_instance);
    }
};

Das Display hat zwar einen 3.3V Pin, der ist aber nirgends angeschlossen. Stattdessen wird das Display über 5V Versorgt die dann mit dem Erkenntlichen Linearregler auf 3.3V runtertransformiert werden. Ich habe das Display mit 5V versorgt und greife am mittleren untern Anschluss des Linearreglers (1A Version) die Spannungsversorgung für den ESP32 mit ab. Funktioniert einwandfrei.

Bzgl. Performance ist das Display auch super bekomme Framerate bis zu 35Fps hin und nichts scheint da langsam zu sein.