2017-07-26 3 views
0

Comme le titre le dit, j'essaie de créer un fichier texte à partir de mon croquis Arduino. Mon Arduino est connecté à mon ordinateur via un câble Ethernet mais la carte SD est montée sur l'Arduino, donc je suppose que la connexion à l'ordinateur (USB ou Ethernet) n'a pas d'importance. Ce que j'ai trouvé sur le official Arduino documentation semble assez simple, mais je n'arrive pas à créer le fichier.Comment puis-je créer un fichier texte sur une carte SD montée sur un Arduino Yun?

Voici mon code:

#include <Bridge.h> 
#include <Console.h> 
#include <SPI.h> 
#include <SD.h> 

File myFile; 

void setup() { 
    // Start using the Bridge. 
    Bridge.begin(); 
    // To output on the Serial Monitor 
    Console.begin(); 
    // Open serial communications and wait for port to open: 
    Serial.begin(9600); 
    if (!SD.begin(4)) { 
    Console.println("initialization failed!"); 
    //return; 
    } 
    Console.println("initialization done."); 
    myFile = SD.open("test.txt", FILE_WRITE); 
    if (myFile) { 
    Console.print("Writing to test.txt...\n"); 
    myFile.println("testing 1, 2, 3."); 
    // close the file: 
    myFile.close(); 
    Console.print("done.\n"); 
    } else { 
    // if the file didn't open, print an error: 
    Console.print("error opening test.txt\n"); 
    } 
    // re-open the file for reading: 
    myFile = SD.open("test.txt"); 
    if (myFile) { 
    Console.print("test.txt: "); 
    // read from the file until there's nothing else in it: 
    while (myFile.available()) { 
     Console.print(myFile.read()); 
    } 
    // close the file: 
    myFile.close(); 
    } else { 
    // if the file didn't open, print an error: 
    Console.print("error opening test.txt\n"); 
    } 
} 

void loop() { 
    Console.print("Loop\n"); 
    delay(1000); 
} 

Et ceci est la sortie:

initialization failed! 
initialization done. 
error opening test.txterror opening test.txt 
Loop 
[...] 
Loop 

Contrairement au lien que je fournis ci-dessus, je me sers Console au lieu de Serial pour les déclarations d'impression. Le reste est le même. Et j'ai évidemment une carte SD montée.

Une idée de quelqu'un?

+0

Avez-vous formulé le SD? Dans quel type? – George

+0

Je l'ai fait, c'est FAT32. – BourbonCreams

+0

Je l'ai également déjà utilisé pour mettre à jour le logiciel de l'Arduino et après un ssh dans l'Arduino, je peux voir que le répertoire/mnt/sda1/contient encore ce fichier. Je peux créer même créer des fichiers à partir de Terminal en utilisant nano afin que la carte SD fonctionne bien. – BourbonCreams

Répondre

0

Comme suggéré par gre_gor dans les commentaires, j'ai suivi ce tutoriel spécifiquement pour l'Arduino Yun: https://www.arduino.cc/en/Tutorial/YunDatalogger. Je devais changer le chemin du fichier sur la carte SD (le mien était « /mnt/sda1/myFile.txt ») et je devais supprimer ces deux lignes dans la fonction de configuration:

// Delete these two lines: 
while (!SerialUSB); // wait for Serial port to connect. 
SerialUSB.println("Filesystem datalogger\n"); 

Et cela a fonctionné .