Arduino-Projekte

Touchpanel vier Zoll von Waveshare

TFT-LCD mit Controller ILI9486
Touch Screen Controller XPT2046
bezogen von der Bastelgarage .

Ich betreibe dieses Touchpanel zusammen mit einem zu Arduino Mega 328 kompatiblen Board . Beim Aufstecken ist zu beachten, dass es zur Seite des Speisungs-Hohlsteckers des Arduino-Clons so aufgesteckt werden darf, dass der sechspolige (3x2) Pfostenstecker in die gelbe Buchsenleiste greift. Andernfalls wären die Speisungskontakte an schlechten Orten.

Das Board bietet einen Einschub für eine Micro-SD-Karte (war nicht im Lieferumfang), worauf mit der Arduino-Standard-Library «SD» geschrieben und auch davon gelesen werden kann. Hier kann zwar offenbar nichts kaputt gehen, aber der «chip select» SD_CS muss unter Umständen in den Quelldateien auf den PIN mit Nummer 5 geändert werden.

Die Bibliotheken habe ich so installiert, wie dies auf der oben zum Touchpanel verlinkten Seite beschrieben ist.

Völlig baff war ich, dass ich sogar die externe Library GUIslice zum Laufen gebracht habe:
  • Ganz oben in der folgenden Arduino-Projektdatei Documents\Arduino\libraries\GUIslice\examples\arduino\ex03_ard_btn_img\ex03_ard_btn_img.ino steht, dass #define GSLC_SD_EN 1 gesetzt sein müsse.
  • Zusätzlich mussten in der Datei Documents\Arduino\libraries\GUIslice\src\GUIslice_config.h die zwei Kommentierungs-Schrägzeichen zur Inbetriebsetzung des passenden Treibers entfernt werden.
  • So habe ich die Konfiguration wie folgt angepasst, so dass bei Library-Updates nur diese eine Datei wiederangefasst werden muss:
  • #include ../configs/ard-shld-waveshare_40_xpt2046.h #undef ADATOUCH_X_MIN #undef ADATOUCH_X_MAX #undef ADATOUCH_Y_MIN #undef ADATOUCH_Y_MAX #undef ADATOUCH_REMAP_YX #undef GSLC_ROTATE_SPECIAL // Beginn der Kalibrationsausgabe // DRV_TOUCH_XPT2046_PS [320x480]: #define ADATOUCH_X_MIN 199 #define ADATOUCH_X_MAX 3860 #define ADATOUCH_Y_MIN 3950 #define ADATOUCH_Y_MAX 291 #define ADATOUCH_REMAP_YX 0 #define GSLC_ROTATE_SPECIAL 3 // No Rotation supported // Ende der Kalibrationsausgabe #undef GSLC_SD_EN #define GSLC_SD_EN 1
    Die Zeilen mit den Koordinaten passen zum Touch beim mir zugesandten Modell und wurde mit
    Documents\Arduino\libraries\GUIslice\examples\arduino\diag_ard_touch_calib\diag_ard_touch_calib.ino
    auf die serielle Schnittstelle ausgegeben.

  • Für den Betrieb mit der SD-Karte musste ich nun auch für GUI-Slice in der Datei Documents\Arduino\libraries\GUIslice\configs\ard-shld-waveshare_40_xpt2046.h ein #define anpassen:
  • // SD Card #define ADAGFX_PIN_SDCS 5 // SD card chip select (if GSLC_SD_EN=1)


    Falls jemand ein Gehäuse oder eine Frontblende für in einen Schaltschrank für ein solches Panel kennt..?

    in Arbeit

    All meine Projekte sind inzwischen zu Visual Studio Code von Microsoft migriert. Dies hat gegenüber der Arduino IDE den Riesenvorteil, dass beim Wechseln des Projekts die Hardware-Einstellungen nicht jedesmal neu eingegeben werden müssen.
    Editoren werden geladen...