Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Index du Forum



Erreur ecriture carte SD :


 
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions
Sujet précédent :: Sujet suivant  
Auteur Message
jym92
Débutant

Hors ligne

Inscrit le: 13 Oct 2015
Messages: 1
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Mar 13 Oct - 14:08 (2015)    Sujet du message: Erreur ecriture carte SD : Répondre en citant

PublicitéSupprimer les publicités ?
Bonjour à tous,

Je viens ici pour vous demander de l'aide car depuis quelques jours je reste planté sur un problème qui peut sembler assez simpliste vu de l'extérieur...

Mon projet consiste à stocker des informations dans une carte micro SD, cependant cet enregistrement ne se fera que si l'on reste appui sur un bouton poussoir bien défini...

Actuellement j'arrive bien à écrire une fois dans mon fichier qui dans la carte sd cependant quand je rappuie et que je souhaiterai écrire à la suite, rien ne s'écrit alors que j'ai bien réouvet le fichier et que j'ai placé mon pointeur de texte à la fin ....

Je vous laisse mon code ci-dessous, si certains ont des idées je suis preneur....

Merci d'avance !


 
Code:
 // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// +++++++++++++++ DECLARATION DES VARIABLES +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Déclaration des ports :
    
const int bouton = 2; // bouton associé à la led rouge REC
 
int ledwhite = 8;
int ledgreen = 9;
const int brocheSDCardSelect=4; // broche utilisée pour sélectionner la SD card

//---- crée fichier en écriture ---
char fileName[] = "/Mesure.txt";

File file; // création d'un objet SdFile pour le fichier utilisé
File root; // création d'un objet SdFile pour le répertoire racine

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// +++++++++++++++ Initialisation  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void setup()
{
 
  // Begin by setting up the Serial Port so we can output our results.
  Serial.begin(9600);
  Serial.println("Debut Initialisation...");
 
  // initialisation des leds à l'état allumée
  pinMode(ledwhite, OUTPUT);
  pinMode(ledgreen, OUTPUT);
  digitalWrite( ledwhite, HIGH);
  digitalWrite( ledgreen, HIGH);
 
  // ------------------------------------------------------------------------------
  //----- initialisation de la carte SD -----
  //---- initialise l'utilisation de la carte mémoire SD en mode SPI -----------------
  pinMode(10, OUTPUT); // met la broche 10 (SS) en sortie (nécessaire avec module ethernet)
  digitalWrite(10, HIGH); // mais désactive le  circuit intégré W5100 du module ethernet!

  //----- 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(brocheSDCardSelect); // 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("error sd!"); // message port Série
  }
  else
  {
    //----- affiche le contenu du répertoire
    root = SD.open("/"); // ouvre la SD Card à la racine
    //Serial.println("Repertoire racine ouvert !");
  }

  file = SD.open(fileName, FILE_WRITE); // ouvre le fichier en écriture
        
  if (!file) Serial.println ("Erreur ouverture fichier !");
  else Serial.println ("Fichier pret pour ecriture !");
 
  //file.seek(file.size()); // positionnement à la fin du fichier
  file.println(); // ajoute un saut de ligne
  file.println("---- Debut programme -----");    
 
  Serial.println(" Initialisation fini !");
  // -----------------------------------------------
}

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// +++++++++++++++ MAIN  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void loop()
{  
  // initialisation du programme principal:
  // les leds W,G resteront allumé durant toute l'initialisation puis clignote à la fin !
  // ---
  delay(1000);
  OnOff_all_led();
  int etat;
  int i = 0;
 
  // début de la bouble principale
  while(1)
  {
    etat = digitalRead(bouton); //Rappel : bouton = 2
 
    if(etat == HIGH)
      {
        i = i + 1;
        if (i > 1)
          {
            file = SD.open(fileName, FILE_WRITE); // ouvre le fichier en écriture
            file.seek(file.size()); // positionnement à la fin du fichier
            file.println(); // ajoute un saut de ligne
           }
        
       //init_SD();
        Serial.println(" I = "+String(i)+" ");
        file.println("---- Debut enregistrement " + String(i) + "-----");
        //file.println("---- Debut enregistrement -----");
        file.println(" donnees incristes : ");
       while(etat == HIGH)
         {
         blink_led(ledwhite);
         Output_centrale(); // cela fait appel à une fonction qui donnent les résultats d'un centrale inertielle
         delay(100);
         etat = digitalRead(bouton);
         }
       // fin enregistrement
       file.println("---- fin enregistrement " + String(i) + "-----");
       //file.println("---- fin enregistrement -----");
       file.close(); // ferme le fichier
       Serial.println("fin REC !");
      }
    else
      {
      // en attente appui bp
      // Serial.println("---");
      delay(100);
      }
  }



PS: je ne peux vous donner l'intégralité du code car celui-ci appartient à mon entreprise. Cependant je sais que le reste fonctionne car il a était utilisé dans d'autres projets...

Merci de votre compréhension.
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 16:48 (2017)    Sujet du message: Erreur ecriture carte SD :

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino