Les cartes SD sont des supports de stockage très pratiques et très répandus. Elles sont utilisées dans de nombreux appareils, notamment les appareils photo numériques, les téléphones portables et les consoles de jeux. Dans cet article, nous allons nous intéresser à l’ouverture et à l’écriture dans un fichier sur une carte SD. Nous verrons comment tester ces fonctionnalités et quelles sont les considérations à prendre en compte lors de l’utilisation d’une carte SD.
SD Card : Test de l’ouverture et de l’écriture dans un fichier
1. Présentation
Ce programme teste l’ouverture et l’écriture d’une valeur dans un fichier de SD card.
Ce programme utilise les fonctionnalités suivantes :
- Utilise la connexion série vers le PC
- Utilise le module Ethernet Arduino (uniquement pour le connecteur SD Card)
Ressources utiles associées à ce programme :
- La librairie Serial – pour les communications séries entre la carte Arduino et l’ordinateur ou d’autres composants
- La librairie Ethernet – pour se connecter à Internet en utilisant le module Arduino Ethernet
- La librairie SD – pour utiliser une SD Card
2. Matériel Nécessaire
2.1 L’espace de développement Arduino
- … pour éditer, compiler le programme et programmer la carte Arduino.

2.2 Le matériel suivant pour réaliser le montage associé
- un module Arduino Ethernet ou tout autre module disposant d’un emplacement pour carte mémoire SD.

- une carte mémoire micro-SD

3. Instructions de montage
- La connexion série vers le PC utilise les broches 0 et 1 (via le câble USB)
- Le module Ethernet est à enficher broche à broche sur la carte Arduino
- Connecter broche SCLK du module Ethernet sur la broche 13
- Connecter broche MISO du module Ethernet sur la broche 12
- Connecter broche MOSI du module Ethernet sur la broche 11
- Connecter broche Select Ethernet du module Ethernet sur la broche 10
- Connecter broche Select SD Card du module Ethernet sur la broche 4
- Le module Ethernet est compatible avec la carte Mega via le connecteur ICSP
Avant de l’utiliser, il est nécessaire d’initialiser la carte mémoire micro-SD sur le PC en créant un répertoire /monrep et un fichier. test.txt.
4. Le circuit du montage
Le schéma du montage à réaliser (cliquer pour agrandir)
5. Explication du programme
- Ce programme teste l’existence d’un fichier : si le fichier existe, le répertoire est ouvert et une valeur est écrite en fin de fichier.
- Le déroulement des opérations est affiché dans un Terminal Série
6. Mise en oeuvre du programme
6.1 Préparation du montage et programmation de la carte Arduino :
- Commencer par réaliser le montage indiqué sur plaque d’expérimentation
- Ensuite, programmer la carte Arduino avec ce programme (en bas de page) selon la procédure habituelle
6.2 Préparation du Terminal côté PC dans le logiciel Arduino
- Côté PC, il faut ouvrir la fenêtre terminal de l’IDE Arduino : pour ce faire, un simple clic sur le bouton « Sérial Monitor ».

- La fenêtre « Terminal » s’ouvre alors :

- Il faut alors régler le débit de communication sur la même valeur que celle utilisée par le programme avec lequel nous allons programmer la carte Arduino :

6.3 Fonctionnement
Avant de l’utiliser, il est nécessaire d’initialiser la carte mémoire micro-SD sur le PC en créant un répertoire /monrep et un fichier. test.txt.
- Au lancement, du Terminal Série, les messages des opérations s’affiche. Relancer plusieurs fois le Terminal Série pour voir les valeurs ajoutées dans le fichier.
7. Le programme complet en langage Arduino
A copier/coller directement dans l’éditeur Arduino
// Programme écrit le : 12/2011.
// ——- Licence du code de ce programme —–
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License,
// or any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <SD.h> // crée automatiquement un objet racine SD représentant la carte mémoire SD
File myFile; // objet file
char dirName[]=« /monrep »; // tableau de caracteres pour le nom du répertoire
// nom du fichier court (8 caractères maxi . 3 caractères maxi) (dit format DOS 8.3)
char fileName[] = « test.txt »; // tableau de caractères pour le nom du fichier
char pathFile[] = « /monrep/test.txt »; // tableau de caractères pour le nom du fichier
int test; //variable mémorisation résultat renvoyé par fonctions
void setup()
{
Serial.begin(115200); // utiliser le meme debit coté Terminal Serie
//—– initialisation de la carte SD —–
Serial.println(« Initialisation de la SD card… »);
pinMode(10, OUTPUT); // laisser la broche SS en sortie – obligatoire avec librairie SD
test=SD.begin(4); // initialisation de la carte SD avec broche 4 en tant que CS – renvoie true/false
if (test!=true) { // si initialisation n’est pas réussie
Serial.println(« Echec initialisation! »); // message port Série
}
else { // si nitialisation réussie
Serial.println(« Initialisation reussie ! »); // message port Série
} // fin si SD.begin
//—– test de l’existence d’un répertoire
test=SD.exists(pathFile); // test si le répertoire existe – renvoie true/false
Serial.print (« Test= »); Serial.println(test);
if (test!=true) { // si le répertoire n’existe pas
Serial.println (« Le fichier n’existe pas ! »);
}
else { // si le répertoire existe
Serial.println (« Le fichier existe ! »);
//SD.remove(pathFile); // efface le fichier
//Serial.println (« Fichier efface ! »);
//—– ouverture du fichier —
myFile=SD.open(pathFile,FILE_WRITE); // ouvre le fichier en écriture et crée fichier si existe pas
//Serial.print (« Test= »); Serial.println(test);
if (myFile!=true) { // si échec ouverture
Serial.println (« Echec ouverture fichier ! »);
}
else { // si ouverture réussie
Serial.println (« Ouverture fichier reussie ! »);
myFile.seek(myFile.size()); // positionnement à la fin du fichier
Serial.println (« Positionnement a la fin du fichier! »);
myFile.println(); // ajoute un saut de ligne
myFile.println(« —— Debut nouvel enregistrement ——-« ); // ajoute une ligne
myFile.println(millis()); // ajoute la ligne au fichier – ici enregistre la valeur de millis
/*– affiche une nouvelle série de 30 valeur
for (int i=0; i<30; i++) {
myFile.println(i); // ajoute la ligne au fichier
}
*/
myFile.close(); // fermeture du fichier
Serial.println (« Fermeture fichier effectuee! »);
test=SD.exists(pathFile); // test si le fichier existe – renvoie true/false
Serial.print (« Test= »); Serial.println(test);
if (test!=true) { // si fichier existe pas
Serial.println (« Le fichier existe pas ! »);
}
else { // si fichier existe
Serial.println (« Le fichier existe ! »);
//— ouverture du fichier en lecture —
myFile=SD.open(pathFile,FILE_READ); // ouvre le fichier en lecture
Serial.println (« Ouverture du fichier en lecture »);
for (int i=0; i<myFile.size(); i++ ) {
myFile.seek(i); // se positionne à la position i
Serial.print(char(myFile.peek())); // affiche le caractère courant
}
myFile.close(); // fermeture du fichier
Serial.println (« Fermeture fichier effectuee! »);
} // fin else si fichier existe
} // fin else si ouverture répertoire réussie
}// fin else si répertoire
} // fin setup()
void loop(){
}
Articles similaires:
- SD Card : Afficher le contenu de la carte mémoire micro SD
- SD Card : Enregistrement simple d’une mesure analogique à l’aide d’une carte SD et affichage graphique du fichier obtenu dans un tableur.
- http://web.archive.org/web/20210804223007/http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ATELIERSSerieAfficheMessageTerminal
- Programmer le pcDuino : Pyduino : Fichier : Créer un fichier de données horodatées de test.
- http://web.archive.org/web/20210804223007/http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.MATERIELArduinoShieldEthernetShield
Articles Liés
- SD Card : Enregistrement simple d'une mesure analogique à l'aide d'une carte SD et affichage graphique du fichier obtenu dans un tableur.
Les cartes SD sont des outils pratiques pour enregistrer des données analogiques. Elles offrent une…
- Ethernet en mode serveur : Serveur réseau de datalogging avec stockage dans une SD-Card et accès distant dans une interface Processing
L'Ethernet en mode serveur est une technologie révolutionnaire qui permet aux utilisateurs de créer un…
- Mesure analogique à distance (télémétrie) multivoies à partir d'une carte Arduino "serveur" via deux interfaces Processing Client/Serveur sur 2 PC connectés en réseau wifi.
La télémétrie est une technologie qui permet de mesurer des données à distance. Elle est…