Arduino - Carte Micro SD

Dans ce tutoriel, nous allons apprendre à utiliser la carte Micro SD avec Arduino. En détail, nous apprendrons :

Carte Micro SD Arduino

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×Micro SD Card
1×Micro SD Card Module
1×Jumper Wires
1×USB 3.0 SD Card Reader
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module de carte Micro SD

Le module de carte Micro SD peut s'interfacer avec Arduino et peut contenir une carte Micro SD. En d'autres termes, le module de carte Micro SD est un pont entre Arduino et la carte Micro SD.

Brochage

Brochage du module de carte Micro SD

Le module de carte Micro SD comprend 6 broches :

  • Broche VCC : connectez à la broche 5V de l'Arduino.
  • Broche GND : connectez cette broche à la GND de l'Arduino.
  • Broche MISO : (Master In Slave Out) connectez cette broche à la broche MOSI de l'Arduino.
  • Broche MOSI : (Master Out Slave In) connectez cette broche à la broche MISO de l'Arduino.
  • Broche SCK : connectez cette broche à la broche SCK de l'Arduino.
  • Broche SS : (Sélection du Slave) connectez cette broche à la broche spécifiée dans le code Arduino comme broche SS.

Préparation

  • Connectez la carte Micro SD au PC via le lecteur de carte SD USB 3.0
  • Assurez-vous que la carte Micro SD est formatée en FAT16 ou FAT32 (recherchez sur Google)

Diagramme de câblage

Schéma de câblage du module de carte SD Arduino

This image is created using Fritzing. Click to enlarge image

※ NOTE THAT:

Si vous utilisez un shield Ethernet ou tout autre shield disposant d'un support de carte Micro SD, vous n'avez pas besoin d'utiliser le module de carte Micro SD. Vous devez simplement insérer la carte Micro SD dans le support de carte Micro SD du shield.

Arduino - Comment ouvrir un fichier sur une carte Micro SD et le créer s'il n'existe pas

Code Arduino

Étapes rapides

  • Insérez la carte Micro SD dans le module de carte Micro SD
  • Effectuez le câblage entre le module de carte Micro SD et Arduino selon le schéma de câblage ci-dessus
  • Connectez l'Arduino au PC via un câble USB
  • Ouvrez Arduino IDE, sélectionnez la bonne carte et le bon port
  • Ouvrez le moniteur série sur Arduino IDE
  • Copiez le code ci-dessous et collez-le dans Arduino IDE
/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); if (!SD.exists("arduino.txt")) { Serial.println(F("arduino.txt doesn't exist. Creating arduino.txt file...")); // create a new file by opening a new file and immediately close it myFile = SD.open("arduino.txt", FILE_WRITE); myFile.close(); } // recheck if file is created or not if (SD.exists("arduino.txt")) Serial.println(F("arduino.txt exists on SD Card.")); else Serial.println(F("arduino.txt doesn't exist on SD Card.")); } void loop() { }
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code vers Arduino
  • Le résultat sur le moniteur série pour la première exécution
COM6
Send
SD CARD INITIALIZED. arduino.txt doesn't exist. Creating arduino.txt file... arduino.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Le résultat sur le moniteur série pour les prochaines exécutions
COM6
Send
SD CARD INITIALIZED. arduino.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

Il se peut que vous ne voyiez pas le résultat sur le moniteur série lors du premier lancement si votre premier téléversement est effectué avant d'ouvrir le moniteur série.

  • Détachez la carte Micro SD du module
  • Insérez la carte Micro SD dans un lecteur de carte SD USB
  • Connectez le lecteur de carte SD USB au PC
  • Vérifiez si le fichier existe ou non

Arduino - Comment écrire/lire des données vers/depuis un fichier sur une carte Micro SD

Le code ci-dessous fait :

  • Écrire des données dans un fichier
  • Lire le contenu d'un fichier caractère par caractère et l'afficher sur le moniteur série
/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); // open file for writing myFile = SD.open("arduino.txt", FILE_WRITE); if (myFile) { myFile.println("Created by ArduinoGetStarted.com"); // write a line to Arduino myFile.println("Learn Arduino and SD Card"); // write another line to Arduino myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } // open file for reading myFile = SD.open("arduino.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }
  • Le moniteur série a affiché le contenu du fichier.
COM6
Send
Created by ArduinoGetStarted.com Learn Arduino and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

Les données seront ajoutées à la fin du fichier par défaut. Si vous redémarrez Arduino avec le code ci-dessus, le texte sera de nouveau ajouté au fichier ⇒ le moniteur série affichera plus de lignes comme ci-dessous :

COM6
Send
Créé par ArduinoGetStarted.com Apprenez Arduino et carte SD Créé par ArduinoGetStarted.com Apprenez Arduino et carte SD
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vous pouvez également retirer la carte Micro SD du module et l'ouvrir sur votre PC pour vérifier le contenu (un lecteur de carte SD USB est nécessaire).

Arduino - Comment lire un fichier sur une carte Micro SD ligne par ligne

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); // open file for writing myFile = SD.open("arduino.txt", FILE_WRITE); if (myFile) { myFile.println("Created by ArduinoGetStarted.com"); // write a line to Arduino myFile.println("Learn Arduino and SD Card"); // write another line to Arduino myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } // open file for reading myFile = SD.open("arduino.txt", FILE_READ); if (myFile) { int line_count = 0; while (myFile.available()) { char line[100]; // maximum is 100 characters, change it if needed int line_length = myFile.readBytesUntil('\n', line, 100); // read line-by-line from Micro SD Card line_count++; Serial.print(F("Line ")); Serial.print(line_count); Serial.print(F(": ")); Serial.write(line, line_length); // print the character to Serial Monitor // \n character is escaped by readBytesUntil function Serial.write('\n'); // print a new line charactor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }
  • Le résultat sur le moniteur série
COM6
Send
SD CARD INITIALIZED. Line 1: Created by ArduinoGetStarted.com Line 2: Learn Arduino and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

Vous pourriez voir plus de lignes sur le moniteur série si le contenu du fichier n'est pas supprimé au préalable.

Arduino - Comment écraser un fichier sur une carte Micro SD

Par défaut, le contenu sera ajouté à la fin du fichier. La manière la plus simple de réécrire un fichier est : supprimer le fichier existant et en créer un nouveau avec le même nom.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); SD.remove("arduino.txt"); // delete the file if existed // create new file by opening file for writing myFile = SD.open("arduino.txt", FILE_WRITE); if (myFile) { myFile.println("Created by ArduinoGetStarted.com"); // write a line to Arduino myFile.println("Learn Arduino and SD Card"); // write another line to Arduino myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } // open file for reading myFile = SD.open("arduino.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }
  • Le résultat sur le moniteur série
COM6
Send
SD CARD INITIALIZED. Created by ArduinoGetStarted.com Learn Arduino and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Redémarrez Arduino
  • Vérifiez si le contenu du fichier sur le moniteur série est ajouté ou non.

Vous pouvez également détacher la carte Micro SD du module et l'ouvrir sur votre PC pour vérifier le contenu (un lecteur de carte SD USB est nécessaire).

Vidéo

Références de fonction

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!