LCDWIKI Bibliothek – gespiegelte Ausgabe auf dem 2,4″ TFT Touch Display (ILI9341)

Wenn du das Problem hast, dass du eine gespiegelte Ausgabe auf deinem 2,4″ TFT Display (ILI9341) mit der Bibliothek LCDWIKI hast, dann habe ich hier die Lösung für dich.

In einem neuen Beitrag möchte ich ein 2,4″ TFT Touch Display programmieren, dabei ist mir der Fehler aufgefallen, dass die Ausgabe auf dem Display spiegelverkehrt ist. Eine doch recht lange Google Suche brachte mich dann auf die Lösung, welche ich dir hier gerne auf Deutsch präsentieren möchte.

Die Lösung findest du auf den beiden nachfolgenden Seiten auf Englisch:

Jedoch behandeln diese eine ganz andere C++ Datei, daher wird man zunächst auf eine falsche Fährte gelockt. Jedoch gibt es diese C++ Datei in den LCDWIKI Bibliotheken nicht bzw. nicht mehr.

Lösung – LCDWIKI gespiegelte Ausgabe ILI9341

Die Lösung liegt in diesem Falle darin, die Datei „LCDWIKI_SPI.cpp“ zu modifizieren. Du findest diese Datei in dem Ordner
„C:\Users\<Benutzername>\Documents\Arduino\libraries\LCDWIKI_SPI“. Wenn du jedoch deine Arduino IDE woanders installiert hast, ist dieser Pfad nicht korrekt, den korrekten Pfad findest du in deinen Einstellungen.

Dazu navigierst du über File (1) > Preferences… (2) zu dem Dialog Preferences. Aus diesem kannst du nun das Verzeichnis entnehmen, in welchem die Sketche & Bibliotheken gespeichert werden. Die Bibliotheken findest du wiederum im Unterverzeichnis libraries.

Arduino IDE - Einstellungen für die Ablage von Sketches & Bibliotheken
Arduino IDE – Einstellungen für die Ablage von Sketches & Bibliotheken

modifizieren der Datei LCDWIKI_SPI.cpp

Die Zeilen 1257 bis 1271 müssen ausgetauscht werden.

switch (rotation) 
{
   case 0:
      val = ILI9341_MADCTL_MX | ILI9341_MADCTL_BGR; //0 degree 
      break;
   case 1:
      val = ILI9341_MADCTL_MV | ILI9341_MADCTL_BGR; //90 degree 
      break;
   case 2:
      val = ILI9341_MADCTL_MY | ILI9341_MADCTL_ML |ILI9341_MADCTL_BGR; //180 degree 
      break;
   case 3:
      val = ILI9341_MADCTL_MX | ILI9341_MADCTL_MY| ILI9341_MADCTL_ML | ILI9341_MADCTL_MV | ILI9341_MADCTL_BGR; //270 degree 
      break;
}

Gegen diesen Code:

switch (rotation) 
{
   case 0:
      val = ILI9341_MADCTL_ML | ILI9341_MADCTL_BGR; //0 degree 
      break;
   case 1:
      val = ILI9341_MADCTL_MY|ILI9341_MADCTL_MV | ILI9341_MADCTL_BGR; //90 degree 
      break;
   case 2:
      val = ILI9341_MADCTL_MY|ILI9341_MADCTL_MX|ILI9341_MADCTL_MH|ILI9341_MADCTL_BGR; //180 degree 
      break;
   case 3:
      val = ILI9341_MADCTL_MX | ILI9341_MADCTL_MV | ILI9341_MADCTL_BGR; //270 degree
      break;
}

Download der korrigierten Bibliotheken

Wenn du die Datei nicht selber bearbeiten und austauschen möchtest, dann kannst du dir auch die Bibliotheken als gemeinsame ZIP-Datei herunterladen. Du musst nur die ZIP-Datei „LCDWIKI_ILI9341_libs.zip“ auf deinem PC entpacken und die darin enthaltenen ZIP-Dateien über deine Arduino IDE importieren.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert