TFT-Touch-Shield an Uno / ESP32

Moinsens!

Ich habe hier einen Uno und ein TFT-Touch-Shield dafür
(siehe 1. Bild)

Das Shield direkt auf den Uno gesteckt funktioniert anstandslos. Ein kleines Programm mit Buttons und Templates ermöglicht das Blättern durch die Seiten. Alles gut, aber...
(siehe 2. Bild)

Das Shield belegt ja so ziemlich alle Pins des Uno und selbst die paar, die nicht vom Shield benutzt werden, sind durch die Platine blockiert. Also hab ich mal das Shield mit Dupont-Kabeln verbunden und dabei auf die Verbindungen reduziert, die zum Betrieb notwendig sind. Auch das funktioniert.
(siehe 3. Bild)

Die benötigten Verbindungen reduzieren sich, wenn man den SD-Slot nicht benötigt, auf die 5 Steuerleitungen (blau), 8 Datenleitungen (gelb) und Versorgung mit 3,3V und Masse (orange und schwarz). Die von den Pins des Shield belegten, aber nicht zwingend benötigten, Verbindungen hab ich in weiss drin gelassen.
(siehe 4. Bild)

Nun hätte ich grundsätzlich ja einige Pins wieder frei und könnte den Uno benutzen. Aber ich würde den gerne mit Daten über's WLAN versorgen. Also hab ich weiter gesucht und fand bei

eine Seite, wie man das Shield an einen ESP32 anbinden können soll. Auch dort werden nur die 8+5+2 Leitungen benutzt, auf die ich schon am Uno reduziert hatte.
(siehe 5. Bild)

Aber leider... Das Display bleibt schwarz. Oder naja, nicht ganz. Es pulsiert alle 5 Sekunden zwischen einem Dunkelgrau und einem Hellschwarz. :wink: Ja, da ist ein delay(5000) am Ende der loop().
(siehe 6. Bild)

Nun hat Alberto auf seiner Seite eine Pin-Belegung gewählt, die das "Gewirr" kreuz und quer bei der Verkabelung weitestgehend, eigentlich sogar vollständig, vermeidet. Wie auch vielleicht einigermaßen zu sehen ist, kann man die Duponts ohne Auftrennen fast wie ein Flachbandkabel verlegen.

Die Lib von Bodmer (TFT_eSPI), die er verwendet, hat in der Default-Konfiguration eine etwas andere Pin-Belegung und ich hab mal versucht, diese im Original mit entsprechendem Wirrwar bei der Verkabelung zu benutzen. Aber auch bei diesem Versuch blieb das Display dunkel pulsierend.

Ich verwende übrigens einen 30-poligen ESP32. Der ist so breit, dass er nicht sinnvoll auf ein Breadboard passt, weil dann entweder links oder rechts nichts mehr frei bleibt. Stattdessen habe ich 2 kleine Breadboards nebeneinander gesteckt, wie man im 6. Bild oben sehen kann.
(siehe 7. Bild)

Kann mir hier jemand sagen, warum das Display am ESP32 nicht will? Hat das vielleicht schonmal jemand von euch aufgebaut? oder die Möglichkeit, es zu tun?

Gruß, Michael




(4) Uno TFT Dupont
(5) ESP32 TFT Dupont

2,2Zoll funktioniert 2.4" nicht komischerweise, hab auch den 2.4" nicht zum laufen gebracht

Ein SPI Display wäre doch deutlich einfacher und funktioniert sicher.
Und es bleiben noch Pins zur Nutzung frei.

Noch vor 2J gab es wenige bezahlbare SPI Display. Mittlerweile sind auch 4" SPI am Markt für 23€ , also nach der preis Erhöhung für Arduino und Raspi sogar bezahlbar

Meine 3,2" SPI habe ich hier schon länger liegen und die haben seinerzeit keine 12€ gekostet.
Ok, aktuell sind die auch etwas teurer.

@miriki
Überlege dir ein SPI Display zu verwenden.

Es ist kein SPI Sorry

Ja, sorry. War der falsche Link.

Ich wollt' g'rad sagen... Das ist doch genau das, was ich hier liegen hab...

Und naja, anderes Display... Ein anderes Display müsste ich erst kaufen, kostet also zunächst mal Geld und Zeit. Von denen hier habe ich bereits 2 Stück in der Schublade, und die haben keine 4, 5 Öre gekostet. Soll ich die wegschmeissen?

Interessant wäre eher, aber das wollte ich ggf. in einem Extra-Thread fragen, ob man so'n I2C-Adapter, wie ich ein paar für die 1602 / 2004 liegen hab, ggf. auch für dieses 2,4" benutzen kann. Aber während ich hier noch mit 5 Steuerleitungen herumprobiere, hat der I2C-Adapter nur noch 2. Soll ich dann die anderen 3 direkt vom Uno bzw. ESP32 abgreifen? Oder geht es gar nicht?

Wen Du entsprechende libraries schreibst dann ja, sonst nicht :wink:

Naja...kommt immer drauf an. Zeit ist auch Geld.
Und nein, das mit dem I2C-Adapter geht nicht so einfach. Hat fony ja schon geschrieben.

Du kannst aber auch ein ESP8266-01 an den Uno anbauen, um damit ins WLan zu kommen.
Ist aber auch mit etwas Aufwand verbunden. Wäre aber ne Alternative.

Ja, in die Richtung hatte ich auch schon gedacht. Ich könnte das Display per Dupont (also nicht direkt huckepack) an den Uno verbinden, hab dann etliche Pins frei und könnte z.B. RX/TX mit einem 8266 oder 32 verbinden, der dann die Verbindung zum WLAN macht. Ein kleines proprietäres Protokoll und los...

Btw: Amazon Suche "azdelivery spi tft" brachte ja mal nix ausser 2 mickrig-Displays. Und

ist... derzeit nicht verfügbar. Von:
https://create.arduino.cc/projecthub/techarea98/graphics-test-ili9341-tft-lcd-spi-display-78e1c3

Es gibt doch noch andere Lieferanten, wie z.B. Ebay, Eckstein, AliExpress usw.
Die haben alle solche Displays im Angebot. Siehe meinen vorherigen (geändert) Link.

Jup, Ali hatte ich auch schon kurz geschaut, eBay noch nicht. Aber unter 15 Ocken scheint es wohl nichts zu geben, deswegen habe ich auch nicht weiter gesucht. Das finde ich einfach zu teuer, weil ich meine bestehenden ja auch noch (vom Preis her) addieren, und dann auch noch 3..6 Wochen warten darf.

Es ist ja nicht so, dass die Displays defekt sind. Am Uno funktionieren die schließlich tadellos. Und grundsätzlich scheinen die ja auch am ESP32 zu laufen, sonst gäbe es wohl kaum so einen Blog-Eintrag.

Gib mall Link zum Beitrag alles was ich damals gefunden habe war für 2,2" displays nix für 2,4"

Ja ok, ich habe dafür Verständnis, wenn man möglichst nichts rausschmeißen will.
Für mich ist es ein Hobby und da ist dann mal schnell ein Teil gekauft, wenn ich mir Zeit sparen kann. :wink:

Der Link steht schon weiter oben

Ist für mich auch (und erst recht) Hobby. Und was ich schon an Talern in Bestellungen versenkt habe, mag ich auch gar nicht so recht zusammenzählen. Vieles mal für "kann man bestimmt mal brauchen" in die Fächer gelegt, auch grundsätzlich mehr als benötigt ("könnte ja mal einer kaputt sein oder gehen") bestellt. Sonst hätte ich hier keine 10 Nano, 10 8266, 10 D1, 10 ESP32, 2 Uno, 2 Mega, ... Mittlerweile sammelt sich in etlichen Sortiments-Koffern und -Schubern eine Bauteile-Sammlung an, die schon fast unübersichtlich wird.

Aber dann möchte ich auch diese Bestände nutzen und nicht, wenn's dann konkret wird, nochmal wieder was Neues bestellen. Eine ähnliche "Diskussion" hatte ich vor einiger Zeit schonmal. Zunächst solle ich doch lieber ein Nextion-Display nehmen, ist ja viel schöner. Und dann war der Uno auch nicht schön, da wäre doch ein ESP32 viel besser. Für die Verstromung auch besser nicht USB, sondern gleich was "Richtiges" als Netzteil. Und 'n selbst gedrucktes Gehäuse ist auch suboptimal, da gibt's doch so schöne fertige.

Letztendlich habe ich am Win10 mit Visual-Studio und Python was gefrickelt (vorläufige Übergangs-Lösung), was danach auf einem RasPi mit 7" Touch lief. Die anderen Bauteile lagen also nach wie vor ungenutzt in der Schublade. Und auf ein curses-Problem wollte dann auch keiner so recht eingehen, weil ich sollte das doch lieber auf der grafischen Oberfläche basteln. Hrngrmpf...

Gruß, Michael

[X] Uno + Uno per SoftwareSerial verbunden - check
[X] Uno + Levelshifter + ESP32 per SoftwareSerial verbunden - check
[X] Uno + Display + ESP32 - check

Jetzt kommt also die Software wieder dran, Protokoll definieren, sowas in der Art:
Uno --> ESP : "get xyz" = hole Wert aus MQTT pool, damit sie im Display angezeigt werden können
ESP --> Uno : "set uvw" = setze Wert als Variable im Uno, um ihn im Display anzeigen zu können.



[X] Command-Parser an Serial - check

Ich hab "Serieller Monitor" der Arduino IDE am ESP32 (das schwarze USB-Kabel) laufen. Alles, was über Serial2 (grün/braun) vom Uno rein kommt, wird dort direkt ausgegeben. Und alles, was ich dort rein schreibe, wird direkt über Serial2 an den Uno weiter geleitet.

Der Uno hat ein Grundgerüst für einen Command-Parser bekommen und ermöglicht schon mal das vorwärts und rückwärts Blättern zwischen den drei (wenn auch weitestgehend leeren) Seiten.

Das nächste wird dann wohl Syntax a la "set:xyz=123" werden.

Poste doch bitte mal deinen Sketch hier richtig in Code-Tags und keine Bilder.