Wie weiße Linien auf Display bei Arduino UNO entfernen?
Ich habe mir das "LAFVIN 3.5 inch TFT LCD Touch Display Shield Module 480x320 SPI Serial ILI9488 with Touch Pen Compatible with Arduino" (Link Unten) gekauft und wollte es mit dem Arduino Uno ansteuern. Da ich in dem Bereich noch eher unerfahren bin und zu diesem speziellen Display keinerlei Daten online sind, habe ich ChatGPT gebeten einen Testcode dafür zu schreiben:
#include <TFT_eSPI.h>
#include <SPI.h>
TFT_eSPI tft = TFT_eSPI(); // Verwende die Setup-Datei
void setup() {
tft.init();
tft.setRotation(1); // 0-3
tft.fillScreen(TFT_BLACK);
tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.setTextSize(2);
tft.setCursor(50, 100);
tft.println("LAFVIN ILI9488 Test!");
delay(2000);
// Farbtest
tft.fillScreen(TFT_RED);
delay(500);
tft.fillScreen(TFT_GREEN);
delay(500);
tft.fillScreen(TFT_BLUE);
delay(500);
tft.fillScreen(TFT_BLACK);
}
void loop() {
tft.drawCircle(random(320), random(240), random(10, 30), TFT_YELLOW);
delay(100);
}
Die KI meinte noch ich soll die User_Select.h-Datei in der TFT_eSPI-Librarie mit dem folgenden Text ersetzen:
#define ILI9488_DRIVER
#define TFT_CS 10
#define TFT_DC 9
#define TFT_RST 8
#define TFT_MOSI 11
#define TFT_SCLK 13
#define TFT_MISO 12
#define LOAD_GLCD
#define LOAD_FONT2
#define LOAD_FONT4
#define LOAD_FONT6
#define LOAD_FONT7
#define LOAD_FONT8
#define LOAD_GFXFF
#define SPI_FREQUENCY 20000000
Der Sketch scheint zu funktionieren (macht was es soll etwas verblast im Hintergrund) allerdings sind im Vordergrund 2 weiße Linien, die sich über das ganze Display ziehen. Alles ist richtig verkabelt:
VCC -5V GND -GND CS- D10 RESET- D8 DC / RS- D9 SDI / MOSI-D11 SCK -D13 LED -5V (über 100Ω) T_CLK - D13 (geteilt) T_CS- D6 T_DIN - D11 (geteilt) T_DO -D12 T_IRQ -Nicht nötig SDO / MISO - D12
An der Hardware kann es auch nicht liegen, da es beim Neustart des Codes, das Display komplett grün färbt, ohne Linien.
Kann mir da jemand bitte helfen?
Link:
3 Antworten
Hallo,
die beste fehlersuche wäre, wenn du zwischen den Zeilen Serial.println-Funktion mit zusatztext ausspuckst, damit du sehen kannst ab welcher zeile diese 2 Striche zu sehen sind.
Passiert es bereits im Setup-Farb-Test? oder erst im Loop wo gelbe kreise kommen?
ja schreib das rein, und beobachte die serial-ausgabe wann das passiert.
ich würde mal die original-lib benutzen als test, ob da auch schon passiert.
ich glaube die refresh-rate ist zu schnell für das display, smit siehst du die unterbrüche..vielleicht da mal nachsehen in den display spezifikationen
VCC -5V GND -GND CS- D10 RESET- D8 DC / RS- D9 SDI / MOSI-D11 SCK -D13 LED -5V (über 100Ω) T_CLK - D13 (geteilt) T_CS- D6 T_DIN - D11 (geteilt) T_DO -D12 T_IRQ -Nicht nötig SDO / MISO - D12
Bist du sicher, dass das richtig verkabelt ist?
T_DO und SDO / MISO an D12? Gleichzeitig?
Lasse erstmal bei der Verkabelung die T_ Anschlüsse weg, die sind für den Touch. Erstmal siehe zu, dass du den Bildschirm angesteuerst bekommst.
Nach kurzer Befragung von Google: Hier eine Seite mit technischen Angaben.
Die TouchPins hab ich schon weggelassen, war aber nicht das Problem
sieht für mich nach nem Panel Schaden aus. China-Qualität halt.
Eben nicht, da es ja beim Neustart komplett grün leuchtet ohne Fehler. Wenn man keine Ahnung hat muss man auch nicht sowas Sinnloses schreiben (nicht böse gemeint). Ich frage hier konstruktive Hilfe und nicht um sowas.
Der Einzige, der hier offensichtlich keine Ahnung hat bist du, sonst würdest du nicht ChatGPT zum coden nutzen... Das Panel kann trotzdem einen Schaden haben, der sich nur in manchen Situationen / Zuständen bemerkbar macht, aber du bist der Experte. Viel Erfolg.
Habs geschafft. Das Display ist in Ordnung, man muss nur ne externe Stromquelle nutzen und nicht den Arduino.
Für jeden, der mit Arduino anfängt. Viele fangen mit Microcontroller-Technik an, ohne überhaupt die Grundlagen der Elektronik zu verstehen.
Also die Linien kommen mit dem Befehl tft.init(); . Mit der Refresh Rate hab ich mal etwas rumexperimentiert und da ists nur langsamer geworden. Ich weiß leider die richtige nicht (recht wenig Docs online). Ich habs nochmal mit der originalen Library probiert (ILI9488) aber das hat auch nix geändert. Aber trotzdem vielen Dank für die hilfreiche Antwort.👍