Arduino Nano - Carte Micro SD

Ce tutoriel vous explique comment utiliser une carte Micro SD avec un Arduino Nano. Plus en détail, nous apprendrons :

Carte Micro SD Arduino Nano

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
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 Nano
1×(Recommended) Screw Terminal Adapter for Arduino Nano

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 est une connexion entre l'Arduino Nano et une carte Micro SD. Il facilite la communication entre les deux, permettant à l'Arduino Nano d'accéder à la carte Micro SD.

Brochage du module de carte Micro SD

Brochage du module de carte Micro SD

Le module de carte Micro SD a 6 broches :

  • Broche VCC : Elle doit être connectée à la broche 5V de l'Arduino.
  • Broche GND : Elle doit être connectée à la broche GND de l'Arduino.
  • Broche MISO : (Master In Slave Out) Elle doit être connectée à la broche MOSI de l'Arduino.
  • Broche MOSI : (Master Out Slave In) Elle doit être connectée à la broche MISO de l'Arduino.
  • Broche SCK : Elle doit être connectée à la broche SCK de l'Arduino.
  • Broche SS : (Sélection d'esclave) Elle doit être connectée à la broche spécifiée dans le code Arduino Nano comme une broche SS.

Préparation

Assurez-vous que la carte Micro SD est formatée en FAT16 ou FAT32 (recherchez en ligne pour plus d'informations).

Diagramme de câblage

  • Vous pouvez utiliser des câbles à jumper mâle-femelle pour connecter le module de carte micro SD à l'Arduino Nano.
Schéma de câblage du module de carte Micro SD Arduino Nano

This image is created using Fritzing. Click to enlarge image

  • Ou vous pouvez brancher le module de carte micro SD sur la planche d'essai puis utiliser les fils cavaliers mâle-mâle.
Schéma de câblage du module de carte Micro SD Arduino Nano

This image is created using Fritzing. Click to enlarge image

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

Code Arduino Nano

Étapes rapides

  • Insérez la carte Micro SD dans le module de carte Micro SD.
  • Suivez le schéma de câblage pour connecter le module de carte Micro SD à l'Arduino Nano.
  • Connectez l'Arduino Nano à un ordinateur via un câble USB.
  • Ouvrez l'IDE Arduino et sélectionnez la carte et le port appropriés.
  • Ouvrez le moniteur série dans l'IDE Arduino.
  • Copiez et collez le code ci-dessous dans l'IDE Arduino.
/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-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 compiler et téléverser le code sur l'Arduino Nano.
  • Vérifiez le moniteur série pour le résultat de la première exécution.
COM6
Send
SD CARD INITIALIZED. arduino-nano.txt doesn't exist. Creating arduino-nano.txt file... arduino-nano.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • La sortie qui apparaîtra sur le moniteur série pour les exécutions suivantes
COM6
Send
SD CARD INITIALIZED. arduino-nano.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

Vous pourriez ne pas voir les résultats sur le moniteur série si le premier téléversement est effectué avant d'ouvrir le moniteur série.

  • Retirez 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 est présent ou non.

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

Le code suivant :

  • Enregistre les données dans un fichier
  • Lit le contenu du fichier caractère par caractère et l'affiche sur le moniteur série
/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-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 Nano and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

Par défaut, les données seront ajoutées à la fin du fichier. Si vous redémarrez l'Arduino Nano avec le code ci-dessus, le texte sera ajouté à nouveau au fichier. Cela entraînera l'affichage de plus de lignes dans le moniteur série comme suit :

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

Vous pouvez retirer la carte Micro SD du module et visualiser son contenu sur votre ordinateur en utilisant un lecteur de carte SD USB.

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

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-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 s'affiche sur le moniteur série.
COM6
Send
SD CARD INITIALIZED. Line 1: Created by ArduinoGetStarted.com Line 2: Learn Arduino Nano and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

Vous pourriez observer des lignes supplémentaires sur le moniteur série si le contenu du fichier n'est pas effacé au préalable.

Arduino Nano - 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 remplacer un fichier est de supprimer le fichier existant et d'en créer un nouveau portant le même nom.

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-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 affiché sur le moniteur série.
COM6
Send
SD CARD INITIALIZED. Created by ArduinoGetStarted.com Learn Arduino Nano and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Redémarrez Arduino Nano
  • Vérifiez si le matériel dans le fichier est ajouté au moniteur série ou non.

Vous pouvez retirer la carte Micro SD du module et consulter son contenu sur votre PC. Un lecteur de carte SD USB est nécessaire pour cela.

Vidéo

※ 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!