1,8 Zoll TFT am ESP-32 Dev Kit C betreiben - AZ-Delivery

Hallo en welkom bij onze bijdrage vandaag.

 

Onze betaalbare 1,8 inch SPI TFT-beeldscherm maakt het mogelijk om informatie Kleur met een resolutie van 128 x 160 Pixels. 

Dankzij de SPI-interface en de ST7735-controllerchip en de verscheidenheid aan Arduino-bibliotheken is de implementatie in eigen projecten zeer eenvoudig.

De Microcontroller met ESP-32 tFT-weergave via SPI. Hiervoor is echter een aangepaste bibliotheek vereist.

Het installeren van de bibliotheek is vrij eenvoudig, maar een van de bestanden moet met de hand worden aangepast om te werken met de ESP-32.

Hoe de ESP-32 te installeren via de Arduino Board Manager, hebben we al "Installeer ESP32 via de board manager" Weergegeven. We gaan er dus van uit dat de huidige borddefinities voor de ESP-32 al zijn geïnstalleerd.

De bibliotheek installeren

Om het display te bedienen, gebruiken we de bibliotheek "TFT_eSPI" door Bodmer. Deze bibliotheek maakt geen deel uit van de Arduino basisinstallatie, maar kan in een paar stappen via de Bibliothecarissen geïnstalleerd in de Arduino IDE.

Via het menu "Schets" -> "Een bibliotheek opnemen" -> "Bibliotheken beheren ..." laten we de bibliotheekmanager openen. U ook de Toetscombinatie "Ctrl"+ "Shift" + "i" Gebruiken.

 Open Bibltiothek Manager

 

In het zoekvak van de bibliotheekbeheerder voeren we "TFT_eSPI" aan, en installeren "TFT_eSPI door Bodmer" in de huidige versie.

Installatie via Bibliotheekbeheer

Noodzakelijke aanpassingen

Om de bibliotheek met onze ESP-32 te laten werken, moeten we een bestand met de hand aanpassen. We hoeven deze verandering maar één keer door te voeren.

Om dit te doen, gaan we naar de c:-users-users-<gebruikersnaam>-Documents-Arduino-libraries-TFT_eSPI en openen het bestand User_Setup.h in een teksteditor zoals Notepad.

 

Afbeelding van de map in Bestandsbeheer

Door met de rechtermuisknop op het bestand te klikken, openen we het contextmenu en selecteren we de optie "openen met..." en dan als een programma "Kladblok".

Het User_Setup.h-bestand biedt verschillende instellingen.

Een "------------------------------------ Daarom moeten alle onnodige regels worden becommentarieerd en voor de belangrijke regels moet de "---" aan het begin van de regel" worden verwijderd.

Ik heb dit werk al voor u gedaan, zodat u de inhoud van de User_Setup.h vervangen door de volgende code:

 

 

GEDEFINIEERDE INSTELLINGEN VOOR GEBRUIKERS
Stel het type stuurprogramma, de te laden lettertypen in, gebruikte pinnen en SPI-besturingsmethode enz.
//
Bekijk het User_Setup_Select.h-bestand als u meerdere
instellingen en selecteer vervolgens eenvoudig welk installatiebestand door de compiler wordt gebruikt.
//
Als dit bestand correct is bewerkt, moeten alle schetsen van het bibliotheekvoorbeeld
draaien zonder de noodzaak om nog meer wijzigingen aan te brengen voor een bepaalde hardware setup!
Houd er rekening mee dat sommige schetsen zijn ontworpen voor een bepaalde TFT pixelbreedte/hoogte


// ##################################################################################
//
Sectie 1. Het juiste stuurprogrammabestand en de opties daarvoor oproepen
//
// ##################################################################################

Definieer slechts één bestuurder, de andere moeten worden becommentarieerd
#define ILI9341_DRIVER
#define ST7735_DRIVER      Hieronder extra parameters definiëren voor dit scherm
#define ILI9163_DRIVER / Hieronder aanvullende parameters definiëren voor dit display
#define S6D02A1_DRIVER
#define RPI_ILI9486_DRIVER : maximaal 20 MHz SPI
#define HX8357D_DRIVER
#define ILI9481_DRIVER
#define ILI9486_DRIVER
#define ILI9488_DRIVER - WAARSCHUWING: Sluit ILI9488-display SDO niet aan op MISO als andere apparaten de SPI-bus delen (TFT SDO tristatet niet wanneer CS hoog is)
#define ST7789_DRIVER - Hieronder aanvullende parameters voor dit display definiëren
#define R61581_DRIVER

Sommige displays ondersteunen SPI leest via de MISO-pin, andere displays hebben een enkele
bi-directionele SDA pin en de bibliotheek zal proberen om dit te lezen via de MOSI lijn.
Ga als volgt te werk om de SDA-regel te gebruiken voor het lezen van gegevens uit de TFT-uncomment:

#define TFT_SDA_READ - Deze optie als alleen voor ESP32, alleen getest met ST7789-display

Voor ST7789 ONLY definieert u de kleurvolgorde als het blauw en rood op uw beeldscherm worden verwisseld
Probeer één optie tegelijk om de juiste kleurvolgorde voor uw beeldscherm te vinden

#define TFT_RGB_ORDER TFT_RGB / Kleurvolgorde Rood-Groen-Blauw
#define TFT_RGB_ORDER TFT_BGR - Kleurvolgorde Blauw-Groen-Rood

Voor M5Stack ESP32 module met geïntegreerde ILI9341 display ONLY, verwijder / in regel hieronder

#define M5STACK

Voor ST7789, ST7735 en ILI9163 ALLEEN definieert u de pixelbreedte en -hoogte in staande stand
#define TFT_WIDTH 80
 #define TFT_WIDTH  128
#define TFT_WIDTH 240 / ST7789 240 x 240 en 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

Voor ST7735 ONLY, definieer het type display, oorspronkelijk was dit gebaseerd op de
kleur van het tabblad op de screenprotector film, maar dit is niet altijd waar, dus probeer
de verschillende opties hieronder als het scherm geen afbeeldingen correct weergeeft,
bijvoorbeeld verkeerde kleuren, spiegelafbeeldingen of ladepixels aan de randen.
Reageer op alles behalve een van deze opties voor een ST7735 display driver, sla dit op
dit User_Setup bestand, dan opnieuw en upload en upload de schets naar het bord opnieuw:

#define ST7735_INITB
#define ST7735_GREENTAB
#define ST7735_GREENTAB2
#define ST7735_GREENTAB3
#define ST7735_GREENTAB128 - voor 128 x 128 beeldscherm
#define ST7735_GREENTAB160x80 / Voor 160 x 80-weergave (BGR, omgekeerd, 26 offset)
 #define ST7735_REDTAB
#define ST7735_BLACKTAB
#define ST7735_REDTAB160x80 - voor 160 x 80-scherm met 24 pixels offset

Als kleuren omgekeerd zijn (wit toont als zwart) dan uncomment een van de volgende
2 lijnen proberen beide opties, een van de opties moet de inversie te corrigeren.

#define TFT_INVERSION_ON
#define TFT_INVERSION_OFF

Als er een backlight-besturingssignaal beschikbaar is, definieert u de TFT_BL pin in sectie 2
Hieronder. De achtergrondverlichting wordt ingeschakeld wanneer tft.begin() wordt aangeroepen, maar de bibliotheek
moet weten of de LED's zijn INGESCHAKELD met de pin HIGH of LOW. Als de LED's
aangedreven met een PWM-signaal of uitgeschakeld/aan, dan moet dit door de gebruiker
Schets. bijvoorbeeld met digitalWrite(TFT_BL, LOW);

#define TFT_BACKLIGHT_ON HOOG / HOOG of LAAG zijn opties

// ##################################################################################
//
Afdeling 2. Definieer de pinnen die worden gebruikt om te communiceren met het display hier
//
// ##################################################################################

We moeten hardware SPI gebruiken, minimaal 3 GPIO pinnen nodig is.
Typische setup voor ESP8266 NodeMCU ESP-12 is:
//
SDO/MISO weergeven op NodeMCU-pin D6 (of loslaten als tft niet wordt gelezen)
Led weergeven naar NodeMCU-pin VIN (of 5V, zie hieronder)
SCK weergeven aan NodeMCU-pin D5
SDI/MOSI weergeven op NodeMCU-pin D7
Dc (RS/AO) weergeven naar NodeMCU-pin D3
Reset weergeven op NodeMCU-pin D4 (of RST, zie hieronder)
Cs weergeven aan NodeMCU-pin D8 (of GND, zie hieronder)
GND-nodeMCU-pin GND (0V) weergeven
VCC weergeven op NodeMCU 5V of 3.3V
//
De TFT RESET-pin kan worden aangesloten op de NodeMCU RST-pin of 3.3V om een controlepin vrij te maken
//
De DC-pin (Data Command) kan ao of RS het label hebben (Register Select)
//
Bij sommige beeldschermen, zoals de ILI9341, kan de TFT CS-pin worden aangesloten op GND als er niet meer
SPI-apparaten (bijvoorbeeld een SD-kaart) zijn aangesloten, in dit geval commentaar op de #define TFT_CS
lijn hieronder, zodat het niet is gedefinieerd. Andere beeldschermen zoals bij de ST7735 vereisen de TFT CS-pin
om tijdens de installatie te schakelen, dus in deze gevallen moet de TFT_CS lijn worden gedefinieerd en verbonden.
//
De NodeMCU D0 pin kan worden gebruikt voor RST
//
//
Opmerking: slechts enkele versies van de NodeMCU bieden de USB 5V op de VIN-pin
Als 5V niet beschikbaar is op een pin, u 3.3V gebruiken, maar de helderheid van backlight
lager zal zijn.


####### BEWERK DE PINCODES IN DE REGELS DIE VOLGEN OM UW ESP8266 SETUP ######

Voor NodeMCU - gebruik pin nummers in de vorm PIN_Dx waar Dx is de NodeMCU pin aanduiding
#define TFT_CS PIN_D8 - Chip selecteer controlepen D8
#define TFT_DC PIN_D3 - Besturingselementpin voor gegevensopdrachten
#define TFT_RST PIN_D4 - De pincode opnieuw instellen (kan verbinding maken met NodeMCU RST, zie volgende regel)
#define TFT_RST -1 - Stel TFT_RST in op -1 als de display RESET is aangesloten op NodeMCU RST of 3.3V

#define TFT_BL PIN_D1 - LED-achtergrondverlichting (alleen voor ST7789 met backlight control pin)

#define TOUCH_CS PIN_D2 - Chip selecteert pin (T_CS) van het aanraakscherm

#define TFT_WR PIN_D2 - Schrijf stroboscoop alleen voor aangepaste Raspberry Pi TFT


###### VOOR DE OVERLAPMODUS ESP8266 BEWERK DE PINCODES IN DE VOLGENDE REGELS ######

Overlap-modus deelt de ESP8266 FLASH SPI-bus met de TFT, dus heeft een impact op de prestaties
maar slaat pinnen op voor andere functies.
NodeMCU SD0=MISO, SD1=MOSI, CLK=SCLK gebruiken om verbinding te maken met TFT in overlappende modus

In de overlapmodus van ESP8266 moet het volgende worden gedefinieerd
#define TFT_SPI_OVERLAP

In de ESP8266-overlapmodus selecteert de TFT-chip MOET verbinding maken met pin D3
#define TFT_CS PIN_D3
#define TFT_DC PIN_D5 - Besturingselementpin voor gegevensopdrachten
#define TFT_RST PIN_D4 - De pincode opnieuw instellen (kan verbinding maken met NodeMCU RST, zie volgende regel)
#define TFT_RST -1 - Stel TFT_RST in op -1 als de display RESET is aangesloten op NodeMCU RST of 3.3V


####### BEWERK DE PINCODES IN DE REGELS DIE VOLGEN OM UW ESP32 SETUP ######

Voor ESP32 Dev board (alleen getest met ILI9341 display)
De hardware SPI kan worden toegewezen aan alle pinnen

#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS   17De controlepin van de chipselectie
#define TFT_DC    2  Besturingselementpin voor gegevensopdrachten
#define TFT_RST   14  Pin opnieuw instellen (kan verbinding maken met RST-pin)
#define TFT_RST -1 - Stel TFT_RST in op -1 als display RESET is aangesloten op ESP32-board RST

#define TFT_BL 32 / LED-achtergrondverlichting (alleen voor ST7789 met backlight control pin)

#define TOUCH_CS 21 / Chip selecteer pin (T_CS) van touchscreen

#define TFT_WR 22 / Schrijf stroboscoop alleen voor aangepaste Raspberry Pi TFT

Gebruik deze #define lijnen voor de M5Stack-module
#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS 14 / Chip select control pin
#define TFT_DC 27 - Besturingselementpin voor gegevensopdrachten
#define TFT_RST 33 - Resetpen (kan verbinding maken met Arduino RESET-pin)
#define TFT_BL 32 / LED-achterlicht (vereist voor M5Stack)

###### Bewerk DE PINCODE's HIERONDER OM UW ESP32 PARALLEL TFT SETUP ######

De bibliotheek ondersteunt 8 bit parallelle TFT's met de ESP32, de pin
selectie hieronder is compatibel met ESP32-borden in UNO-formaat.
Wemos D32-borden moeten worden gewijzigd, zie diagram in de map Extra.
Alleen ILI9481 en ILI9341 gebaseerde displays zijn getest!

Parallelbus wordt alleen ondersteund op ESP32
De onderstaande opmerkingsregel om de DHCP32 Parallelle interface te gebruiken in plaats van SPI

#define ESP32_PARALLEL

De ESP32 en TFT de pinnen die worden gebruikt voor het testen zijn:
#define TFT_CS 33 / Chip select control pin (bibliotheek trekt permanent laag
#define TFT_DC 15 - Besturingselementpen voor gegevensopdrachten - moet een pin in het bereik 0-31 gebruiken
#define TFT_RST 32 > Pin opnieuw instellen, schakelt bij het opstarten

#define TFT_WR 4 - Schrijf stroboscoopcontrolepen - moet een pin in het bereik 0-31 gebruiken
#define TFT_RD 2 - Lees stroboscoopcontrolepen

#define TFT_D0 12 - Moet pinnen in het bereik 0-31 voor de databus gebruiken
#define TFT_D1 13 - dus één register schrijft sets/clears alle bits.
#define TFT_D2 26 - pins kunnen willekeurig worden toegewezen, heeft dit geen invloed
#define TFT_D3 25 - TFT-schermupdateprestaties.
#define TFT_D4 17
#define TFT_D5 16
#define TFT_D6 27
#define TFT_D7 14


// ##################################################################################
//
Afdeling 3. De lettertypen definiëren die hier moeten worden gebruikt
//
// ##################################################################################

Reageer op de onderstaande #defines met : om te voorkomen dat het lettertype wordt geladen
De ESP8366 en ESP32 hebben veel geheugen, dus het uitcommentariëën van lettertypen is niet
normaal gesproken noodzakelijk. Als alle lettertypen zijn geladen, is de extra FLASH-ruimte die nodig is
ongeveer 17Kbytes. Als u FLASH-ruimte wilt opslaan, schakelt u alleen de lettertypen in die u nodig hebt!

#define LOAD_GLCD   Lettertype 1. Originele Adafruit 8 pixel lettertype moet ~ 1820 bytes in FLASH
#define LOAD_FONT2  Lettertype 2. Klein 16 pixel hoog lettertype, heeft ~ 3534 bytes in FLASH, 96 tekens
#define LOAD_FONT4  Lettertype 4. Medium 26 pixel hoog lettertype, moet ~ 5848 bytes in FLASH, 96 tekens
#define LOAD_FONT6  Lettertype 6. Groot lettertype van 48 pixels, heeft ~ 2666 bytes nodig in FLASH, alleen tekens 1234567890:-.apm
#define LOAD_FONT7  Lettertype 7. 7 segment 48 pixel lettertype, moet ~ 2438 bytes in FLASH, alleen tekens 1234567890:-.
#define LOAD_FONT8  Lettertype 8. Groot lettertype van 75 pixels heeft ~ 3256 bytes in FLASH nodig, alleen tekens 1234567890:-.
#define LOAD_FONT8N - Lettertype 8. Alternatief voor Lettertype 8 hierboven, iets smaller, dus 3 cijfers passen in een TFT van 160 pixels
#define LOAD_GFXFF  FreeFonts. Toegang tot de 48 Adafruit_GFX gratis lettertypen FF1 tot FF48 en aangepaste lettertypen

Reageer op de onderstaande #define om te stoppen met het SPIFFS-archiveringssysteem en de vloeiende lettertypecode die wordt geladen
dit bespaart ~ 20kbytes flash
#define SMOOTH_FONT


// ##################################################################################
//
Afdeling 4. Andere opties
//
// ##################################################################################

Definieer de SPI-klokfrequentie, dit heeft invloed op de grafische weergavesnelheid. Te
snel en de TFT driver zal niet bij te houden en vertonen corruptie verschijnt.
Met een ILI9341-scherm werkt 40MHz OK, 80MHz faalt soms
Met een ST7735-scherm werkt meer dan 27 MHz mogelijk niet (valse pixels en lijnen)
Met een ILI9163-scherm werkt 27 MHz OK.
De RPi werkt meestal alleen op maximaal 20MHz.

#define SPI_FREQUENCY 1000000
#define SPI_FREQUENCY 5000000
#define SPI_FREQUENCY 100000000
#define SPI_FREQUENCY 20000000
#define SPI_FREQUENCY  27000000 Eigenlijk zet het op 26.67MHz = 80/3
#define SPI_FREQUENCY 40000000 / Maximum voor gebruik van SPIFFS
#define SPI_FREQUENCY 80000000

Optionele verlaagde SPI-frequentie voor het lezen van TFT
#define SPI_READ_FREQUENCY  20000000

De XPT2046 vereist een lagere SPI-kloksnelheid van 2,5 MHz, dus we definiëren dat hier:
#define SPI_TOUCH_FREQUENCY  2500000

De ESP32 heeft 2 gratis SPI poorten, d.w.z. VSPI en HSPI, de VSPI is de standaard.
Als de VSPI-poort in gebruik is en pinnen niet toegankelijk zijn (bijv. TTGO T-Beam)
dan uncomment de volgende regel:
#define USE_HSPI_PORT

Reageer op de volgende #define als "SPI-transacties" niet hoeven te worden
Ondersteund. Wanneer commentaar uit de code grootte zal kleiner zijn en schetsen zal
lopen iets sneller, dus laat het commentaar uit, tenzij je het nodig hebt!

Transactieondersteuning is nodig om met sd-bibliotheek te werken, maar niet nodig met TFT_SdFat
Transactieondersteuning is vereist als andere SPI-apparaten zijn aangesloten.

Transacties worden automatisch ingeschakeld door de bibliotheek voor een ESP32 (om HAL mutex te gebruiken)
dus het veranderen van het hier heeft geen effect

#define SUPPORT_TRANSACTIONS

 

Anschließend müssen wir die Änderungen an der Datei User_Setup.h noch speichern.

Verkabelung des Displays mit dem ESP-32

In het bestand dat we net hebben bewerkt, hebben we bepaald welke pin welke functie overneemt. Om deze configuratie te laten werken, moet het display als volgt op de ESP-32 worden aangesloten:

Verbindingsplan

 

Voorbeeldschetsen proberen

In de Arduino IDE zorgen we er nu voor dat we de module "ESP-32 Dev Kit C" hebben geselecteerd in het menu "Tools" onder "Board:".

 

Nu kunnen we een voorbeeldschets van het menu "Bestand" -> "Voorbeelden" -> "TFT_eSPI" -> "160x128" noemen en deze zonder verdere wijzigingen of configuratie op onze ESP-32 laden. 

Hier is een foto van de Pong_V3.ino monster schets in actie:

Werkend voorbeeld

 

We hopen dat de bijdrage van vandaag zal helpen bij de ingebruikname van de TFT display op de ESP-32, en wensen u veel plezier met de wederopbouw.

 

De jouwe Markus Neumann
Team AZ-Levering

 

DisplaysEsp-32Projekte für anfänger

31 Reacties

Andreas Wolter

Andreas Wolter

@David: es könnte eine fehlerhafte Verdrahtung sein. Eventuell wurde auch das Display nicht korrekt initialisiert.
Für einen Test könnten Sie den Schaltkreis neu aufbauen mit so wenigen Komponenten wie möglich. Dann könnten Sie ein zweites Display gleicher Bauart hinzuziehen. Wenn das das gleiche Verhalten zeigt, ist es wahrscheinlich ein Softwareproblem. Dann würde ich von Testsketches verwenden.

Grüße,
Andreas Wolter
AZ-Delivery Blog

David

David

Hallo,
mein Display zeigt die untere Häfte nur “Schnee” an. Woran könnte das denn liegen?

Rafael Dellà

Rafael Dellà

Sorry for the double post.
I’d need to change TFT type from ST7735_REDTAB to BLACKTAB because red and blue were switched. The tab of my screen protection is green, but green option doesn’t corrects color and insert some ood black box.

Test it with this code:
#include // Graphics and font library for ST7735 driver chip

TFT_eSPI LCD = TFT_eSPI(); // Invoke library, pins defined in User_Setup.h

void setup()
{
randomSeed(analogRead(A0));
// Setup the LCD
LCD.init();
LCD.setRotation(1);
// Clear the screen.
LCD.fillScreen(TFT_BLACK);
}

char cadena100;
#define FPS (25)
#define FPS_MSEC (1000/FPS)
void loop()
{
uint32_t t = millis();
uint32_t tt;
LCD.fillRect(0, 0, TFT_WIDTH – 1, 15, TFT_RED);
LCD.fillRect(0, 16, TFT_WIDTH – 1, 15, TFT_GREEN);
LCD.fillRect(0, 32, TFT_WIDTH – 1, 15, TFT_BLUE);

LCD.setTextColor(TFT_BLACK); LCD.drawString(“Rojo”, 2, 0, 2); LCD.drawString(“Verde”, 2, 15, 2); LCD.drawString(“Azul”, 2, 32, 2); LCD.setTextColor(TFT_WHITE); tt = FPS_MSEC – (millis()-t); if( tt > 0 ) delay(tt); sprintf(cadena, “FPS: %d (delayed %d)”, 1000/(millis()-t), tt); LCD.drawString(cadena, 2, 100, 2);

}

Rafael Dellà

Rafael Dellà

Arduido IDE 2.2.2
TFT_eSPI 2.5.34
It works!

Okin

Okin

…hatte auch so diverse Startprobleme mit D1 Mini ESP32 und 1.8" Display. Die TFT_eSPI Version 2.5.34 (aktuell: Dez 2023) wurde mit Fehlermeldung: missing hal/gpio_II.h abgebrochen. (Toll, wenn innerhalb eines Library Teile fehlen!) Habe die Zeile #include hal/gpio_II.h einfach ausgeklammert. Bekomme nun 2 Warnungen: … TOUCH_CS pin not defined… Mit entsprechend angepasster User_Setup.h (Original wie oben überarbeiten, nicht obige Datei kopieren, funktionier nun zumindest die Textdarstellung (noch nicht weiter getestet…) Vielen Dank an AZ-Delivery! Okin

Tomas Vicente

Tomas Vicente

If arduino compiler shows errors in User_Setup.h like \342
Solution for this, is not paste code directly from web page. Edit it line by line, and works ok. (error is about unicode caracters….)

Andreas Wolter

Andreas Wolter

@Peter Müller: theoretisch sollte es funktionieren. Ich gehe davon aus, dass Ihr Setup sich von dem im Beitrag unterscheidet. Ich vermute genau wie Sie, dass es an den Versionen der Bibliotheken liegt. Sie könnten versuchen, die Version des ESP Cores zu downgraden. Das wäre der Schritt, den ich als erstes probieren würde. In den Kommentaren gibt es außerdem einige Lösungsansätze.

Leider gibt es immer wieder Probleme mit Updates der Bibliotheken.

Grüße,
Andreas Wolter
AZ-Delivery Blog

Peter Müller

Peter Müller

Nach längeren ausprobieren funktioniert nun der Programmiervorgang am ESP32 – Aber nicht mit der aktuellen Board-Verwalter-Version!!! NUR Die ältere Version v.1.0.5 funktioniert – bei anderen Versionen kommen Fehlermeldungen: “lässt sich nicht Kompilierern” oder "Fehler beim hochladen. "

Peter Müller

Peter Müller

Seit einer Woche versuche ich ALLES , aber das Display läuft NICHT am ESP32 – Ich Bitte um eine Funktionierende
Anleitung – Vermutlich geht es nur mit einer älteren Software-Version der Bibliothek???

Vielen Dank im Vorraus

Mario Neubert

Mario Neubert

Hallo,
und danke erstmal für die ausführlichen Artikel und die interessanten Kommentare hier.
Ich habe das 1,8 Zoll TFT am “ESP-32 Dev Kit C v4” wie im Artikel beschrieben mit TFT_CS 17 zum laufen bekommen.
Ich habe dazu aber eine Verständnisfrage:

Laut Datenblatt ist der VSPI_SS, was meinem Verständnis nach TFT_CS entspricht, an GPIO5.
Dort funktioniert er aber nicht. Warum? Hat das etwas mit den “Strapping Pins” zu tun?

Andreas Wolter

Andreas Wolter

Zur Info: Wir haben das Projekt aktualisiert und auf den neusten Stand gebracht. Die User_Setup.h sieht mittlerweile ein wenig anders aus und der libraries Ordner befindet sich an einer anderen Stelle.

Grüße,
Andreas Wolter
AZ-Delivery Blog

Uwe B

Uwe B

Hallo,
ich hatte bereits das TFT am Laufen. Nun wollte ich am Projekt weiter machen. Als erstes bekam ich beim Compilieren die Info, das TFT_eSPI unbekannt wäre. Ich habe daher ein Update der Bibliothek durchgeführt und die User_Setup.h angepasst. Trotzdem funktioniert das Display nicht mehr.
Mit der alten SW im Speicher lief das Ganze noch.
Wo kann das Problem liegen?
Danke im Voraus.

Thomas

Thomas

Hallo,
wie wird denn die integrierte SD Card Reader am esp32s verbunden? Gibt es da auch ein Anschluss-Schema?
Danke

Donboy

Donboy

An einem ESP32 DEV KIT /38 PIN! (Bitte hier auf die Ausführung achten) funktioniert das Display wie folgt:

#include
#include
#include
// TFT_LED // 3.3V +
// TFT_SCK // GPIO 18
#define TFT_DC 2 // GPIO 02 // (A0)
#define TFT_RST 14 // GPIO 14
#define TFT_CS 17 // GPIO 17
// TFT_GND // GND
// TFT_VCC // 3.3V +

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

void setup() {
tft.initR(INITR_BLACKTAB);
tft.fillScreen(ST77XX_BLACK);
tft.setCursor(2,65);
tft.print(“YEAHH!”);
}
void loop(){}

Man kann es also dierkt am ESP ohne 5V betreiben! Bei den Adafruit Bibliotheken kann es zu Compile Problemen kommen → hier einfach ältere Versionen über den Bibliotheksverwalter ausprobieren (mit meiner IDE funktioniert Vers 1.7.5 bestens, die aktuelle 1.10.10 NICHT!) Sonst braucht man keine Änderungen in irgendwelchen Quell-Codes !
P.S. Nicht aufgeben, hab für die Lösung mehr intensiv mehr als eine Woche gebraucht.

tonbor

tonbor

#define TFT_MOSI 23 // (SDA)
#define TFT_SCLK 18
#define TFT_CS 17 // Chip select control pin
#define TFT_DC 2 // Data Command control pin (Ao)
#define TFT_RST 14 // Reset pin (could connect to RST pin)
is working ok

Francesco Scognamiglio

Francesco Scognamiglio

Leider können Sie das Display nicht dazu bringen, mit Esp32 zu arbeiten. Es wurden zahlreiche Pins-Links in User Setup ausprobiert, aber keines der Beispiele in der Bibliothek funktioniert. Wenn jemand, dessen Display 1.8 ST7735 oder ein anderes Display, das mit ESP 32 verbunden ist, mit der TFT_eSPI Bibliothek gearbeitet hat, können Sie Details zum verwendeten Benutzer-Setup angeben?

Jörg

Jörg

Hallo,
heute wurde die TFT eSPI Library aktualisiert.
leider funktioniert diese User_Setup.h jetzt bei mir nicht mehr.
Arduino IDE zeigt Probleme mit dem ESP32 Board an. (vor dem Update hat es fonktioniert).
Darauf hin habe ich die neue User_Setup.h nach Eurem Muster agepasst.
Der wichtigste Abschnitt:
// ###### EDIT THE PIN NUMBERS IN THE LINES FOLLOWING TO SUIT YOUR ESP32 SETUP ######

// 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 // (SDA)
#define TFT_SCLK 18
#define TFT_CS 15 // Chip select control pin
#define TFT_DC 2 // Data Command control pin (Ao)
#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 RST
_______________________________________

Die Pinbelegung habe ich aus dem Original übernommen und die Verdrahtung angepasst.
Dadurch ist der GPIO 17 am ESP32 frei und ich kann ihn für die serielle Schnittstell: U2 RX / U2 TX
verwenden.

Jason

Jason

Pourriez vus partager un User_setup.h fonctionnel pour cette article svp?

Merci

Martin

Martin

Hallo,
kämpfe schon länger mit dem TFT, jetzt aktuell mal wieder, habe PlatformIO im Einsatz, das Display wie folgt angebunden (anpassung in User_Setup.h erfolgt):
23 MOSI (SPI)
19 MISO (SPI)
18 SCK (SPI)
17 CS (CS-TFT)
2 A0 (DC?)
16 RESET (RST)
aber kein Beispiel geht, entweder es wirf Fehler beim übersetzen oder wenn es Übersetzt, geht nix an dem TFT, ausser die Hintergrundbeleuchtung.

Michael Panzer

Michael Panzer

Kann man die Helligkeit der Hintergrundbeleuchtung ändern? Es strahlt ziemlich hell im dunkeln.
Kann man das Display per Code an- und abschalten? Bei Nichtbenutzung möchte ich, das das Display aus geht und erst bei Bedarf wieder angeht.
Danke für ein paar Tips

Bernd Albrecht

Bernd Albrecht

Mit ihrem Kommentar bzw. ihrer Frage hat Luise Früh ins Schwarze getroffen. Hier ist offensichtlich etwas vertauscht worden. Bitte wie im eBook beschrieben den LED-Pin des Displays an 3,3 V anschließen.

Luise Früh

Luise Früh

Ist das korrekt, dass VCC an 3,3V und LED an 5V angeschlossen werden sollen? Im Datenblatt des Displays steht das nämlich genau andersherum.

Georg Wolf

Georg Wolf

Ein wenig schlauer wird man über die Befehle wenn man sich die TFT_eSPI.h anschaut.

Walter Goegebeur

Walter Goegebeur

Bei mir hat es funktioniert mit folgenden Änderungen :

GND nicht links in der Mitte, sondern rechts oben am ESP
in der User_Setup.h die Zeile mit MISO zu Kommentar machen, und die Zeile mit MOSI aktivieren.

Als Board habe ich das ESP32 Dev Module ( erster aus der Liste )

Viel Erfolg

Rupp Johann

Rupp Johann

Hallo ,
Die Treibersoftware für den ESP32 mit dem TFT displayST7735 https://github.com/Bodmer/TFT_eSPI Iässt ein download nicht zu .
Danke für ihre Bemühungen

Dirk Bächer

Dirk Bächer

Hallo,
leider funktioniert das bei mir nicht.
Alle Beispielsketche werfen diverse Fehler aus.

Hier der Pong Sketch

Arduino: 1.8.10 (Windows 10), Board: “ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None”

In file included from C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/User_Setup_Select.h:22:0,

from C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:24, from C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI\examples\160 × 128\Pong_v3\Pong_v3.ino:11:

C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/User_Setup.h:163:16: error: token “�” is not valid in preprocessor expressions

#define TFT_DC    2  // Data Command control pin ^

C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:131:29: note: in expansion of macro ‘TFT_DC’

#if defined (ESP8266) && (TFT_DC == 16) ^

C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/User_Setup.h:163:16: error: token “�” is not valid in preprocessor expressions

#define TFT_DC    2  // Data Command control pin ^

C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:140:11: note: in expansion of macro ‘TFT_DC’

#if TFT_DC >= 32 ^

C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/User_Setup.h:163:16: error: token “�” is not valid in preprocessor expressions

#define TFT_DC    2  // Data Command control pin ^

C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:151:13: note: in expansion of macro ‘TFT_DC’

#if TFT_DC >= 0 ^

C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/User_Setup.h:162:16: error: token “�” is not valid in preprocessor expressions

#define TFT_CS   17// Chip select control pin ^

C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:188:29: note: in expansion of macro ‘TFT_CS’

#if defined (ESP8266) && (TFT_CS == 16) ^

C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/User_Setup.h:162:16: error: token “�” is not valid in preprocessor expressions

#define TFT_CS   17// Chip select control pin ^

C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:196:11: note: in expansion of macro ‘TFT_CS’

#if TFT_CS >= 32 ^

C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/User_Setup.h:162:16: error: token “�” is not valid in preprocessor expressions

#define TFT_CS   17// Chip select control pin ^

C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:207:13: note: in expansion of macro ‘TFT_CS’

#if TFT_CS >= 0 ^

C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/User_Setup.h:162:16: error: token “�” is not valid in preprocessor expressions

#define TFT_CS   17// Chip select control pin ^

C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:230:10: note: in expansion of macro ‘TFT_CS’

#if (TFT_CS >= 0) && (TFT_CS < 32) && (TFT_DC >= 0) && (TFT_DC < 32) ^

Mehrere Bibliotheken wurden für “TFT_eSPI.h” gefunden
Benutzt: C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI
Nicht benutzt: C:\Users\dbaec\Documents\Arduino\libraries\TFT_eSPI-master
Mehrere Bibliotheken wurden für “SPI.h” gefunden
Benutzt: C:\Users\dbaec\Documents\Arduino\hardware\espressif\esp32\libraries\SPI
Mehrere Bibliotheken wurden für “FS.h” gefunden
Benutzt: C:\Users\dbaec\Documents\Arduino\hardware\espressif\esp32\libraries\FS
Mehrere Bibliotheken wurden für “SPIFFS.h” gefunden
Benutzt: C:\Users\dbaec\Documents\Arduino\hardware\espressif\esp32\libraries\SPIFFS
exit status 1
Fehler beim Kompilieren für das Board ESP32 Dev Module.

Dieser Bericht wäre detaillierter, wenn die Option
“Ausführliche Ausgabe während der Kompilierung”
in Datei → Voreinstellungen aktiviert wäre.

mat-sche

mat-sche

Hi @ ALL,

gibt es eine Beschreibung in der alle Befehle der Bibliothek zur Ansteuerung vom Display beschrieben sind?
Würd mich über einen Link freuen!

Gerd Hofmann

Gerd Hofmann

Bei mir ist ebenfalls wie im Post von MIchael Brüning beschrieben die Darstellung spiegelverkehrt. Ich verwende ebenfalls das ESP 32 Developer Board und das AZ 1.8 Zoll TFT mit 128×160. Als Beispiel habe ich in der Arduino IDE “Datei → Beispiele → TFT_eSPI → 160 × 128 → TFT_Clock” ausgewählt. Kennt jemand zu diesem Problem eine Lösung?

Michael Heber

Michael Heber

Ich habe mir die neueste ESP-Version (1.0.2) heruntergeladen, kann aber weder unter Boards den “ESP-32 Dev Kit C” noch die angegebenen Beispiele finden. Das erste ESP-Board das bei mir angezeigt wird ist das “ESP32 Dev Modul”. Wie kann ich zu einer anderen Board-Bibliothek kommen?

Michael Brüning

Michael Brüning

Bei mir läuft der Uhrzeiger verkehrt herum und die Schrift ist auch gespiegelt und somit nicht lesbar. Ich verwende von heise das ESP 32 Developer Board und das AZ 1.8 Zoll TFT mit 128×160.

flai

flai

Ein schönes Projekt. Leider ist das Display derzeit ausverkauft. Vielen Dank für die angepasste Datei.

Laat een reactie achter

Alle opmerkingen worden voor publicatie gecontroleerd door een moderator

Aanbevolen blogberichten

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery