Ich stelle hier meine Lösung zum Anschluss eines AZDelivery TFT Displays ST7735S SPI – 1.8 Zoll – 160×128 an den NodeMCU Amica Modul V2 ESP8266 ESP-12F von AZDelivery vor. Es gibt Unmengen an Schaltungsbeispielen, nur haben die Beispiele nicht diese Konfiguration.
Das anschließen eines kleinen I²C Display 0,96 Zoll OLED an den Pins D1 (SCL) und D2 (SDA) ist sehr einfach und schnell erledigt. Aber das rote AZDelivery TFT Display mit der Treiberbibliothek ST7735S war etwas komplizierter (8 PINs), aber lösbar.
Das größte Problem für mich war, die unterschiedliche Beschriftung. Nach langem Suchen hatte ich diese Informationen zusammengetragen.
VCC | Plus |
GND | Minus |
CS | Chip Select |
RST | Reset |
A0 – D/C – DC | Data Command |
SDA – SDI – DIN – MOSI | Data In / Datenleitung (Serial Data Line) |
SCK – SCK – CLK – SPI Takt | Clock Takt (Serial Clock Line) |
LED – BL | Hintergund Beleuchtung |
CE | Chip Enable |
SDO – MISO |
Ganz besonders war für mich das herausfinden der richtigen Bezeichnung für A0 auf dem TFT Display. Warum hier immer unterschiedliche Bezeichnungen aufgedruckt werden kann ich nicht sagen.
Aber letztendlich habe ich die folgende PINs an den ESP8266E und TFT Display angeschlossen. Und siehe da, es funktioniert.
TFT | Node | GPIO | Definierung im Quelltext / Bemerkung |
SCK | sclk | GPIO14 (D5) | #define sclk 14 |
A0 | sda | GPIO2 (D4) | #define dc 2 |
SDA | mosi | GPIO13 (D7) | #define mosi 13 |
CS | cs | GPIO15 (D8) | #define cs 15 |
Reset | rst | RST | #define rst -1 (das minus weil an RST – PIN wird nicht benannt) |
GND | GND | GND | Minus / Masse |
VCC | 3V3 | 3 Volt |
Im Code habe ich die PINs wie folgt deklariert:
#define sclk 14 // TFT Display ST7735S = SCK - Nodemcuv2 D5 - GPIO14
#define mosi 13 // TFT Display ST7735S = SOA - Nodemcuv2 D7 - GPIO13
#define cs 15 // TFT Display ST7735S = CS - Nodemcuv2 D8 - GPIO15
#define dc 2 // TFT Display ST7735S = A0 - Nodemcuv2 D4 - GPIO2
#define rst -1 // TFT Display ST7735S = RST - Nodemcuv2 RST
Diese werden für die Display Bibiothek benötigt.
Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst);
Auch wenn hier nur drei Parameter (cs, dc, rst) angegeben werden, sind die anderen PINs ebenfalls anzugeben. Der weitere Code ist unkompliziert bzw. ist abhängig vom Projekt und was auf dem Display angezeigt werden soll.
Ich hoffe ihr könnt das Display zum laufen bringen und euch an euren Code machen. Meine Planung ist der Bau einer Wetterstation mit einer TFT Anzeige auf www.sensate.io/az. Hier können Temperatur-, Luftdruck und Luftfeuchte gespeichert und in einem Handy-APP dargestellt werden. Die ersten Erfolge mit sensate.io habe ich schon.
Endlich eine vernünftige Beschreibung der NodeMCU Belegung!
Danke für die Arbeit! Wusste nicht, was A0 bedeutet.
mfg berndg
Hat auf Anhieb funktioniert – vielen Dank und Grüße aus der Pfalz
Danke für die Arbeit, AZ hätte in seinem E-Book neben den nicht ganz üblichen Bezeichnung auch die üblichen Bezeichnungen auflisten können.