Adafruit 1.44" Color TFT mit Micro SD Sockel

// Getestet mit ESP32
#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    5 //4 // SD card select pin
#define TFT_CS  17 //10 // TFT select pin
#define TFT_DC   2 //8 // TFT display/command pin
#define TFT_RST 14 // 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);
  Serial.begin(115200);
  delay(1000);

  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;
    }
  }
}