ESP32 + ILI9341Display Parallel Interface + Touch

Hallo,
Ich habe ein 8 Bit paralleles Display an den ESP32 angeschlossen. Es ist alles verkabelt und funktioniert wie es sollte, aber ich kann keine Möglichkeit finden, die Touch-Funktion zum Laufen zu bringen. Ich weiß, dass die TFT_eSPI-Bibliothek von Bodmer kein Touch mit Displays mit paralleler Schnittstelle unterstützt, daher wollte ich wissen, ob es eine andere Bibliothek gibt, die die Touch-Funktion ermöglicht. Was muss ich sonst noch beachten, wenn ich das machen möchte?

Ich verwende dieses Display: ARD SHD 2,6TD: Arduino Shield - Display 2,6", Touch, 320 x 240 Pixel, ILI9341 bei reichelt elektronik =2788&gclid=CjwKCAjwur-SBhB6EiwA5sKtjvb6Pzaq75KTZJ5bmA2nP4vU5lk41Eb2kSV7-LO7WXmnIInniQKDUxoC2yYQAvD_BwE

Danke im Voraus!!

Dann schau mal hier nach

Wo finde ich in dem verlinkten Text die Touch-Funktion. Bitte setze mir eine Brille auf :slightly_smiling_face:

Stimmt.....ich habe mir den Beitrag nochmal genauer durchgelesen. Was ich als Touch definiert hatte, hat nix damit zu tun.
Sorry, kein Touch.

Mach ein Bild der Pin Seite und lese was für IC drauf sind einer durfte mit X anfangen

Hallo,

nach der touch_pen.ino aus dem Demo-Archiv von Reichelt hat das Display keinen Touchcontroller, es werden also die Widerstandswert vom Arduino ausgewertet. Ich habe damals mit solchen Touch-Displays eigentlich mehr Ärger als Funktion gehabt. Ob es eine Lib für den ESP32 dazu gibt? Nötig sind 4 GPIO, davon müssen 2 zur Laufzeit auf ADC umschaltbar sein. Prinzipiell kann der ESP32 das ja.
Zumindest ha da jemand schonmal was gebaut:
https://github.com/dracir9/ESP_TouchScreen

Ich habe Dein Display nur in 2,4", läuft auf den Mega2560 gesteckt auch mit Touch, nicht aber mit dem ESP32. Wie hast Du nur die Anzeige gemacht?

Habe alles so gemacht wie hier:

Der Autor des Artikels hat selber auch keine Ahnung wie das dann zusätzlich mit dem Touch gehen soll…

Hallo,

Ich habe jetzt Bilder dieses Displays gefunden, helfen mir aber nicht weiter, weil die Bezeichnungen der beiden ICs nicht lesbar sind und die Beschriftung der Leiste seltsam ist, dort ist der SPI-Bus der SD-Karte mit rausgeführt, aber kein Hinweis auf den Touch.

Die Frage ob ein Touch-Controller drauf ist (IC XT2046 o.ä.), wurde ja schon gestellt.
Ich vermute ja, daß keiner drauf ist.

Gruß aus Berlin
Michael

Ja, nur resistiv mit Analogpin.

Danke für den Link, ich habe es mit dieser Beschreibung versucht, leider bekomme ich nichts angezeigt. Zum Touch hätte ich zumindest eine wage Idee, die ich nun leider nicht testen kann, also nur theoretisch.

Entnommen aus dem Programm für den Mega2560, Pins geändert auf ESP32:

#include <TouchScreen.h>  // https://github.com/adafruit/Adafruit_TouchScreen
...
#define YP 14   // auch LCD_RS, must be an analog pin
#define XM 12   // auch LCD_WR, must be an analog pin
#define YM 18    // can be a digital pin
#define XP 17    // can be a digital pin
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
...
void loop(void) {
  TSPoint p = ts.getPoint();
  // if sharing pins, you'll need to fix the directions of the touchscreen pins
  //pinMode(XP, OUTPUT);
  pinMode(XM, OUTPUT);
  pinMode(YP, OUTPUT);
  //pinMode(YM, OUTPUT);
...
}

Das mußt Du ohne Funk testen, weil sonst ADC2 nicht funktioniert. Mit Funk müßtest Du 12 und 14 auf 32 und 33 verlegen.

Da gibt es sogar Bodmer (Ersteller der TFT_eSPI Lib) Ratschlage

Das ist ein anderes Display mit SPI.

Das Display in diesem Thema hat aber 8 Bit parallel.

Da das Display auf einem UNO Platz finden soll, sind die analogen Pins mit denen des Displays doppelt belegt. Man muß also unterscheiden, ob ein analoger Tochwert ausgelesen oder eine Anzeige verändert werden soll.

Außerdem mißt ein UNO 0 bis 1023, ein ESP32 0 bis 4095.

OK ist mir nicht aufgefallen (SPI) :flushed:

Außerdem mißt ein UNO 0 bis 1023, ein ESP32 0 bis 4095.

durfte kein Problem sein bei Kalibrierung

Sehe ich auch so, wirkt sich auf die Kalibrierung aus:

#define TS_MINX 120
#define TS_MAXX 900
#define TS_MINY 70
#define TS_MAXY 920