Zum Inhalt springen

WSAL10684 – 2.8inch TFT Touch Shield

Aus JW Tech Wiki

Dokumentationshinweis: Diese technische Dokumentation wurde aus einer archivierten Lieferantenquelle neu formuliert. Technische Angaben und Befehle müssen vor der Verwendung mit der Produktversion und den Herstellerunterlagen abgeglichen werden.

Zusammenfassung

Das Waveshare 2.8-Zoll-TFT-Touch-Shield ist ein erweiterbares Display-Modul mit ST7789V-Treiberchip, SPI-Schnittstelle, 320×240-Auflösung und vierdrahtigem Widerstands-Touchpanel. Es lässt sich direkt auf Arduino-Boards (z. B. UNO) oder STM32-Boards (z. B. XNUCLEO-F103RB) aufstecken und wird über die integrierte SD-Karten-Schlitzung für Bildanzeige unterstützt.

Zugeordnete Produkte bei JW Tech

Technische Übersicht

  • Treiberchip: ST7789V; Schnittstelle: SPI; Auflösung: 320×240; Anzeigegröße: 57,6 mm × 43,2 mm; Konturabmessung: 73,3 mm × 55,3 mm; Farben: RGB, 262K; Touch-Methode: Vierdraht-Widerstandsfolie.
  • Schnittstellen: SCLK (SPI-Uhr), MISO, MOSI, LCD_CS (LCD-Chipauswahl), LCD_BL (Hintergrundbeleuchtung), LCD_DC (Befehl/Daten-Auswahl), SD_CS (SD-Chipauswahl), TP_CS (XPT2046-Chipauswahl), TP_IRQ (XPT2046-Interrupt), 5V, GND.
  • Anwendungsfälle: Digitaler Bilderrahmen, Zeichenbrett, E-Books, MP3-Player.
  • Bei Verwendung eines Arduino-Boards mit ICSP-Schnittstelle bleiben Jumper SB1, SB2 und SB3 offen. Bei Boards ohne ICSP müssen SB1, SB2 und SB3 jeweils mit einem 0-Ohm-Widerstand verbunden werden.
  • Softwareinstallation unter Windows: Die Bibliotheken aus dem Ordner 2.8inch_TFT_Touch_Shield/Arduino/lib in das Verzeichnis \Arduino\libraries kopieren. Beispielprogramm öffnen, Board als Arduino UNO wählen, passenden COM-Anschluss auswählen, dann kompilieren und herunterladen.
  • Vier Beispielfunktionen: DisplayString (Zeichenfolge anzeigen), DrawGraphic (Grafik zeichnen), ShowBMP (BMP-Bilder von der SD-Karte anzeigen), TouchPanel (Touch-Stift-Funktion).
  • Für die Bildanzeige: Bilder im Format 240×320, 24 Bit, BMP; SD-Karte im FAT-Dateisystem formatieren; Bilder direkt ins Wurzelverzeichnis der SD-Karte kopieren (keine Unterordner).
  • Vor dem Testen des TouchPanels muss das Touchpanel kalibriert werden: Stift verwenden, um auf das rote Pluszeichen zu tippen, bis die Kalibrierung abgeschlossen ist; CLEAR oben rechts zum Löschen des Displays.
  • Touch-Funktionen in Touch.cpp: tp_adjust() (Kalibrierung), tp_dialog() (Bildschirm weiß leeren), tp_draw_board() (Zeichenbrett öffnen).
  • Display-Funktionen in LCD.cpp: lcd_init(), lcd_draw_point(), lcd_display_char(), lcd_display_num(), lcd_draw_line(), lcd_draw_circle(), lcd_draw_v_line(), lcd_draw_h_line(), lcd_draw_rect(). Zwei Schriftgrößen in font.c: Höhe 12/Breite 6 und Höhe 16/Breite 8.

Befehle und Beispiele – vor Ausführung prüfen: 

void TFT::lcd_init()
void TFT::lcd_draw_point(uint16_t hwXpos, uint16_t hwYpos, uint16_t hwColor)
void TFT::lcd_display_char(uint16_t hwXpos, uint16_t hwYpos, uint8_t chChr, uint8_t chSize, uint16_t hwColor)
void TFT::lcd_display_num(uint16_t hwXpos, uint16_t hwYpos, uint32_t chNum, uint8_t chLen, uint8_t chSize, uint16_t hwColor)
void TFT::lcd_draw_line(uint16_t hwXpos0, uint16_t hwYpos0, uint16_t hwXpos1, uint16_t hwYpos1, uint16_t hwColor)
void TFT::lcd_draw_circle(uint16_t hwXpos, uint16_t hwYpos, uint16_t hwRadius, uint16_t hwColor)
void TFT::lcd_draw_v_line(uint16_t hwXpos, uint16_t hwYpos, uint16_t hwHeight, uint16_t hwColor)
void TFT::lcd_draw_h_line(uint16_t hwXpos, uint16_t hwYpos, uint16_t hwWidth, uint16_t hwColor)
void TFT::lcd_draw_rect(uint16_t hwXpos, uint16_t hwYpos, uint16_t hwWidth, uint16_t hwHeight, uint16_t hwColor)
tp_adjust()
tp_dialog()
tp_draw_board()

Hinweise und Versionsgrenzen

  • Die beschriebenen Demos wurden auf Arduino UNO und XNUCLEO-F103RB getestet; Übertragung auf andere Boards erfordert Anpassung der Pinbelegung gemäß Schaltplan.
  • Die Rev2.1-Version verwendet den ST7789V-Treiber mit IPS-Panel und 262K Farben; ältere Versionen nutzten HX8347 mit 65K Farben. Die Rev2.1 unterstützt laut Hersteller 30 MHz Schreibgeschwindigkeit, die alte Version 50 MHz.
  • Beim Einsetzen des Shields: Bei Boards ohne ICSP-Schnittstelle (z. B. NUCLEO) müssen die Pads SB1–SB3 mit 0-Ohm-Widerständen oder Lötzusammenschluss verbunden werden; andernfalls funktioniert das LCD möglicherweise nicht korrekt.
  • SD-Karte muss im FAT-Dateisystem formatiert sein; Bilder müssen exakt 240×320 Pixel, 24-Bit-BMP sein und direkt im Wurzelverzeichnis liegen.
  • Die Kalibrierung des Touchpanels muss vor jedem Neustart bzw. nach Änderungen durchgeführt werden; ohne Kalibrierung sind die Koordinaten ungenau.

Quelle und Revisionsnachweis