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