Adafruit 1.44" Color TFT mit Micro SD Sockel

Du hast Dir ein Beispiel rausgesucht, wo viele Zeilen für Dich nicht zutreffen, das kann verwirren. Daher habe ich aufgeräumt und die Anzeige nach loop() verschoben.

Getestet mit ESP32 (da hängt mein Display gerade dran), ungetestet für UNO:

#include <Adafruit_GFX.h>         // Core graphics library
#include <Adafruit_ST7735.h>      // Hardware-specific library
#include <SdFat.h>                // SD card & FAT filesystem library
#include <Adafruit_SPIFlash.h>    // SPI / QSPI flash library
#include <Adafruit_ImageReader.h> // Image-reading functions

// TFT display and SD card share the hardware SPI interface, using
// 'select' pins for each to identify the active device on the bus.

#define SD_CS    4 // SD card select pin
#define TFT_CS  10 // TFT select pin
#define TFT_DC   8 // TFT display/command pin
#define TFT_RST  9 // Or set to -1 and connect to Arduino RESET pin

SdFat                SD;         // SD card filesystem
Adafruit_ImageReader reader(SD); // Image-reader object, pass in SD filesys

Adafruit_ST7735      tft    = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
Adafruit_Image       img;        // An image loaded into RAM
ImageReturnCode stat;            // Status from image-reading functions

void setup(void) {
  Serial.begin(9600);
  tft.initR(INITR_BLACKTAB); // Initialize screen
  Serial.print(F("Initializing filesystem..."));
  if (!SD.begin(SD_CS, SD_SCK_MHZ(10))) { // Breakouts require 10 MHz limit due to longer wires
    Serial.println(F("SD begin() failed"));
    for (;;); // Fatal error, do not continue
  }
  Serial.println(F("OK!"));
}

void loop() {
  uint32_t jetzt = millis();
  static uint32_t vorhin = jetzt;
  const uint32_t intervall = 2000;
  static byte schritt = 0;

  if (jetzt - vorhin >= intervall)
  {
    vorhin = jetzt;
    switch (schritt)
    {
      case 0:
        Serial.println(F("Loading lily128.bmp to screen..."));
        stat = reader.drawBMP("/lily128.bmp", tft, 0, 0);
        schritt++;
        break;
      case 1:
        Serial.println(F("Loading italy128.bmp to screen..."));
        stat = reader.drawBMP("/italy128.bmp", tft, 0, 0);
        schritt++;
        break;
      case 2:
        Serial.println(F("Loading italyi128.bmp to screen..."));
        stat = reader.drawBMP("/italyi128.bmp", tft, 0, 0);
        schritt++;
        break;
      case 3:
        Serial.println(F("Loading Blume128.bmp to screen..."));
        stat = reader.drawBMP("/Blume128.bmp", tft, 0, 0);
        schritt++;
        break;
      default:
        Serial.println(F("Loading seerose.bmp to screen..."));
        stat = reader.drawBMP("/seerose.bmp", tft, 0, 0);
        schritt = 0;
        break;
    }
  }
}

Was siehst Du?