MicroSD non détéctée avec micro SD adaptater et arduino Nano

Bonjour,
Je dois remettre en place une interface pour un projet, dans cette interface se trouve une carte micro SD sur un adaptateur “MicroSD Card Adaptater”. Dans le code (ci-joint), la LED présente sur l’interface clignotera en rouge 5 fois tant que la carte SD ne sera pas présente ou si elle ne répond pas et lancera un reset de l’interface.
Le problème c’est que la carte SD est bien insérée et fonctionne (j’ai aussi testé avec une autre carte SD) mais qu’elle n’est pas détectée par mon interface. Auriez vous une idée de ce que j’ai pu mal faire ?
A savoir que le montage est bon car il était fait par une autre personne l’année dernière et qu’il fonctionnait.
Voici le code (qui a été fait l’année dernière aussi, je n’ai mis que les moments où la fonction InitSD() était utilisée) :

#include <SoftwareSerial.h> // Bibliothèque de fonction : création d'un port série software (communication entre capteur et enregistreur)

#include <SD.h> // Bibliothèque de fonction : Gestion de carte SD
#include <SPI.h> // Bibliothèque de fonction : Communication sur protocole SPI : Lecteur de carte SD

#include <avr/sleep.h>

#include <DS3231.h> // Bibliothèque RTC
#include <Wire.h> // Bibliothèque I2C

#define CS_PIN 10 // Ship sélect (esclave SPI) sur sortie digitale 10
#define MOSI 11
#define MISO 12

File monFichier; // Création de l'objet monFichier

SoftwareSerial SP1(6, 5); // Broche (Rx;TX) Port série software<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//SoftwareSerial SP2(8, 7); // Broche (Rx;TX) Port série software

DS3231 Clock; // Objet RTC

int N = 2;

char myStr[67];
char myStr1[10];
String LoadTram;
bool flag1; //Variable état MOGO/MOSTOP
bool flag2; //Variable état TCON/TCOFF
bool flag3; //Variable état ECRAS
int PosCurs = 0;
int count = 0;
int count2 = 0;

String J, M, A, h, m, s;

/*String RecepTrame;
  String EmitTrame;*/

void LectureSerie(void);
void LectureTrame(void);
bool InitSD(void);
void LectureFichier(void);
void EcritureFichier(void);
void RESET(void);
void ESD(void);
void PowerDown(void);
String RTC(void);

void setup() { // instruction exécutée au démarrage
  digitalWrite(4, HIGH);
  pinMode(4, OUTPUT); // Sortie RESET
  pinMode(CS_PIN,OUTPUT);
  SP1.begin(19200); // Initialisation vitesse de communication du port série virtuel (9600 bauds)
  Serial.begin(19200);// Initialisation vitesse de communication du port série d'envoi vers PC (9600 bauds)
  Wire.begin(); //  Initialisation du port I2C, communicatio vers RTC
  pinMode(9, OUTPUT); // Relais alim 12V;
  pinMode(A2, OUTPUT); // LED verte
  pinMode(A1, OUTPUT); // LED rouge
  pinMode(A0, OUTPUT); // LED Erreur
  digitalWrite(4, HIGH);
  digitalWrite(A1, HIGH);
  while (InitSD() == false)
  {
    count++;
    digitalWrite(A0, HIGH);
    delay(1000);
    digitalWrite(A0, LOW);
    if (count >= 5) // carte SD non initialisée ?
    {
      RESET();
    }
  }

}


bool InitSD()
{
//Initialisation carte SD
if (flag2 == true) Serial.print(F(“Initialisation de la carte SD en cours…”));
if (SD.begin())
{
if (flag2 == true) Serial.println(F(" Terminee."));
return true;
} else
{
if (flag2 == true) Serial.println(F(" Echec."));
return false;
}
//Ouverture fichier ou création si inexistant
monFichier = SD.open(“donnees.txt”, FILE_WRITE);
if (monFichier)
{
monFichier.close();
return true;
}
else
{
if (flag2 == true) Serial.println(F(“Impossible d’ouvrir le fichier_START”));
return false;
}
}

Si j’enlève le débug votre début de fonction contient cela

if (SD.begin()) {
  return true;
} else {
  return false;
}

Vous avez un return donc dans les 2 cas, le code qui suit ne sera jamais exécuté

auriez vous une idée de quel return il faudrait enlever par conséquent ?

si SD.begin() est OK (a retourné vrai) alors c’est là que vous voulez créer le fichier etc…