IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

La physique COMPUTATIONNELLE au lycée

Image non disponible


précédentsommairesuivant

6. Utilisation d'une carte SD avec Arduino UNO

6-1. Rendre la carte Arduino autonome.

La carte Arduino peut très bien être utilisée sans qu'elle soit branchée à l'ordinateur. Dans ce cas, il est nécessaire d'alimenter la carte par l'intermédiaire du port d'alimentation ou bien à l'aide de la borne d'entrée Vin. Les deux ont les mêmes caractéristiques, les tensions d'alimentation recommandées sont comprises entre 7 V et 12 V.

Une fois la carte autonome, il est possible de faire de l'acquisition avec une carte Arduino mobile. Nous avons alors un véritable système embarqué. C'est-à-dire un système autonome capable de réaliser une tâche précise en temps réel.

Dans ce cadre, il devient primordial de pouvoir sauvegarder l'information acquise à l'aide des capteurs branchés sur la carte. Pour cela nous allons utiliser un shield SD (caractéristiques).

6-2. Écrire des données sur la carte SD.

La documentation pour la SD Library. Vous y trouverez tous les renseignements nécessaires sur la communication entre le microcontrôleur et la carte SD à travers le bus SPI.

6-2-1. Initialiser la carte SD

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#include <SPI.h> // Pour la communication SPI
#include <SD.h>  // Pour la communication avec la carte SD

void setup() {
    /* Initialisation du port série */
    Serial.begin(9600);
    /* Initialisation de la carte SD */
    SD.begin(10);
}
void loop() {
    // Votre code
}

6-2-2. Écrire sur la carte

Pour notre premier exemple, nous allons enregistrer les changements de valeur d'un compteur dans un fichier nommé data.csv.

Avant cela, nous commencerons par créer le fichier, à l'aide la fonction open

DESCRIPTION DE LA FONCTION open

Opens a file on the SD card. If the file is opened for writing, it will be created if it doesn't already exist (but the directory containing it must already exist).

Syntax

SD.open(filepath)
SD.open(filepath, mode)

Parameters

filename : the name the file to open, which can include directories (delimited by forward slashes, ) - char *
mode (optional) : the mode in which to open the file, defaults to FILE_READ - byte. one of :

  • FILE_READ : open the file for reading, starting at the beginning of the file.
  • FILE_WRITE : open the file for reading and writing, starting at the end of the file.

Returns

a File object referring to the opened file; if the file couldn't be opened, this object will evaluate to false in a boolean context, i.e. you can test the return value with if (f).

Dans un souci de simplicité, le choix a été fait d'effacer le fichier data.csv s'il existe déjà afin de ne pas l'allonger à chaque nouvelle acquisition.

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
#include <SPI.h>
#include <SD.h>

/* Nom du fichier d'enregistrement */
File fichier ;
/* Le compteur */
int i = 0;

void setup() {

    Serial.begin(9600);
    SD.begin(10);

    if (SD.exists("data.csv"))                  // Si le fichier existe sur la carte
        SD.remove("data.csv" ) ;                // Il est effacé
    fichier = SD.open("data.csv", FILE_WRITE);  // Création d'un nouveau fichier
    fichier.println("Compteur");                // Information à écrire sur la carte
    fichier.flush ();                           // On force l'écriture
}

void loop ( ) {
    fichier.println(i);
    i = i + 1;
    fichier.flush();
}

7. Réaliser une acquisition avec un capteur en conservant les données sur la carte SD. Penser à formater vos données au format CSV.

8. Que fait le code suivant ?

 
Sélectionnez
1.
2.
3.
4.
int numero = 0;
while (SD.exists("data" + String(numero) + ".csv"))
    numero = numero + 1;
fichier = SD.open("data"+ String(numero)+ ".csv", FILE_WRITE);

9. Comment l'insérer dans votre code pour obtenir l'effet escompté ?


précédentsommairesuivant

Licence Creative Commons
Le contenu de cet article est rédigé par Christophe Casseau et est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé.
Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright © 2021 Developpez.com.