In diesem Tutorial lernst du, wie du ein 1,8 Zoll 128×160 TFT-Display mit einem ST7735-Treiber an ein Arduino Uno anschließt, indem du einen TXS0108E Logic Level Shifter verwendest.
Das Arduino Uno und viele andere Arduino-Boards arbeiten mit 5V-Logik, während viele TFT-Displays, Sensoren und andere Geräte mit 3,3V-Logik betrieben werden. Daher kannst du solche Geräte oft nicht direkt an ein Arduino anschließen, sondern musst einen Logic Level Shifter verwenden, der zwischen den 5V- und 3,3V-Pegeln umwandelt.
Die Anleitungen und der Code in diesem Tutorial funktionieren mit kleinen Anpassungen auch für andere Arduinos und TFTs. Die einzigen Voraussetzungen sind, dass du ein Arduino mit 5V-Logik hast, ein TFT mit 3,3V-Logik und dass das Display den ST7735-Treiber verwendet.
Benötigte Teile
Für dieses Tutorial habe ich ein Arduino Uno, ein TXS0108E Logic Level Shifter Modul und ein 1,8 Zoll TFT-Display mit einer Auflösung von 128×160 Pixeln und einem ST7735-Treiber-IC verwendet. Einige Kabel und ein Breadboard können ebenfalls nützlich sein.

1,8″ ST7735 TFT-Display

TXS0108E Logic Level Shifter

Arduino Uno

USB-Kabel für Arduino UNO

Dupont-Kabel-Set

Breadboard
Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.
1,8″ TFT ST7735 Display Modul
Das 1,8″ TFT-Display-Modul, das wir hier verwenden, hat eine Auflösung von 128×160 Pixeln mit 65K RGB-Farben. Das Bild unten zeigt die Vorder- und Rückseite des Display-Moduls:

Das Modul verwendet den ST7735S Treiberchip und wird über eine SPI-4-Draht-Schnittstelle gesteuert. Die Betriebsspannung beträgt 3,3V und das Display zieht maximal etwa 30mA.
Beachte, dass es viele verschiedene Versionen dieses TFT-Displays gibt. Einige haben einen additional SD card oder einen touch display.
Einige von ihnen haben einen logic level Wandler eingebaut, der es erlaubt, das Display-Modul an ein Arduino mit 5V Betriebsspannung anzuschließen. Dieses hier hat das nicht, was bedeutet, dass wir einen Logic Level Converter verwenden müssen, sonst könntest du den Controllerchip des Displays beschädigen.
Es gibt ähnliche Displays, die den ST7789 Treiber-IC anstelle des ST7735S verwenden. Der Code in diesem Tutorial ist für Displays mit dem ST7735S Treiber-IC und funktioniert nicht für andere.
Das TXS0108E Logic Level Shifter Modul
Der TXS0108E ist ein 8-Kanal, bidirektionaler Logic Level Shifter. Er wandelt zwischen verschiedenen Spannungspegeln um, typischerweise 3,3V und 5V. Das Bild unten zeigt ein typisches Breakout-Board mit dem TXS0108E-Chip in der Mitte.

Man sieht die 8 Kanäle (A1…A8, B1…B8) auf dem Board beschriftet. Du verbindest ein 5V-Logiksignal mit einem der B-Kanäle und es wird auf dem entsprechenden A-Kanal in 3,3V-Logikpegel umgewandelt, z.B. A1 <-> B1.
Der TXS0108E ist bidirektional, das heißt A kann Eingang und B Ausgang sein oder umgekehrt. Außerdem unterstützt er SCM, I²C und SPI-Kommunikation, und wir benötigen SPI, um das Arduino mit dem TFT-Display zu verbinden.
Für detailliertere Informationen schau dir das unten verlinkte Datenblatt des TXS0108E an:
Wie man den TXS0108E Logic Level Shifter anschließt
Das Anschließen des TXS0108E ist einfach. Du musst die höhere 5V-Spannung an den VB Pin auf der B-Kanal-Seite und die niedrigere 3,3V an den VA Pin auf der A-Kanal-Seite anlegen. Siehe das folgende Schaltbild:

Masse geht an GND und es gibt einen OE Pin für „Output Enable“, den du mit 3,3V verbinden musst, um die Kanäle zu aktivieren.
Wie bereits erwähnt, müssen alle 5V-Signale an die B-Kanäle und alle 3,3V-Signale an die A-Kanäle angeschlossen werden. Du musst nicht alle Kanäle verwenden, im nächsten Abschnitt verbinden wir das TFT-Display mit dem Arduino über 6 Kanäle.
Anschluss des 1,8″ TFT ST7735 Displays mit Level Shifter und Arduino Uno
Das Verbinden des TFT-Displays mit einem Arduino Uno über den Logic Level Shifter erfordert einige Kabel und ist leicht fehleranfällig. Nimm dir also Zeit und achte auf die korrekten Verbindungen.
Beachte auch, dass die Beschriftung der Pins am TFT-Display etwas verwirrend ist. Es sind SDA- und SCL-Pins angegeben, aber da das Display eine SPI-Schnittstelle hat, sind das nicht die SDA- und SCL-Pins für I2C! Stattdessen entspricht SDA dem MOSI und SCL dem SCLK für SPI.
Das folgende Schaltbild zeigt dir, wie du das 1,8″ TFT ST7735 Display über den TXS0108E Logic Level Shifter an ein Arduino Uno anschließt:

Zur Vereinfachung hier eine Tabelle mit den Verbindungen, die du herstellen musst:
| Arduino UNO | Level Shifter B | Level Shifter A | TFT Display |
|---|---|---|---|
| 13 (SCLK) | B1 | A1 | SCL |
| 11 (MOSI) | B2 | A2 | SDA |
| 8 (RST) | B3 | A3 | RES |
| 9 (DC) | B4 | A4 | DC |
| 10 (CS) | B5 | A5 | CS |
| 7 (BLK) | B6 | A6 | BL |
| 5V | VB | – | – |
| 3.3V | VA | VCC | |
| 3.3V | OE | ||
| GND | – | GND | GND |
Code für TFT ST7735 Display mit Adafruit_ST7735 Library
In diesem Abschnitt verwenden wir die Adafruit-ST7735 Library, um auf das 1,8″ TFT ST7735 Display zu schreiben und zu zeichnen. Um sie zu installieren, öffne einfach den Library Manager, suche nach „Adafruit-ST7735“ und klicke auf den grünen INSTALL Button:

Der Installer wird dich wahrscheinlich auffordern, auch die Abhängigkeiten zu installieren. Klicke auf INSTALL ALL:

Mit der installierten Bibliothek können wir nun das Display testen. Kompiliere und lade einfach den folgenden Code hoch. Er zeigt den Text „Makerguides“ mit einem gelben Rahmen auf dem Display an:
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#define TFT_CS 10
#define TFT_RST 8
#define TFT_DC 9
// #define TFT_MOSI 11 // SDA // HW MOSI
// #define TFT_SCLK 13 // SCL // HW SCLK
// #define TFT_MISO 12 // not used
#define TFT_BL 7 // LED back-light
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST); // hardware SPI
//Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
void setup(void) {
pinMode(TFT_BL, OUTPUT);
digitalWrite(TFT_BL, HIGH);
//tft.initB();
tft.initR(INITR_BLACKTAB); // Init ST7735S chip, black tab
//tft.initR(INITR_GREENTAB); // Init ST7735S chip, green tab
//tft.setSPISpeed(27000000);
tft.setRotation(1);
tft.fillScreen(ST77XX_BLACK);
tft.setTextColor(ST77XX_WHITE);
tft.setTextSize(2);
tft.setCursor(15, 50);
tft.println("Makerguides");
tft.drawRect(10, 40, 145, 40, ST77XX_YELLOW);
}
void loop() { }
Wenn du Hardware-SPI verwendest, brauchst du die Pin-Definitionen für TFT_MOSI und TFT_SCLK nicht. Beim Arduino sind die Pins für Hardware-SPI
- SCLK -> 13
- MISO -> 12
- MOSI -> 11
- SS/CS -> 10
Wenn du jedoch Software-SPI verwendest, musst du sie definieren und an den anderen Konstruktor für das tft Objekt übergeben:
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
Wenn du den Code kompilierst und hochlädst, solltest du die folgende Ausgabe auf deinem Display sehen:

Wenn du nichts siehst, die Farben falsch sind oder der Text Artefakte zeigt, probiere einen der anderen Initialisierer für das TFT-Display im Code aus:
//tft.initB(); tft.initR(INITR_BLACKTAB); // Init ST7735S chip, black tab //tft.initR(INITR_GREENTAB); // Init ST7735S chip, green tab
Die schwarze Lasche und grüne Lasche beziehen sich auf die farbigen Laschen, die an der Schutzfolie des Displays angebracht sind. Zum Beispiel zeigt das Bild unten ein TFT-Display mit grüner Lasche:

Die Farbe der Lasche ist wichtig, da sie oft den Typ des verwendeten Display-Controllers anzeigt. Die Grüne Lasche ist typischerweise für neuere oder alternative Controller wie ILI9341, ST7735 oder andere spezifische Modelle. Die Schwarze Lasche weist auf einen älteren oder anderen Controller hin, wie ST7735R oder ähnliche Varianten, die leicht unterschiedliche Spezifikationen haben.
Fazit
In diesem Tutorial hast du gelernt, wie du ein 1,8 Zoll 128×160 TFT-Display mit einem ST7735-Treiber an ein Arduino Uno mit einem TXS0108E Logic Level Shifter anschließt.
Wenn du einen Mikrocontroller hast, der mit 3,3V-Logik arbeitet, benötigst du keinen Logic Level Shifter. Schau dir das Interface TFT ST7735 Display with ESP32 Tutorial an, in dem wir dasselbe TFT an ein ESP32 anschließen.
Falls dein Display den ST7789 Treiber anstelle des ST7735 verwendet, kannst du trotzdem die Adafruit-ST7735 Library nutzen, um das Display zu steuern, und es sind nur kleine Änderungen im Code nötig.
Wenn du Kommentare hast, hinterlasse sie gerne im Kommentarbereich.
Viel Spaß beim Tüfteln ; )

