Errore su sketch

Salve a tutti . Lo sketch in oggetto mi ripota i seguenti

errori:C:\Users\viani\Downloads\Photo_gallery\Photo_gallery.ino:16:33: error: no matching function for call to 'Adafruit_ImageReader::Adafruit_ImageReader(SdFat&)'
   16 |   Adafruit_ImageReader reader(SD);    // oggetto da creare per la lettura
      |                                 ^
In file included from C:\Users\viani\Downloads\Photo_gallery\Photo_gallery.ino:5:
c:\Users\viani\Documents\Arduino\libraries\Adafruit_ImageReader_Library/Adafruit_ImageReader.h:97:3: note: candidate: 'Adafruit_ImageReader::Adafruit_ImageReader(FatVolume&)'
   97 |   Adafruit_ImageReader(FatVolume &fs);
      |   ^~~~~~~~~~~~~~~~~~~~
c:\Users\viani\Documents\Arduino\libraries\Adafruit_ImageReader_Library/Adafruit_ImageReader.h:97:35: note:   no known conversion for argument 1 from 'SdFat' {aka 'SdFs'} to 'FatVolume&'
   97 |   Adafruit_ImageReader(FatVolume &fs);
      |                        ~~~~~~~~~~~^~
c:\Users\viani\Documents\Arduino\libraries\Adafruit_ImageReader_Library/Adafruit_ImageReader.h:95:7: note: candidate: 'constexpr Adafruit_ImageReader::Adafruit_ImageReader(const Adafruit_ImageReader&)'
   95 | class Adafruit_ImageReader {
      |       ^~~~~~~~~~~~~~~~~~~~
c:\Users\viani\Documents\Arduino\libraries\Adafruit_ImageReader_Library/Adafruit_ImageReader.h:95:7: note:   no known conversion for argument 1 from 'SdFat' {aka 'SdFs'} to 'const Adafruit_ImageReader&'
Più di una libreria trovata per "SdFat.h"
  Usata: C:\Users\viani\Documents\Arduino\libraries\SdFat
  Non usata: C:\Users\viani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266SdFat
exit status 1

Compilation error: no matching function for call to 'Adafruit_ImageReader::Adafruit_ImageReader(SdFat&)'

Allegho il codice in cui c'è l'errore:
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#include <SdFat.h> // SD card & FAT filesystem
#include <Adafruit_SPIFlash.h> // SPI / QSPI flash library
#include <Adafruit_ImageReader.h> // Funzione per la lettura dell'immagine

#define USE_SD_CARD

#define TFT_CS D8 // Pin digitale CS Display TFT
#define TFT_DC D4 // Pin digitale DC Display TFT

#define SD_CS D2 // Pin digitale CS SD-Card

#if defined(USE_SD_CARD)
SdFat SD; // File system SD Card
Adafruit_ImageReader reader(SD); // oggetto da creare per la lettura
#else
// SPI o QSPI flash filesystem
#if defined(SAMD51) || defined(NRF52840_XXAA)
Adafruit_FlashTransport_QSPI flashTransport(PIN_QSPI_SCK, PIN_QSPI_CS,
PIN_QSPI_IO0, PIN_QSPI_IO1, PIN_QSPI_IO2, PIN_QSPI_IO3);
#else
#if (SPI_INTERFACES_COUNT == 1)
Adafruit_FlashTransport_SPI flashTransport(SS, &SPI);
#else
Adafruit_FlashTransport_SPI flashTransport(SS1, &SPI1);
#endif
#endif
Adafruit_SPIFlash flash(&flashTransport);
FatFileSystem filesys;
Adafruit_ImageReader reader(filesys);
#endif

Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);

Adafruit_Image img;
int32_t width = 0, height = 0;

void setup(void) {

ImageReturnCode stat; // Stato dalle funzioni di lettura delle immagini

Serial.begin(9600);

tft.begin(); // Avvio il display

Serial.print(F("Initializing filesystem..."));

#if defined(USE_SD_CARD)
//La scheda SD è piuttosto semplice, una sola chiamata...
if(!SD.begin(SD_CS, SD_SCK_MHZ(25))) {
Serial.println(F("SD begin() failed"));
for(;;); // Errore fatale, non continuare
}
#else
// Il flash SPI o QSPI richiede due passaggi, uno per accedere alla stessa memoria flash
// il secondo per accedere al file system della memoria
if(!flash.begin()) {
Serial.println(F("flash begin() failed"));
for(;;);
}
if(!filesys.begin(&flash)) {
Serial.println(F("filesys begin() failed"));
for(;;);
}
#endif
Serial.println(F("OK!"));

tft.setRotation(2); // Ruoto il display
tft.fillScreen(ILI9341_BLUE); // Coloro di blu il display

delay(2000);

tft.fillScreen(0); // Pulisco lo schermo
}

void loop() {

reader.drawBMP("/01.bmp", tft, 0, 0); // Leggo l'immagine BMP
delay (1000);
img.draw(tft,240,320); // Scrivo l'immagine BMP con risoluzione 240x320
delay(3000);

reader.drawBMP("/02.bmp", tft, 0, 0);
delay (1000);
img.draw(tft,240,320);
delay(3000);

reader.drawBMP("/03.bmp", tft, 0, 0);
delay (1000);
img.draw(tft,240,320);
delay(3000);

reader.drawBMP("/04.bmp", tft, 0, 0);
delay (1000);
img.draw(tft,240,320);
delay(3000);
}
Ringrazio in anticipo per l'eventuale aiuto.

P.S. è una cornice digitale Use code tags to format code for the forum.
Mi scuso per l'errore ,ho seguito le istruzioni spero di aver fatto bene,dai prossimi post cercherò di seguire il regolamento .Grazie.

Intanto NON si aprono thread in Megatopic ... è chiaramente indicato nel REGOLAMENTO, al punto 16.8 ... per cui ho spostato in Software.

Detto questo... fosse anche per una sola riga, come richiesto al punto 7 del REGOLAMENTO, il codice va racchiuso tra i tag CODE, per cui, cortesemente edita il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita :pencil2: che si trova in basso del tuo post), seleziona la parte di codice e premi l'icona <code/> nella barra degli strumenti per contrassegnarla come codice. Inoltre, così com'è, non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac, sempre all'interno del IDE).

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà sistemato il codice come indicato, nel rispetto del regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farlo al più presto. :wink: