Bonjour et bienvenue à notre contribution d’aujourd’hui.
Notre prix abordable Écran SPI TFT de 1,8 pouce permet d’obtenir des informations Couleur avec une résolution de 128 x 160 Pixels.
Grâce à l’interface SPI, et la puce de contrôleur ST7735, et la variété des bibliothèques Arduino, la mise en œuvre dans ses propres projets est très facile.
Lla Microcontrôleur avec ESP-32 tFT display via SPI. Toutefois, cela nécessite une bibliothèque personnalisée.
L’installation de la bibliothèque est assez facile, mais l’un des fichiers doit être personnalisé à la main pour travailler avec l’ESP-32.
Comment installer l’ESP-32 via le directeur du conseil d’administration d’Arduino, nous avons déjà "Install ESP32 via le directeur du conseil" Montré. Nous supposons donc que les définitions actuelles du conseil d’administration de l’ESP-32 sont déjà installées.
Installation de la bibliothèque
Afin de contrôler l’affichage, nous utilisons la bibliothèque "TFT_eSPI" par Bodmer. Cette bibliothèque ne fait pas partie de l’installation de base Arduino, mais peut être utilisée en quelques étapes via le Bibliothécaires installé dans l’IDE Arduino.
Via le menu "dessin" -> "Inclure une bibliothèque" -> "Gérer les bibliothèques ..." ouvrons le directeur de la bibliothèque. Alternativement, vous pouvez utiliser le Combinaison de clés "Ctrl" "Shift" -i Utiliser.
Dans la boîte de recherche du directeur de la bibliothèque, nous entrons "TFT_eSPI" sur, et installer "TFT_eSPI par Bodmer" dans la version actuelle.
Ajustements nécessaires
Pour que la bibliothèque fonctionne avec notre ESP-32, nous devons personnaliser un fichier à la main. Nous n’avons besoin de faire ce changement qu’une seule fois.
Pour ce faire, nous irons à la c:-utilisateurs-utilisateurs-lt;username --Documents-Arduino-bibliothèques-TFT_eSPI et ouvrir le fichier User_Setup.h dans un éditeur de texte comme Notepad.
En cliquant à droite sur le fichier, nous ouvrons le menu contextuelle et sélectionnons l’option " ouvrir avec..." et puis comme un programme "Notepad".
Le fichier User_Setup.h offre une variété d’options de paramètres.
Un "------------------------------------ Par conséquent, toutes les lignes inutiles doivent être commentées, et pour les lignes importantes, le «---» au début de la ligne» doit être supprimé.
J’ai déjà fait ce travail pour vous, de sorte que vous pouvez remplacer le contenu de la User_Setup.h par le code suivant:
PARAMÈTRES DÉFINIS PAR L’UTILISATEUR Définir le type de conducteur, les polices à charger, les broches utilisées et la méthode de contrôle SPI, etc. // Consultez le fichier User_Setup_Select.h si vous souhaitez être en mesure de définir plusieurs configurations, puis facilement sélectionner quel fichier d’installation est utilisé par le compilateur. // Si ce fichier est modifié correctement, tous les exemples de bibliothèque exécuter sans avoir besoin d’apporter d’autres modifications pour une configuration matérielle particulière! Notez que certaines esquisses sont conçues pour une largeur/hauteur de pixel TFT particulière // ################################################################################## // Section 1. Appelez le bon fichier conducteur et toutes les options pour qu’il // // ################################################################################## Définir seulement un pilote, les autres doivent être commentés #define ILI9341_DRIVER #define ST7735_DRIVER Définir des paramètres supplémentaires ci-dessous pour cet affichage #define ILI9163_DRIVER / Définir des paramètres supplémentaires ci-dessous pour cet affichage #define S6D02A1_DRIVER S6D02A1_DRIVER #define RPI_ILI9486_DRIVER : 20MHz maximum SPI #define HX8357D_DRIVER ILI9481_DRIVER #define #define ILI9486_DRIVER #define ILI9488_DRIVER // AVERTISSEMENT: Ne connectez pas l’écran ILI9488 SDO à MISO si d’autres appareils partagent le bus SPI (TFT SDO ne tristate pas lorsque CS est élevé) #define ST7789_DRIVER // Définir des paramètres supplémentaires ci-dessous pour cet affichage #define R61581_DRIVER Certains affichages support SPI lit via la broche MISO, d’autres affichages ont un seul broche SDA bidirectionnelle et la bibliothèque va essayer de lire cela via la ligne MOSI. Pour utiliser la ligne SDA pour lire les données de la ligne TFT sans engagement de la ligne suivante : #define TFT_SDA_READ // Cette option si pour ESP32 ONLY, testée avec l’écran ST7789 seulement Pour ST7789 SEULEMENT, définissez l’ordre de couleur si le bleu et le rouge sont échangés sur votre écran Essayez l’option ONE à la fois pour trouver la bonne commande de couleurs pour votre affichage #define TFT_RGB_ORDER TFT_RGB // Commande couleur Rouge-Vert-Bleu #define TFT_RGB_ORDER TFT_BGR // Commande couleur Bleu-Vert-Rouge Pour le module M5Stack ESP32 avec écran INTÉGRÉ ILI9341 SEULEMENT, supprimez // en ligne ci-dessous #define M5STACK Pour ST7789, ST7735 et ILI9163 SEULEMENT, définissez la largeur et la hauteur des pixels dans l’orientation du portrait #define TFT_WIDTH 80 #define TFT_WIDTH 128 #define TFT_WIDTH 240 // ST7789 240 x 240 et 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 Pour ST7735 SEULEMENT, définissez le type d’affichage, à l’origine, il était basé sur le couleur de l’onglet sur le film protecteur de l’écran, mais ce n’est pas toujours vrai, alors essayez les différentes options ci-dessous si l’écran n’affiche pas correctement les graphiques, par exemple, les couleurs erronées, les images miroirs ou les pixels de plateau sur les bords. Commentez TOUTES les options MAIS UN de ces options pour un pilote d’affichage ST7735, enregistrer ce ce fichier User_Setup, puis reconstruire et télécharger le croquis sur le tableau à nouveau: ST7735_INITB #define #define ST7735_GREENTAB ST7735_GREENTAB2 #define #define ST7735_GREENTAB3 #define ST7735_GREENTAB128 // Pour 128 x 128 affichage #define ST7735_GREENTAB160x80 // Pour 160 x 80 écran (BGR, inversé, 26 offset) #define ST7735_REDTAB ST7735_BLACKTAB #define #define ST7735_REDTAB160x80 // Pour 160 x 80 écran avec 24 pixels offset Si les couleurs sont inversées (les spectacles blancs en noir), alors désengagement l’un des 2 lignes essayer les deux options, l’une des options devrait corriger l’inversion. #define TFT_INVERSION_ON #define TFT_INVERSION_OFF Si un signal de commande rétroéclairage est disponible, définissez la goupille TFT_BL dans la section 2 Ci-dessous. Le rétroéclairage sera allumé lorsque tft.begin() est appelé, mais la bibliothèque doit savoir si les LED sont ON avec la broche HIGH ou LOW. Si les LED doivent être conduit avec un signal PWM ou désactivé OFF/ON alors cela doit être manipulé par l’utilisateur dessin. par exemple avec digitalWrite (TFT_BL, LOW); #define TFT_BACKLIGHT_ON HIGH // HIGH ou LOW sont des options // ################################################################################## // Section 2. Définissez les broches qui sont utilisées pour interagir avec l’écran ici // // ################################################################################## Nous devons utiliser le matériel SPI, un minimum de 3 broches GPIO est nécessaire. Configuration typique pour ESP8266 NodeMCU ESP-12 est: // Afficher SDO/MISO sur la broche nodeMCU D6 (ou laisser déconnecté si elle ne lit pas TFT) Afficher LED à NodeMCU pin VIN (ou 5V, voir ci-dessous) Afficher SCK à NodeMCU broche D5 Afficher SDI/MOSI à NodeMCU broche D7 Afficher DC (RS/AO)à NodeMCU broche D3 Afficher RESET à NodeMCU broche D4 (ou RST, voir ci-dessous) Afficher CS à NodeMCU broche D8 (ou GND, voir ci-dessous) Afficher GND à NodeMCU broche GND (0V) Afficher VCC à NodeMCU 5V ou 3.3V // La goupille TFT RESET peut être connectée à la broche NdeMCU RST ou 3.3V pour libérer une épingle de commande // La broche DC (Data Command) peut être étiquetée AO ou RS (Register Select) // Avec certains écrans tels que l’ILI9341, la broche TFT CS peut être connectée à GND si elle n’est plus Les périphériques SPI (p. ex. une carte SD) sont connectés, dans ce cas, commentez les #define TFT_CS ligne ci-dessous de sorte qu’il n’est pas défini. D’autres affichages tels au ST7735 nécessitent la broche TFT CS à basculer pendant la configuration, de sorte que dans ces cas, la ligne TFT_CS doit être définie et connectée. // La broche NodeMCU D0 peut être utilisée pour la TVR // // Remarque : seules quelques versions du NodeMCU fournissent l’USB 5V sur la goupille VIN Si 5V n’est pas disponible à une broche, vous pouvez utiliser 3.3V mais la luminosité rétroéclairage sera plus bas. MODIFIER LES NUMÉROS DE BROCHES DANS LES LIGNES SUIVANT POUR CONVENIR À VOTRE CONFIGURATION ESP8266 Pour NodeMCU - utiliser des nombres de broches sous la forme PIN_Dx où Dx est la désignation de broche NodeMCU #define TFT_CS PIN_D8 // Chip select control pin D8 #define TFT_DC PIN_D3 // Data Command control pin #define TFT_RST PIN_D4 // Épingle de réinitialisation (pourrait se connecter à NodeMCU RST, voir ligne suivante) #define TFT_RST -1 // Set TFT_RST à -1 si l’écran RESET est connecté à NodeMCU RST ou 3.3V #define TFT_BL PIN_D1 // LED back-light (seulement pour ST7789 avec goupille de commande de rétro-éclairage) #define TOUCH_CS PIN_D2 // Chip select pin (T_CS) d’écran tactile #define TFT_WR PIN_D2 // Écrire stroboscope pour Raspberry Pi TFT modifié seulement POUR LE MODE DE CHEVAUCHEMENT ESP8266, MODIFIEZ LES NUMÉROS DE BROCHES DANS LES LIGNES SUIVANTES. Le mode de chevauchement partage le bus ESP8266 FLASH SPI avec le TFT a donc un impact sur les performances mais enregistre les broches pour d’autres fonctions. Utilisez NodeMCU SD0-MISO, SD1-MOSI, CLK-SCLK pour vous connecter à TFT en mode chevauchement En mode de chevauchement ESP8266, ce qui suit doit être défini TFT_SPI_OVERLAP #define En mode de chevauchement ESP8266, la puce TFT sélectionne DOIT se connecter à la broche D3 #define PIN_D3 TFT_CS #define TFT_DC PIN_D5 // Data Command control pin #define TFT_RST PIN_D4 // Épingle de réinitialisation (pourrait se connecter à NodeMCU RST, voir ligne suivante) #define TFT_RST -1 // Set TFT_RST à -1 si l’écran RESET est connecté à NodeMCU RST ou 3.3V MODIFIER LES NUMÉROS DE BROCHES DANS LES LIGNES SUIVANT POUR CONVENIR À VOTRE CONFIGURATION ESP32 Pour ESP32 Dev board (seulement testé avec l’écran ILI9341) Le matériel SPI peut être cartographié sur n’importe quelle broche #define TFT_MISO 19 #define TFT_MOSI 23 #define TFT_SCLK 18 #define TFT_CS 17Chip select control pin #define TFT_DC 2 Épingle de contrôle de commande de données #define TFT_RST 14 Épingle de réinitialisation (pourrait se connecter à la goupille RST) #define TFT_RST -1 // Set TFT_RST à -1 si l’affichage RESET est connecté à ESP32 board RST #define TFT_BL 32 // LED back-light (seulement pour ST7789 avec goupille de commande de rétroéclairage) #define TOUCH_CS 21 // Chip select pin (T_CS) d’écran tactile #define TFT_WR 22 // Ecrire stroboscopique pour Raspberry Pi TFT modifié seulement Pour le module M5Stack, utilisez ces lignes #define #define TFT_MISO 19 #define TFT_MOSI 23 #define TFT_SCLK 18 #define TFT_CS 14 // Chip select control pin #define TFT_DC 27 // Data Command control pin #define TFT_RST 33 // Épingle de réinitialisation (pourrait se connecter à la broche Arduino RESET) #define TFT_BL 32 // LED back-light (requis pour M5Stack) MODIFIER LES PIN CI-DESSOUS POUR CONVENIR À VOTRE CONFIGURATION DE TFT PARALLÈLE ESP32 . La bibliothèque prend en charge les TFT parallèles 8 bits avec l’ESP32, la broche sélection ci-dessous est compatible avec les conseils ESP32 en format UNO. Les panneaux Wemos D32 doivent être modifiés, voir le diagramme dans le dossier Tools. Seuls les écrans ilI9481 et ILI9341 ont été testés ! Le bus parallèle n’est pris en charge que sur ESP32 Ligne de décomage ci-dessous pour utiliser l’interface parallèle ESP32 au lieu de SPI #define ESP32_PARALLEL Les broches ESP32 et TFT utilisées pour les tests sont les suivante : #define TFT_CS 33 // Chip select control pin (bibliothèque tire définitivement bas #define TFT_DC 15 // Data Command control pin - doit utiliser une broche dans la gamme 0-31 #define TFT_RST 32 // Épingle de réinitialisation, bascule sur le démarrage #define TFT_WR 4 // Écrire broche de contrôle stroboscopique - doit utiliser une broche dans la gamme 0-31 #define TFT_RD 2 // Lire goupille de contrôle stroboscopique #define TFT_D0 12 // Doit utiliser des broches dans la gamme 0-31 pour le bus de données #define TFT_D1 13 // donc un seul registre écrire des ensembles / efface tous les bits. #define TFT_D2 26 // Les épingles peuvent être assignées au hasard, cela n’affecte pas #define TFT_D3 25 // TFT performance de mise à jour de l’écran. #define TFT_D4 17 #define TFT_D5 16 #define TFT_D6 27 #define TFT_D7 14 // ################################################################################## // Section 3. Définir les polices qui doivent être utilisées ici // // ################################################################################## Commentez le #defines ci-dessous avec // pour arrêter que la police étant chargée L’ESP8366 et ESP32 ont beaucoup de mémoire afin de commenter les polices n’est pas normalement nécessaire. Si toutes les polices sont chargées, l’espace FLASH supplémentaire requis est environ 17Kbytes. Pour économiser de l’espace FLASH, n’activez que les polices dont vous avez besoin ! #define LOAD_GLCD Fonte 1. La police originale Adafruit 8 pixels a besoin de 1820 octets en FLASH #define LOAD_FONT2 Fonte 2. Petite police de 16 pixels de haut, a besoin de 3534 octets dans FLASH, 96 caractères #define LOAD_FONT4 Fonte 4. Moyenne police haute de 26 pixels, besoins de 5848 octets en FLASH, 96 caractères #define LOAD_FONT6 Police 6. Grande police de 48 pixels, a besoin de 2666 octets dans FLASH, seulement les caractères 1234567890:-.apm #define LOAD_FONT7 Fonte 7. 7 segment 48 pixel police, a besoin de 2438 octets dans FLASH, seulement les caractères 1234567890:-. #define LOAD_FONT8 Fonte 8. Grande police de 75 pixels a besoin de 3256 octets dans FLASH, seuls les caractères 1234567890:-. #define LOAD_FONT8N // Font 8. Alternative à la police 8 ci-dessus, légèrement plus étroite, de sorte que 3 chiffres s’adaptent à un TFT de 160 pixels #define LOAD_GFXFF FreeFonts. Inclure l’accès aux 48 Adafruit_GFX polices gratuites FF1 à FF48 et aux polices personnalisées Commentez le #define ci-dessous pour arrêter le système de dépôt SPIFFS et le code de police lisse étant chargé cela permettra d’économiser 20 koctets de FLASH #define SMOOTH_FONT // ################################################################################## // Section 4. Autres options // // ################################################################################## Définissez la fréquence de l’horloge SPI, ce qui affecte la vitesse de rendu graphique. Trop rapide et le pilote TFT ne sera pas suivre et afficher la corruption apparaît. Avec un affichage ILI9341 40MHz fonctionne OK, 80MHz échoue parfois Avec un écran ST7735, plus de 27MHz peut ne pas fonctionner (pixels et lignes faux) Avec un affichage ILI9163 27 MHz fonctionne OK. Le RPi ne fonctionne généralement qu’à 20MHz maximum. #define SPI_FREQUENCY 10000000 #define SPI_FREQUENCY 5000000 #define SPI_FREQUENCY 100000000 #define SPI_FREQUENCY 200000000 #define SPI_FREQUENCY 27000000 En fait, il met à 26.67MHz - 80/3 #define SPI_FREQUENCY 40000000 // Maximum pour utiliser SPIFFS #define SPI_FREQUENCY 800000000 Fréquence SPI réduite en option pour la lecture de TFT #define SPI_READ_FREQUENCY 20000000 Le XPT2046 nécessite un taux d’horloge SPI inférieur de 2,5MHz donc nous définissons que ici: #define SPI_TOUCH_FREQUENCY 2500000 L’ESP32 dispose de 2 ports SPI gratuits, c’est-à-dire VSPI et HSPI, le VSPI est par défaut. Si le port VSPI est utilisé et que les broches ne sont pas accessibles (p. ex. TTGO T-Beam) puis désengagement de la ligne suivante: #define USE_HSPI_PORT Commentez les #define suivantes si les « transactions SPI » n’ont pas besoin d’être Soutenu. Lorsqu’il est commenté, la taille du code sera plus petite et les croquis courir un peu plus vite, alors laissez-le commenté à moins que vous en ayez besoin! Le soutien transactionnel est nécessaire pour travailler avec la bibliothèque SD, mais pas nécessaire avec TFT_SdFat Le support transactionnel est nécessaire si d’autres appareils SPI sont connectés. Les transactions sont automatiquement activées par la bibliothèque pour un ESP32 (pour utiliser HAL mutex) donc le changer ici n’a aucun effet SUPPORT_TRANSACTIONS #define
Anschlie-end m’ssen wir die 'nderungen an der Datei User_Setup.h noch speichern.
Verkabelung des Displays mit dem ESP-32
Dans le fichier que nous venons de modifier, nous avons déterminé quelle broche prend en charge quelle fonction. Pour que cette configuration fonctionne, l’affichage doit être connecté à l’ESP-32 comme suit :
Essayez des exemplesketche
Dans l’IDE Arduino, nous nous assurons maintenant d’avoir sélectionné le module "ESP-32 Dev Kit C" dans le menu "Tools" sous "Board:".
Maintenant, nous pouvons appeler un exemple d’esquisse de la "File" - 'Exemples" -'gt; "TFT_eSPI" -'gt; "160x128" menu, et le charger sur notre ESP-32 sans aucune autre modification ou configuration.
Voici une photo de l’échantillon Pong_V3.ino croquis en action:
Nous espérons que la contribution d’aujourd’hui aidera à la mise en service de l’écran TFT sur l’ESP-32, et vous souhaitons beaucoup de plaisir avec la reconstruction.
Le vôtre Markus Neumann
Équipe AZ-Livraison
31 commentaires
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
Hallo,
mein Display zeigt die untere Häfte nur “Schnee” an. Woran könnte das denn liegen?
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;
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);#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);
}
Rafael Dellà
Arduido IDE 2.2.2
TFT_eSPI 2.5.34
It works!
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
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
@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
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
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
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
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
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
Hallo,
wie wird denn die integrierte SD Card Reader am esp32s verbunden? Gibt es da auch ein Anschluss-Schema?
Danke
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
#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
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
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
Pourriez vus partager un User_setup.h fonctionnel pour cette article svp?
Merci
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
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
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
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
Ein wenig schlauer wird man über die Befehle wenn man sich die TFT_eSPI.h anschaut.
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
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
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
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
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
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
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
Ein schönes Projekt. Leider ist das Display derzeit ausverkauft. Vielen Dank für die angepasste Datei.