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:
- https://github.com/lcdwiki/LCDWIKI_kbv/issues/3
- https://forum.arduino.cc/t/mirror-display-on-lcdwiki-library-with-2-4-tft-lcd/678776
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.
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.
Hallo
Ich habe jetzt einige Monate nichts mit Arduino gemacht, doch plötzlich werden die Bibliotheken von LCDWIKI .GUI und LCDWIKI.KBV für ein 3.5inch_Arduino_8BIT_Module_ILI9486_MAR3501 nicht mehr gefunden und lassen sich auch nicht einbinden, obwohl ich sie im Ordner “Beispiele/libraries” gefunden habe.
Aus diesem Grund lässt sich selbstverständlich auch ein geänderter Sketch nicht mehr auf einen MEGA 2560 hochladen. Der Sketchbook-Speicherort lautet: D:\Arduino\Beispiele\libraries
Meine Version der Arduino IDE ist 1.8.14
Wenn es eine Lösung gibt, bitte ich um Hilfe. Bei dem benötigten Sketch handelt es sich um eine Beleuchtungssteuerung auf meiner Modellbahnanlage, die zwar grundsätzlich funktioniert, aber eine kleine Änderung notwendig hätte.
Danke Reif Josef