bonjour à tous, je vous met ci-dessous mon programme et mon soucis :
comme vous le voyez, j'initialise la carte sd, j'enregistre les valeurs de l'axe x et y du joystick sur un fichier texte sur la carte sd, et là c'est qu'une partie est manquante ( que j'ai montré par 2 commentaires ) : je ne sais pas quelle commande j'ai besoin pour faire en sorte que les valeurs qui sont dans la partie servo soit les valeurs x et y du fichier ( qui sont celle du joystick ).
merci de vos futurs réponses
 							code: [select]
// --- inclusion des librairies ---
#include <spi.h>
#include <sd.h>
#include <tinkerkit.h>
#include <servo.h>
float voltage;
const int sdcard=(50,51,52,53); // broche utilisée pour sélectionner la sd card 
tkjoystick joystick(i0, i1); 
int test; // variable utilisée pour tester valeur renvoyée par fonctions sd card
int x = 0;      // variable pour la valeur x du joystick
int y = 0;      // variable pour la valeur y du joystick
int xaxisvalue = 0;
int yaxisvalue = 0;
servo myservo;
file file; // objet file 
file root; // objet root pour le répertoire racine
void setup()   { // debut de la fonction setup()
serial.begin(115200); // initialise connexion série à 115200 bauds 
myservo.attach(9);
pinmode(53, output); // met la broche 10 (ss) en sortie (nécessaire avec module ethernet)
digitalwrite(53, 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(53, output); // laisser la broche ss en sortie - obligatoire avec librairie sd
  test=sd.begin(sdcard); // 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
  //----- affiche le contenu du répertoire 
  root = sd.open("/"); // ouvre la sd card à la racine
  serial.println("repertoire racine ouvert !");
  } // fin si initialisation réussie
} // fin de la fonction setup()
void loop(){ // debut de la fonction loop()
int valeura3 = analogread(a3);			
voltage=map(valeura3,0,1024,0,255);
  //---- efface fichier au préalable ---
  test=sd.remove("data.txt"); // efface fichier et mémorise résultat opération  
  if (test)serial.println("fichier efface"); // affiche message si fichier bien effacé
  //---- crée fichier en écriture --- 
  file = sd.open("data.txt", file_write); // ouvre le fichier en écriture
  // nb : le fichier est créé si il n'existe pas !
  //---- test si fichier dispo en écriture 
  if (!file){ // si fichier pas dispo
    serial.println ("erreur ouverture fichier !");
  } // fin if
  else { // si le fichier existe et est ouvert
    serial.println ("fichier pret pour ecriture !");
    // premiere ligne du fichier csv - entete avec liste des champs
    file.println("numeromesure  ;  x  ;  y  ;  x2  ;  y2  ;  millis");
    serial.println ("enregistrement en cours :");
    (int i=0; i<1000; i++) { // n mesures can 
      x = joystick.readx();  
      y = joystick.ready();
      // valeur premier champ
      file.print(i), file.print(';'); 
      // valeur deuxieme champ
      file.print(x), file.print(';'); 
      // valeur troisieme champ
      file.print(y), file.print(';'); 
      // valeur quatrième champ
      file.print(millis());
      // le dernier champ doit se terminer par un saut de ligne +++
      file.println();
      delay(10); // entre chaque mesure
      if ((i+1)%50) serial.print("."); else  serial.println(".");// affiche ligne de 50 points
    } // fin boucle for
    file.close(); // ferme le fichier
  } // fin else
  
  
//manque de la partie nécessaire pour l'utilisation des valeurs du fichier texte afin d'envoyer les valeurs au servo
  
  
//fin du manque de la partie
    if ( x  < 300)
  {
 myservo.write(360);
  }
  if ( x > 700 )
  {
   myservo.write(0);
   }
   if( x < 700 && x  > 300)
   {
     myservo.write(90);
 }
}comme vous le voyez, j'initialise la carte sd, j'enregistre les valeurs de l'axe x et y du joystick sur un fichier texte sur la carte sd, et là c'est qu'une partie est manquante ( que j'ai montré par 2 commentaires ) : je ne sais pas quelle commande j'ai besoin pour faire en sorte que les valeurs qui sont dans la partie servo soit les valeurs x et y du fichier ( qui sont celle du joystick ).
merci de vos futurs réponses
 
            						 					Arduino Forum  						 						 							 >   					International  						 						 							 >   					Français  (Moderators: jfs, Snootlab)  						 						 							 >   					Lecteur de valeurs de joystick par fichier carte SD  						 					
arduino
 
  
Comments
Post a Comment