Problemi di origine ignota con il df mini player

Buongiorno a tutti, sto sviluppando un piccolo progetto con il df mini player e ho un problema che non riesco a risolvere, dopo vari tentativi, con grande amarezza (perché avrei voluto riuscirci da solo) vi chiedo aiuto a voi.
Vi allego la sceda dei collegamenti


e a seguire il codice che ho scritto

#include <Arduino.h>
//link codice encoder https://www.lombardoandrea.com/utilizzare-un-encoder-rotativo-con-arduino/
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#include <LiquidCrystal_I2C.h>// dichiarazione libreria lcd
LiquidCrystal_I2C lcd(0x27, 20, 4);

//bottoni
#define comandi_play 7
#define comandi_pause 9
#define comandi_fadein 6
#define comandi_fadeout 5

//encoder
  //Encoder traccia
  const unsigned int Enc_trak_cont_varia = 3;//clk
  const unsigned int Enc_trak_dir = 4;//dt
  int Enc_trak_vari_stato;
  int Enc_trak_prec_dir;
  int trak;

  //Encoder fadein
  const unsigned int Enc_tempo_fade_cont_varia = 2;//clk
  const unsigned int Enc_tempo_fade_dir = 11;//dt
  int Enc_tempo_fade_vari_stato;
  int Enc_tempo_fade_prec_dir;
  int tempo_fade;
///////////////////////////////

//variabili
int volume = 0; //indica il volume
boolean play_on = false;//Falso
////////////////////////////////////////////////
SoftwareSerial mySoftwareSerial(12,13); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);

void setup(){
  //display
    lcd.init(); 
    lcd.backlight();
  //bottoni
  pinMode(comandi_play, INPUT);
  pinMode(comandi_pause, INPUT);
  pinMode(comandi_fadein, INPUT);
  pinMode(comandi_fadeout, INPUT); 
  //////////////////////////////////////////
    //encoder per selezionare traccia
    pinMode(Enc_trak_cont_varia, INPUT);
    pinMode(Enc_trak_dir, INPUT);
    //encoder per fade in
    pinMode(Enc_tempo_fade_cont_varia, INPUT);
    pinMode(Enc_tempo_fade_dir, INPUT);
    //////////////////////////////////////////

    // Esegui prima lettura dei valori sui pin
    //traccia
    Enc_trak_vari_stato = digitalRead(Enc_trak_cont_varia);
    Enc_trak_prec_dir = digitalRead(Enc_trak_dir);
    //fade in
    Enc_tempo_fade_vari_stato = digitalRead(Enc_tempo_fade_cont_varia);
    Enc_tempo_fade_prec_dir = digitalRead(Enc_tempo_fade_dir);
    //////////////////////////////////
    //Inizializzo variabile trak
    trak = 0;
    tempo_fade = 0;
   //--------------------------------------------
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);
delay(2000);
  if (!myDFPlayer.begin(mySoftwareSerial)) {  //Usa softwareSerial per comunicare con mp3.
    lcd.setCursor(0,0);
    lcd.print(F("ATTENZIONE"));
    lcd.setCursor(0,1);
    lcd.print(F("1.Controllare la connessione"));
    lcd.setCursor(0,2);
    lcd.print(F("2.Inserire la SD"));
    while(true);
  }
  lcd.print(("DFPlayer Mini online."));//se il df si è inizializzato
    delay(1000);lcd.clear();
  myDFPlayer.setTimeOut(500); //Impostare il timeout della comunicazione seriale a 500 ms
  myDFPlayer.volume(30);  //Imposta il valore del volume (0~30).
  myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);  //imposta il tipo di suono
  myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);//Imposta il dispositivo che usiamo SD come predefinito
  // ---- Leggi informazioni ----
  lcd.print(myDFPlayer.readState()); //leggere lo stato mp3
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readVolume()); //leggere il volume corrente
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readEQ()); //leggere l'impostazione EQ
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readFileCounts()); //leggere tutti i conteggi dei file nella scheda SD
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readCurrentFileNumber()); //legge il numero del file in riproduzione
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readFileCountsInFolder(3)); //leggere i conteggi dei file nella cartella SD: / 03
    delay(1000);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("N traccia= ");
  lcd.print(trak);
  lcd.setCursor(0,1);
  lcd.print("T fade= ");
  lcd.print(tempo_fade);
}

void loop(){

  // Leggi valori dai pin dell'encoder
  //traccia
  int Enc_trak_stato_corrente = digitalRead(Enc_trak_cont_varia);
  int Enc_trak_dir_corrente = digitalRead(Enc_trak_dir);
  //fadein
  int Enc_tempo_fade_stato_corrente = digitalRead(Enc_tempo_fade_cont_varia);
  int Enc_tempo_fade_dir_corrente = digitalRead(Enc_tempo_fade_dir);
  // Se la lettura corrente è diversa dall'ultima memorizzata
  //traccia
  if (Enc_trak_stato_corrente != Enc_trak_vari_stato) {
    //Se il valore di dt è uguale al valore corrente di clk
    if (Enc_trak_dir_corrente == Enc_trak_stato_corrente) {
      trak --;
    } 
    else {
      trak ++;
    }
    //Aggiorna valori
    Enc_trak_vari_stato = Enc_trak_stato_corrente;
    Enc_trak_prec_dir = Enc_trak_dir_corrente;
  }

  //fade in  
  if (Enc_tempo_fade_stato_corrente != Enc_tempo_fade_vari_stato) {
    //Se il valore di dt è uguale al valore corrente di clk
    if (Enc_tempo_fade_dir_corrente == Enc_tempo_fade_stato_corrente) {
      tempo_fade --;
      if (tempo_fade < 10){lcd.setCursor(9,1);lcd.print(" ");}
      lcd.setCursor(8,1);
      lcd.print(tempo_fade);
    } 
    else {
      tempo_fade ++;
      if (tempo_fade < 10){lcd.setCursor(9,1);lcd.print(" ");}
      lcd.setCursor(8,1);
      lcd.print(tempo_fade);
    }
    //Aggiorna valori
    Enc_tempo_fade_vari_stato = Enc_tempo_fade_stato_corrente;
    Enc_tempo_fade_prec_dir = Enc_tempo_fade_dir_corrente;
  }
  ////////////////////////////////////////////

  //se premo il tasto play
  if (digitalRead(comandi_play) == HIGH) {
    myDFPlayer.volume(30);  //Imposta il valore del volume (0~30).
    myDFPlayer.play(trak);//metti in play tra parentesi il numero della tyraccia
    lcd.setCursor(0,2);
    lcd.print("                   ");
    lcd.setCursor(0,2);
    lcd.print("Play");
  }

  //se premo il tasto pause
  if (digitalRead(comandi_pause) == HIGH) {
    if (play_on == false){;
      play_on =true;
      myDFPlayer.pause();//metti in pausa
    lcd.setCursor(0,2);
    lcd.print("                   ");
    lcd.setCursor(0,2);
    lcd.print("Pause");
    }
    else {
      play_on=false;
      myDFPlayer.volume(30);  //Imposta il valore del volume (0~30).
      myDFPlayer.start();//riprendi la riproduzione
    lcd.setCursor(0,2);
    lcd.print("                   ");
    lcd.setCursor(0,2);
    lcd.print("Play");
    }
  }
  delay(500);
  
  //se premo il testo fade in
  if (digitalRead(comandi_fadein) == HIGH)  {
    int fade = (30/tempo_fade);
    myDFPlayer.volume(0);
    myDFPlayer.play(trak);
    for (int i = 0; i < 30; i++){
      myDFPlayer.volume(i);
      lcd.setCursor(0,2);
      lcd.print("                   ");
      lcd.setCursor(0,2);
      lcd.print("Fadein in corso ");
      lcd.print(i);
      delay (fade);
    }
    lcd.setCursor(0,2);
    lcd.print("                   ");
  }
  delay(500);

  //se premo il testo fade out
  if (digitalRead(comandi_fadeout) == HIGH)  {
    int fade = (30/tempo_fade);
    myDFPlayer.volume(30);
    myDFPlayer.play(trak);
    for (int i = 30; i < 0; i--){
      myDFPlayer.volume(i);
      lcd.setCursor(0,2);
      lcd.print("                   ");
      lcd.setCursor(0,2);
      lcd.print("Fadeout in corso ");
      lcd.print(i);
      delay (fade);
      if (i == 0) {
        myDFPlayer.stop();
        lcd.setCursor(0,2);
        lcd.print("                   ");
        lcd.setCursor(0,2);
        lcd.print("Arresto traccia");
        delay(2000);
      }
    }
  }
  lcd.setCursor(0,2);
  lcd.print("                   ");
  delay(500);
}

Il risultato finale è che sembra che il df mini player non si inizializza, e sul display appare la scritta di controllare la connessione e inserire la SD( che ovviamente è inserita) o controllato sul web i possibili collegamenti, ho provato a fare alcune modifiche, ma niente il risultato non cambia.
Dove sbaglio?
Grazie a tutti quelli che mi aiuteranno … saluti

Hai sbagliato i collegamenti.
Il pin RX del DF mini player va sul pin TX dell’Nano e viceversa.
Inoltre ricorda che sul pin 13 del Nano c’è anche il LED built-in.

Ciao ho provato a afre la modifica che mi suggerivi, come vedi nello schema che ti allego ma il problema permane … come mai?
Mi sta venendo il nervoso :rage:

ho provato a collegare anche senza resistenza … ma il risultato è il solito

#include <Arduino.h>
//link codice encoder https://www.lombardoandrea.com/utilizzare-un-encoder-rotativo-con-arduino/
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#include <LiquidCrystal_I2C.h>// dichiarazione libreria lcd
LiquidCrystal_I2C lcd(0x27, 20, 4);

//bottoni
#define comandi_play 7
#define comandi_pause 9
#define comandi_fadein 6
#define comandi_fadeout 5

//encoder
  //Encoder traccia
  const unsigned int Enc_trak_cont_varia = 3;//clk
  const unsigned int Enc_trak_dir = 4;//dt
  int Enc_trak_vari_stato;
  int Enc_trak_prec_dir;
  int trak;

  //Encoder fadein
  const unsigned int Enc_tempo_fade_cont_varia = 2;//clk
  const unsigned int Enc_tempo_fade_dir = 11;//dt
  int Enc_tempo_fade_vari_stato;
  int Enc_tempo_fade_prec_dir;
  int tempo_fade;
///////////////////////////////

//variabili
int volume = 0; //indica il volume
boolean play_on = false;//Falso
////////////////////////////////////////////////
SoftwareSerial mySoftwareSerial(0,1); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);

void setup(){
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);
  //display
    lcd.init(); 
    lcd.backlight();
  //bottoni
  pinMode(comandi_play, INPUT);
  pinMode(comandi_pause, INPUT);
  pinMode(comandi_fadein, INPUT);
  pinMode(comandi_fadeout, INPUT); 
  //////////////////////////////////////////
    //encoder per selezionare traccia
    pinMode(Enc_trak_cont_varia, INPUT);
    pinMode(Enc_trak_dir, INPUT);
    //encoder per fade in
    pinMode(Enc_tempo_fade_cont_varia, INPUT);
    pinMode(Enc_tempo_fade_dir, INPUT);
    //////////////////////////////////////////

    // Esegui prima lettura dei valori sui pin
    //traccia
    Enc_trak_vari_stato = digitalRead(Enc_trak_cont_varia);
    Enc_trak_prec_dir = digitalRead(Enc_trak_dir);
    //fade in
    Enc_tempo_fade_vari_stato = digitalRead(Enc_tempo_fade_cont_varia);
    Enc_tempo_fade_prec_dir = digitalRead(Enc_tempo_fade_dir);
    //////////////////////////////////
    //Inizializzo variabile trak
    trak = 0;
    tempo_fade = 0;
   //--------------------------------------------
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);
delay(2000);
  if (!myDFPlayer.begin(mySoftwareSerial)) {  //Usa softwareSerial per comunicare con mp3.
    lcd.setCursor(0,0);
    lcd.print(F("ATTENZIONE"));
    lcd.setCursor(0,1);
    lcd.print(F("1.check connessione"));
    lcd.setCursor(0,2);
    lcd.print(F("2.Inserire la SD"));
    while(true);
  }
  lcd.print(("DFPlayer Mini online."));//se il df si è inizializzato
    delay(1000);lcd.clear();
  myDFPlayer.setTimeOut(500); //Impostare il timeout della comunicazione seriale a 500 ms
  myDFPlayer.volume(30);  //Imposta il valore del volume (0~30).
  myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);  //imposta il tipo di suono
  myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);//Imposta il dispositivo che usiamo SD come predefinito
  // ---- Leggi informazioni ----
  lcd.print(myDFPlayer.readState()); //leggere lo stato mp3
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readVolume()); //leggere il volume corrente
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readEQ()); //leggere l'impostazione EQ
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readFileCounts()); //leggere tutti i conteggi dei file nella scheda SD
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readCurrentFileNumber()); //legge il numero del file in riproduzione
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readFileCountsInFolder(3)); //leggere i conteggi dei file nella cartella SD: / 03
    delay(1000);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("N traccia= ");
  lcd.print(trak);
  lcd.setCursor(0,1);
  lcd.print("T fade= ");
  lcd.print(tempo_fade);
}

void loop(){

  // Leggi valori dai pin dell'encoder
  //traccia
  int Enc_trak_stato_corrente = digitalRead(Enc_trak_cont_varia);
  int Enc_trak_dir_corrente = digitalRead(Enc_trak_dir);
  //fadein
  int Enc_tempo_fade_stato_corrente = digitalRead(Enc_tempo_fade_cont_varia);
  int Enc_tempo_fade_dir_corrente = digitalRead(Enc_tempo_fade_dir);
  // Se la lettura corrente è diversa dall'ultima memorizzata
  //traccia
  if (Enc_trak_stato_corrente != Enc_trak_vari_stato) {
    //Se il valore di dt è uguale al valore corrente di clk
    if (Enc_trak_dir_corrente == Enc_trak_stato_corrente) {
      trak --;
    } 
    else {
      trak ++;
    }
    //Aggiorna valori
    Enc_trak_vari_stato = Enc_trak_stato_corrente;
    Enc_trak_prec_dir = Enc_trak_dir_corrente;
  }

  //fade in  
  if (Enc_tempo_fade_stato_corrente != Enc_tempo_fade_vari_stato) {
    //Se il valore di dt è uguale al valore corrente di clk
    if (Enc_tempo_fade_dir_corrente == Enc_tempo_fade_stato_corrente) {
      tempo_fade --;
      if (tempo_fade < 10){lcd.setCursor(9,1);lcd.print(" ");}
      lcd.setCursor(8,1);
      lcd.print(tempo_fade);
    } 
    else {
      tempo_fade ++;
      if (tempo_fade < 10){lcd.setCursor(9,1);lcd.print(" ");}
      lcd.setCursor(8,1);
      lcd.print(tempo_fade);
    }
    //Aggiorna valori
    Enc_tempo_fade_vari_stato = Enc_tempo_fade_stato_corrente;
    Enc_tempo_fade_prec_dir = Enc_tempo_fade_dir_corrente;
  }
  ////////////////////////////////////////////

  //se premo il tasto play
  if (digitalRead(comandi_play) == HIGH) {
    myDFPlayer.volume(30);  //Imposta il valore del volume (0~30).
    myDFPlayer.play(trak);//metti in play tra parentesi il numero della tyraccia
    lcd.setCursor(0,2);
    lcd.print("                   ");
    lcd.setCursor(0,2);
    lcd.print("Play");
  }

  //se premo il tasto pause
  if (digitalRead(comandi_pause) == HIGH) {
    if (play_on == false){;
      play_on =true;
      myDFPlayer.pause();//metti in pausa
    lcd.setCursor(0,2);
    lcd.print("                   ");
    lcd.setCursor(0,2);
    lcd.print("Pause");
    }
    else {
      play_on=false;
      myDFPlayer.volume(30);  //Imposta il valore del volume (0~30).
      myDFPlayer.start();//riprendi la riproduzione
    lcd.setCursor(0,2);
    lcd.print("                   ");
    lcd.setCursor(0,2);
    lcd.print("Play");
    }
  }
  delay(500);
  
  //se premo il testo fade in
  if (digitalRead(comandi_fadein) == HIGH)  {
    int fade = (30/tempo_fade);
    myDFPlayer.volume(0);
    myDFPlayer.play(trak);
    for (int i = 0; i < 30; i++){
      myDFPlayer.volume(i);
      lcd.setCursor(0,2);
      lcd.print("                   ");
      lcd.setCursor(0,2);
      lcd.print("Fadein in corso ");
      lcd.print(i);
      delay (fade);
    }
    lcd.setCursor(0,2);
    lcd.print("                   ");
  }
  delay(500);

  //se premo il testo fade out
  if (digitalRead(comandi_fadeout) == HIGH)  {
    int fade = (30/tempo_fade);
    myDFPlayer.volume(30);
    myDFPlayer.play(trak);
    for (int i = 30; i < 0; i--){
      myDFPlayer.volume(i);
      lcd.setCursor(0,2);
      lcd.print("                   ");
      lcd.setCursor(0,2);
      lcd.print("Fadeout in corso ");
      lcd.print(i);
      delay (fade);
      if (i == 0) {
        myDFPlayer.stop();
        lcd.setCursor(0,2);
        lcd.print("                   ");
        lcd.setCursor(0,2);
        lcd.print("Arresto traccia");
        delay(2000);
      }
    }
  }
  lcd.setCursor(0,2);
  lcd.print("                   ");
  delay(500);
}

e questo è il risultato finale

Grazie a chi vorrà aiutarmi

aggiungo anche questa cosa … l’idee di arduino mi restituisce questo messaggio

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xcb

@Piperino, il DF Player mini dovrebbe funzionare anche senza microcontrollore. Magari nei diversi tentativi che hai fatto si è danneggiato. Il microcontrollore che è alla base del player infatti lavora a 3.3V (per quello serve la resistenza in serie al TX di Arduino) come scritto nel datasheet.

Prova con questo circuito, senza collegare Arduino. Se non funziona nemmeno cosi, ci sono buone probabilità che il modulo sia guasto

Per quanto riguarda l’errore dell’IDE, se lo hai collegato ai pin che sono fisicamente connessi al convertitore USB/TTL del Nano (quelli siglati RX, TX) è normale perché vai ad interferire con il trasferimento del firmware.
Probabilmente sono stato poco chiaro nel mio messaggio precedente… con RX e TX di Arduino intendevo quelli che hai assegnato alla software serial nella prima versione.
La seconda versione è solo fonte di casini assicurata per quanto appena detto.

SoftwareSerial mySoftwareSerial(12,13); // RX, TX

Buona sera
Riprendo in mano questo progetto dopo un bel po di tempo.
ho provato a montare il dfplayer mini come nello schema suggeritomi cotestatnt e il player a riprodotto la musica, unica cosa non funzionavano i tasti.
A questo punto ho provato a ricollegarlo secondo questo schema

e caricando sul mio arduino uno il seguente codice

#include <Arduino.h>
//link codice encoder https://www.lombardoandrea.com/utilizzare-un-encoder-rotativo-con-arduino/
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#include <LiquidCrystal_I2C.h>// dichiarazione libreria lcd
LiquidCrystal_I2C lcd(0x27,20,4); //https://www.danielealberti.it/2019/08/trasformare-un-display-1602-in-un.html

//bottoni https://www.robotstore.it/blog/wp-content/uploads/2016/06/arduino_button.png resistenza 10 khom
#define comandi_play 7
#define comandi_pause 9
#define comandi_fadein 6
#define comandi_fadeout 5

//encoder
  //Encoder traccia
  const unsigned int Enc_trak_cont_varia = 3;//clk
  const unsigned int Enc_trak_dir = 4;//dt
  int Enc_trak_vari_stato;
  int Enc_trak_prec_dir;
  int trak;

  //Encoder fadein
  const unsigned int Enc_tempo_fade_cont_varia = 2;//clk
  const unsigned int Enc_tempo_fade_dir = 11;//dt
  int Enc_tempo_fade_vari_stato;
  int Enc_tempo_fade_prec_dir;
  int tempo_fade;
///////////////////////////////

//variabili
int volume = 0; //indica il volume
boolean play_on = false;//Falso
////////////////////////////////////////////////
SoftwareSerial mySoftwareSerial(1,0); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);

void setup(){
  //display
    lcd.init(); 
    lcd.backlight();
  //bottoni
  pinMode(comandi_play, INPUT);
  pinMode(comandi_pause, INPUT);
  pinMode(comandi_fadein, INPUT);
  pinMode(comandi_fadeout, INPUT); 
  //////////////////////////////////////////
    //encoder per selezionare traccia
    pinMode(Enc_trak_cont_varia, INPUT);
    pinMode(Enc_trak_dir, INPUT);
    //encoder per fade in
    pinMode(Enc_tempo_fade_cont_varia, INPUT);
    pinMode(Enc_tempo_fade_dir, INPUT);
    //////////////////////////////////////////

    // Esegui prima lettura dei valori sui pin
    //traccia
    Enc_trak_vari_stato = digitalRead(Enc_trak_cont_varia);
    Enc_trak_prec_dir = digitalRead(Enc_trak_dir);
    //fade in
    Enc_tempo_fade_vari_stato = digitalRead(Enc_tempo_fade_cont_varia);
    Enc_tempo_fade_prec_dir = digitalRead(Enc_tempo_fade_dir);
    //////////////////////////////////
    //Inizializzo variabile trak
    trak = 0;
    tempo_fade = 0;
   //--------------------------------------------
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);
delay(2000);
  if (!myDFPlayer.begin(mySoftwareSerial)) {  //Usa softwareSerial per comunicare con mp3.
    lcd.setCursor(0,0);
    lcd.print(F("ATTENZIONE"));
    lcd.setCursor(0,1);
    lcd.print(F("1.Controllare la connessione"));
    lcd.setCursor(0,2);
    lcd.print(F("2.Inserire la SD"));
    while(true);
  }
  lcd.print(("DFPlayer Mini online."));//se il df si è inizializzato
    delay(1000);lcd.clear();
  myDFPlayer.setTimeOut(500); //Impostare il timeout della comunicazione seriale a 500 ms
  myDFPlayer.volume(30);  //Imposta il valore del volume (0~30).
  myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);  //imposta il tipo di suono
  myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);//Imposta il dispositivo che usiamo SD come predefinito
  // ---- Leggi informazioni ----
  lcd.print(myDFPlayer.readState()); //leggere lo stato mp3
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readVolume()); //leggere il volume corrente
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readEQ()); //leggere l'impostazione EQ
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readFileCounts()); //leggere tutti i conteggi dei file nella scheda SD
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readCurrentFileNumber()); //legge il numero del file in riproduzione
    delay(1000);lcd.clear();
  lcd.print(myDFPlayer.readFileCountsInFolder(3)); //leggere i conteggi dei file nella cartella SD: / 03
    delay(1000);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("N traccia= ");
  lcd.print(trak);
  lcd.setCursor(0,1);
  lcd.print("T fade= ");
  lcd.print(tempo_fade);
}

void loop(){

  // Leggi valori dai pin dell'encoder
  //traccia
  int Enc_trak_stato_corrente = digitalRead(Enc_trak_cont_varia);
  int Enc_trak_dir_corrente = digitalRead(Enc_trak_dir);
  //fadein
  int Enc_tempo_fade_stato_corrente = digitalRead(Enc_tempo_fade_cont_varia);
  int Enc_tempo_fade_dir_corrente = digitalRead(Enc_tempo_fade_dir);
  // Se la lettura corrente è diversa dall'ultima memorizzata
  //traccia
  if (Enc_trak_stato_corrente != Enc_trak_vari_stato) {
    //Se il valore di dt è uguale al valore corrente di clk
    if (Enc_trak_dir_corrente == Enc_trak_stato_corrente) {
      trak --;
    } 
    else {
      trak ++;
    }
    //Aggiorna valori
    Enc_trak_vari_stato = Enc_trak_stato_corrente;
    Enc_trak_prec_dir = Enc_trak_dir_corrente;
  }

  //fade in  
  if (Enc_tempo_fade_stato_corrente != Enc_tempo_fade_vari_stato) {
    //Se il valore di dt è uguale al valore corrente di clk
    if (Enc_tempo_fade_dir_corrente == Enc_tempo_fade_stato_corrente) {
      tempo_fade --;
      if (tempo_fade < 10){lcd.setCursor(9,1);lcd.print(" ");}
      lcd.setCursor(8,1);
      lcd.print(tempo_fade);
    } 
    else {
      tempo_fade ++;
      if (tempo_fade < 10){lcd.setCursor(9,1);lcd.print(" ");}
      lcd.setCursor(8,1);
      lcd.print(tempo_fade);
    }
    //Aggiorna valori
    Enc_tempo_fade_vari_stato = Enc_tempo_fade_stato_corrente;
    Enc_tempo_fade_prec_dir = Enc_tempo_fade_dir_corrente;
  }
  ////////////////////////////////////////////

  //se premo il tasto play
  if (digitalRead(comandi_play) == HIGH) {
    myDFPlayer.volume(30);  //Imposta il valore del volume (0~30).
    myDFPlayer.play(trak);//metti in play tra parentesi il numero della tyraccia
    lcd.setCursor(0,2);
    lcd.print("                   ");
    lcd.setCursor(0,2);
    lcd.print("Play");
  }

  //se premo il tasto pause
  if (digitalRead(comandi_pause) == HIGH) {
    if (play_on == false){;
      play_on =true;
      myDFPlayer.pause();//metti in pausa
    lcd.setCursor(0,2);
    lcd.print("                   ");
    lcd.setCursor(0,2);
    lcd.print("Pause");
    }
    else {
      play_on=false;
      myDFPlayer.volume(30);  //Imposta il valore del volume (0~30).
      myDFPlayer.start();//riprendi la riproduzione
    lcd.setCursor(0,2);
    lcd.print("                   ");
    lcd.setCursor(0,2);
    lcd.print("Play");
    }
  }
  delay(500);
  
  //se premo il testo fade in
  if (digitalRead(comandi_fadein) == HIGH)  {
    int fade = (30/tempo_fade);
    myDFPlayer.volume(0);
    myDFPlayer.play(trak);
    for (int i = 0; i < 30; i++){
      myDFPlayer.volume(i);
      lcd.setCursor(0,2);
      lcd.print("                   ");
      lcd.setCursor(0,2);
      lcd.print("Fadein in corso ");
      lcd.print(i);
      delay (fade);
    }
    lcd.setCursor(0,2);
    lcd.print("                   ");
  }
  delay(500);

  //se premo il testo fade out
  if (digitalRead(comandi_fadeout) == HIGH)  {
    int fade = (30/tempo_fade);
    myDFPlayer.volume(30);
    myDFPlayer.play(trak);
    for (int i = 30; i < 0; i--){
      myDFPlayer.volume(i);
      lcd.setCursor(0,2);
      lcd.print("                   ");
      lcd.setCursor(0,2);
      lcd.print("Fadeout in corso ");
      lcd.print(i);
      delay (fade);
      if (i == 0) {
        myDFPlayer.stop();
        lcd.setCursor(0,2);
        lcd.print("                   ");
        lcd.setCursor(0,2);
        lcd.print("Arresto traccia");
        delay(2000);
      }
    }
  }
  lcd.setCursor(0,2);
  lcd.print("                   ");
  delay(500);
}

ma il risultato è simile a quello che vedete qui

Ringrazio tutti quelli che mi aiuteranno

SoftwareSerial non può funzionare sui pin 0 e 1, che sono dedicati alla seriale hardware (Serial). Prova con altri pin, ma non con quelli!

Ciao, Ale.

Precedentemente lo avevo collegato a l'11 e al 12, ma il risultato era il solito

Ciò non toglie che sullo 0 e l'1 non può funzionare. Se hai tutto già cablato puoi anche fare una prova veloce usando la Serial, che non mi pare che usi nel programma, visto che hai già il display funzionante per fare il debug, per comunicare con il lettore, ovviamente inizializzandola a 9600 ed incrociando oppurtunamente TX/RX. Se non funziona nemmeno così o c'è un problema nel modulo o nella libreria.

Ciao, Ale.