TFT – // · ein Modul [1] von Adafruit [2], das eine farbige Anzeige mit einer Auflösung von...

7
ESP32 Pico-Board ESP32 Addon 160x128 TFT Vers. 1.0 © by Erik Bartmann, Juni 2018

Transcript of TFT – // · ein Modul [1] von Adafruit [2], das eine farbige Anzeige mit einer Auflösung von...

Page 1: TFT – // · ein Modul [1] von Adafruit [2], das eine farbige Anzeige mit einer Auflösung von 18-Bit (262.144) ermöglicht und eine Größe von 1,8“ aufweist. Die Ansteuerung

TFT – https://erik-bartmann.de/

ESP32 Pico-Board

ESP32 Addon

160x128 TFT Vers. 1.0

© by Erik Bartmann, Juni 2018

Page 2: TFT – // · ein Modul [1] von Adafruit [2], das eine farbige Anzeige mit einer Auflösung von 18-Bit (262.144) ermöglicht und eine Größe von 1,8“ aufweist. Die Ansteuerung

TFT – https://erik-bartmann.de/ Seite 2

1 6 0 x 1 2 8 TFT

n diesem ESP32-Addon wollen wir

uns einem TFT-LCD-Display widmen,

das es ermöglicht, Texte und Grafiken

mit einer Auflösung von 160x128 Pixel

darzustellen. Es handelt sich dabei um

ein Modul [1] von Adafruit [2], das

eine farbige Anzeige mit

einer Auflösung von 18-Bit

(262.144) ermöglicht

und eine Größe von

1,8“ aufweist. Die

Ansteuerung erfolgt

über den SPI-Bus mit einer

Spannungsversorgung von 3,3V und ist

für unser ESP32-Picoboard bestens

geeignet. Die mögliche

Spannungsversorgung ist von 3,3V bis

5V ausgelegt. Das Display

verfügt zusätzlich noch

über einen Mikro-

SD-Karten-Slot, was

die Speicherung von

Daten erlaubt und das

Display attraktiv macht.

I

Page 3: TFT – // · ein Modul [1] von Adafruit [2], das eine farbige Anzeige mit einer Auflösung von 18-Bit (262.144) ermöglicht und eine Größe von 1,8“ aufweist. Die Ansteuerung

TFT – https://erik-bartmann.de/

3 OLED

Erforderliche Libraries evor wir jedoch das TFT-Display innerhalb der Arduino-IDE nutzen können, sind

zwei zusätzliche Libraries erforderlich. Die erste dient der Unterstützung des

Treiberbaustein ST7735R [3] und ermöglicht eine Kommunikation über den SPI-Bus.

Der zweite nennt sich Adafruit-GFX-Library [4] und beinhaltet die Kernfunktionalitäten

zur Darstellung grundlegender Grafikelemente wie z.B. Kreise, Rechtecke, Linien und

Texte. Beide Libraries sind sehr einfach in die Arduino-IDE zu integrieren. In einem

speziellen Arduino-Addon habe ich die Vorgehensweise detailliert beschrieben.

Der Schaltungsaufbau und der Schaltplan ehen wir uns jetzt den Schaltplan zur Ansteuerung des OLED an unserem ESP32-

Picoboard an. Ich nutze dazu mein ESP32-Pico-Discoveryboard [5], mit dem der

Aufbau sehr schnell und ohne Probleme funktioniert.

Abbildung 1 Das TFT-Display auf dem ESP32-Pico-Discoveryboard

Das TFT-Display habe ich auf das kleine Breadboard aufgesteckt und mit acht flexiblen

Steckbrücken mit dem ESP32-Picoboard verbunden. Die Ausrichtung der Anzeige ist

durch die Programmierung zu steuern und kann individuell angepasst werden. Der

Schaltplan schaut wie folgt aus, wobei die Pins für den SPI-Bus frei gewählt werden

können und nicht mit den eigentlichen SPI-Hardware-Pins des ESP32 übereinstimmen

müssen.

B

S

Page 4: TFT – // · ein Modul [1] von Adafruit [2], das eine farbige Anzeige mit einer Auflösung von 18-Bit (262.144) ermöglicht und eine Größe von 1,8“ aufweist. Die Ansteuerung

TFT – https://erik-bartmann.de/

4 OLED

Abbildung 2 Der Schaltplan zur Ansteuerung des TFT-Displays

Es ist zu beachten, dass die Sicht auf das Display in diesem Schaltplan von der

Rückseite des TFT-Displays ist. Es sollte also nicht blind nach der gezeigten

Verkabelung verdrahtet werden, sondern man sollte genauestens auf die

Pinbezeichnung achten. Dann sollte auch nichts schief gehen Kommen wir zum

ESP32-Code, den ich in zwei unterschiedliche Bereiche geteilt haben, denn es existiert

eine Library ST7735R [3] von Adafruit und eine UCGLIB [6].

Der ESP32-Code ür einen ersten Test kann ein in der ST7735R-Library enthaltener Sketch herhalten,

der jedoch noch leicht modifiziert werden muss.

Abbildung 3 Der Beispiel-Sketch für das TFT-Display mit der Adafruit-Library

F

Page 5: TFT – // · ein Modul [1] von Adafruit [2], das eine farbige Anzeige mit einer Auflösung von 18-Bit (262.144) ermöglicht und eine Größe von 1,8“ aufweist. Die Ansteuerung

TFT – https://erik-bartmann.de/

5 OLED

Zur korrekten Ansteuerung muss natürlich noch der Sketch die richtigen Parameter

bekommen. Folgende Modifikationen sind für unser Anschlussbeispiel erforderlich:

...

#define TFT_CS 5

#define TFT_RST 9

#define TFT_DC 10

#define TFT_SCLK 18

#define TFT_MOSI 23

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

...

Nach dem Hochladen des Sketches wird der Grafiktest durchlaufen und es werden

diverse Elemente wie Linien, Kreise, Rechtecke, Texte und ähnliches zur Anzeige

gebracht. Der Sketch ist selbsterklärend und bedarf keiner weiteren Erläuterung.

Kommen wir jetzt zur UCGLIB-Library [6]. Nach der Installation der Library stehen auch

hier wieder einige Beispiel-Sketche zur Verfügung.

Abbildung 4 Der Beispiel-Sketch für das TFT-Display mit der UCGLIB-Library

Im Sketch werden einige Möglichkeiten für die Initialisierung des TFT-Displays

angeboten. Für unseren Fall der Verkabelung ist die folgende Zeile erforderlich:

...

Ucglib_ST7735_18x128x160_SWSPI ucg(/*sclk=*/ 18, /*data=*/ 23, /*cd=*/ 10, /*cs=*/ 5,

/*reset=*/ 9);

...

Auch hier werden wieder zahlreiche Grafikelemente im TFT-Display angezeigt und

zeigen uns die Möglichkeiten.

Page 6: TFT – // · ein Modul [1] von Adafruit [2], das eine farbige Anzeige mit einer Auflösung von 18-Bit (262.144) ermöglicht und eine Größe von 1,8“ aufweist. Die Ansteuerung

TFT – https://erik-bartmann.de/

6 OLED

Frohes Frickeln

Web-Links [1]: https://www.adafruit.com/product/358

[2]: https://www.adafruit.com/

[3]: https://github.com/adafruit/Adafruit-ST7735-Library

[4]: https://github.com/adafruit/Adafruit-GFX-Library

[5]: https://www.erik-bartmann.de/?Projekte___ESP32_Discovery-Board

[6]: https://github.com/olikraus/Ucglib_Arduino

Das ESP32-Praxisbuch

https://www.elektor.de/das-esp32-praxisbuch

https://www.erik-bartmann.de/

Page 7: TFT – // · ein Modul [1] von Adafruit [2], das eine farbige Anzeige mit einer Auflösung von 18-Bit (262.144) ermöglicht und eine Größe von 1,8“ aufweist. Die Ansteuerung

TFT – https://erik-bartmann.de/

7 OLED