[ARDUINO MEGA] probléme arduino mega + carte SD

bonjour / bon soir,

pour commençais le matosse :Arduino Mega
lecteur carte SD:Lecteur carte SD

donc voilà cela fait qu'elle que semaine que je suis sur un projet perso et pour cela j'ai besoin de sauvegarder sur une carte SD mais voila le problème j'ai suivie tout les tuto, vue tout les forum, testé tout et n'importe quoi. je me tourne vaire vous humblement en espèrent trouvais de l'aide

voila mon code on ne sais jamais : (je ne dépasse pas ce point if(!SD.begin(pinSD))

#include <SD.h>
#include <SPI.h>
#include <Arduino.h>
//------------------------------------- carte SD
/*
   ** MOSI - pin 51
   ** MISO - pin 50
   ** CLK - pin 52
   ** CS - pin 53
*/
 
File file;
int pinSD = 53;
String save="save.txt",data="data.txt";     // save parametre modifiable----- ---- data donner toute les 15 min
 unsigned long Depart;
  unsigned long tmpVa=0;
  unsigned long temoinVa=10000;
//1 heure = 3600000 16h=57600000 12=43200000
  //1 minutue = 60000 15min=900000
  // 1second = 1000
void setup() {
  // put your setup code here, to run once:
  pinMode(pinSD,OUTPUT);
 Serial.begin(9600);
SPI.begin();
pinMode(pinSD,HIGH);
if(!SD.begin(pinSD)){  //----------------------------------------ICI !!!!!!!
  Serial.println(SD.begin(53));
  Serial.println("SD ERRO" );
 
  Serial.println("check SD read" );
 
  Serial.println("restart" );
  for(;;);
}
  Serial.println("SD OK" );
if(!SD.exists(save)){
Serial.println("pas de ficher ");
Serial.println(save);
Serial.println("création du ficher");
}else{
   file=SD.open(save,FILE_READ);
  while(file.available()){
  Serial.println(file.read());
  }
  file.close();
Serial.println("save charger");
}
if(!SD.exists(data)){
Serial.println("pas de ficher ");
Serial.println(data);
Serial.println("création du ficher");
}
 Serial.println("SD OK" );
 Depart = millis(); // Enregistrement de mon point de départ
}
void loop() {
  // put your main code here, to run repeatedly:
unsigned long tmp=(millis()-Depart);
if(tmp==tmpVa){
  file=SD.open(save,FILE_READ);
    tmpVa=tmp+temoinVa;  
    file.print("BOX A T-H ");
    file.println(tmpVa);
    Serial.println(tmpVa );
    file.close();
}
}

Bonjour Snaej,

Il y a une erreur dans ton code dans le Setup()

else
{
file=SD.open(save,FILE_READ);
// while(file.available()) ------- Erreur, boucle infini !!!
if (file.available())
{
Serial.println(file.read());
}

Si tu mets un 'while', c'est une boucle infini, il faut mettre un 'if' :slight_smile:

Pour que ton programme soit facilement lisible, mettre les { et } au même niveau exemple :

setup()
{
...

if (...)
{

...
}

....
}

Tu sera sûr de ne pas faire d’erreurs.

bon test,
Jean-Nono