Ecriture SD

Bonjour

J'apprends à me servir d'un module de carte microSD et je remarque qu'après avoir écrit dessus depuis mon Arduino UNO, la carte microSD n'accepte plus d'être écrite depuis l'ordi (Ubuntu 16.04). Elle semble en "lecture seule" alors que les droits en écriture sont toujours là. (Selon Ubuntu) :disappointed_relieved:
Cependant, je n'arrive même pas à la reformater ou à refaire la table de partition (même en mode root...). Linux me dit que la SD est en lecture seulement...
Mon UNO, lui, arrive à créer de nouveaux fichiers !!! :astonished:

Quelqu'un saurait pourquoi ?

Merci

Voici mon code :

/** Programme pour tester l'écrire sur une carte SD.
    Il est inspiré de ce tutoriel :
    https://www.youtube.com/watch?v=M9VvsFL-vZI&t=15s (U=RI)
    https://www.youtube.com/watch?v=fpTUT5k0_4o (Procuste pour les brachements)
    Ici, j'essaye d'écrire seulement, les informations données par un compteur "compt".
    J'y mettrai prochainement des informations utiles. ;-) --> station météo

  Sur Arduino MEGA 2560
 ** MOSI - pin 51
 ** MISO - pin 50
 ** CLK - pin 52
 ** CS - pin 53

  Sur Arduino UNO
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 10

**/

// Inclusion de la bibliothèque de lecture/écriture sur une carte SD
#include <SD.h>

// Inclusion de la bibliothèque de contrôle du bus SPI
#include <SPI.h>

// Affectation de broche CS du module SD à la PIN 10
#define CS_PIN 10            // Ne fonctionnait pas depuis la PIN 6 sur un Arduino Nano !!!
// Pourrait être omis si la pin est indiquée lors de l'initialisation -->  if (SD.begin(10))

// Création d'un objet (instance de "SD.h") qui s'appellera "monStylo" (Dans le programme d'origine, c'était "monFichier")
// C'est le processus qui sera capable d'écrire dans la mémoire de la SD. En fait, c'est comme créer un stylo !

File monStylo;

int compt = 0;               // Création d'une variable pour faire un compteur d'essai.

const int ledTemoin = 3;     // Définir la pin où je mettrai la LED qui témoignera de l'écriture sur la SD
int pinBuz = 5;              // Définir la pin où je mettrai le buzzer qui fera un "bip"



void setup()
{
  Serial.begin(9600);                                           // Initialise le moniteur série.
  Serial.println("Initialisation de la carte SD en cours...");  // Affiche ce texte dans le moniteur série.

  pinMode(ledTemoin, OUTPUT);                                   // Pour activer la PIN "ledTemoin" en sortie et faire allumer une diode témoinn lors de l'écriture
  // histoire de vérifier, même sans moniteur, qu'il écrit quelque-chose.

  if (SD.begin())                                               // Si l'initialisation de la SD réussit
  {
    Serial.println("Initialisation a reussi !");                 // Affiche le texte.
  }

  else                                                          // Si l'initialisation de la SD a échoué
  {
    Serial.println("L'initialisation a echoue.");               // Affiche le texte
    return;                                                     // Revérifie le "if" ??? / Mais je ne le vois pas faire une boucle... ???
  }


}



void loop() {

  compt++ ;                                                       // Incrémenter le compteur de 1 (= "compt = compt + 1")

  monStylo = SD.open("TEST.TXT", FILE_WRITE);                     // Ouverture (ou création, s'il n'existe pas déjà), en mode écriture, d'un fichier texte.
  if (monStylo)                                                 // --> Si "monStylo" a bien réussi à ouvrir/créer le fichier .txt
  {
    monStylo.print("Boucle n° : ");                             // Écrire le texte dans le fichier
    monStylo.println(compt);                                    // Écrire la valeur de la variable compt
    digitalWrite(ledTemoin, HIGH);                              // Allumer la diode "ledTemoin" pour montrer qu'il écrit
    tone(pinBuz, 500, 50);                                      // "Bip" témoin
    monStylo.close();                                           // Fermer le fichier (Rebouche le stylo :-)  )
    Serial.print("Écriture terminée ! C'était la boucle : ");   // Prévient dans le moniteur série que l'écriture est terminée
    Serial.println(compt);                                      // Prévient dans le moniteur série que l'écriture est terminée


  }
  else                                                          // --> Si "monStylo" n'a pas réussi à ouvrir le fichier .txt
  {
    Serial.println("N'arrive pas à écrire...");                 // Prévient dans le moniteur série que l'écriture a échoué
  }

  digitalWrite(ledTemoin, LOW);                               // Éteindre la diode "ledTemoin"


  delay (1000);

}

Tu peux la reformater avec le PC ?
Si oui, rien n'est perdu. Peut-être faut-il qu'elle soit formattée selon un certain protocole pour être utilisable à la fois avec le PC et l'arduino...

J'ai fini par faire sauter la table de partition pour la reconstruire et la formater en FAT32.

Mais ce n'est pas vraiment pratique !

Selon la doc, c'est bien du FAT32... Ce que je ne comprends pas, c'est que jamais le module MicroSD ne reformate quoi que ce soit... Juste il écrit un petit fichier .txt...

C'est étrange !