bobijack:
si tu as le temps peux tu me commenter mes erreurs s'il te plais ?
Ok, allez commatonscommentationnons commentant dans ce cas
#include <SPI.h> // Pas obligatoire
#include <SD.h>
File myFile; // Tu n'est pas obligé de déclarer ça ici
String config; // Tu déclares un String pour stocker tes valeurs, ça va pas du coup pour stocker des chiffres ;)
int led1 = 9; // const byte au lieu de int, c'est mieux et plus propre pour des numéros de broche
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) { // pas besoin pour la UNO, uniquement pour la leonardo
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.print("Initializing SD card...");
pinMode(10, OUTPUT);
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
// Pourquoi afficher le contenu du fichier texte ici ? Le ^c^v bête et méchant c'est pas bien ;)
// open the file for reading:
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("test.txt:");
// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());
}
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
}
void loop()
{
File myFile = SD.open("test.txt");
if(myFile){
for(int i=0;i<10;i++)
config[i]=myFile.parseInt(); // Tu récupéres un int que tu met dans un char (de la String), ce n'est pas viable comme méthode et ça ne marche pas
// Enfin si ça peut marcher mais c'est pas comme ça qu'il faut faire
analogWrite(led1, config[i]); // Du coup tu utilises toujours le même char, à quoi sert le string ? Médite la dessus ;)
delay(5000)
myFile.close();
}
}
Cependant je ne peux pas mettre quelque chose de non integer ce qui m'étonne ... ???
Comment je peux faire pour faire la même chose avec différentes led et différents vecteurs d'intensités ?
J'ai essayé avec différents fichier text mais les résultats ne sont pas concluants. Peut être avec différentes lignes ?
bobijack:
Cependant je ne peux pas mettre quelque chose de non integer ce qui m'étonne ... ???
File::println() est en fait la même fonction que Serial::println() tout ce que tu peut sortir sur le port série tu peut le sortir sur un fichier
Texte, int, float, char, ...
bobijack:
Comment je peux faire pour faire la même chose avec différentes led et différents vecteurs d'intensités ?
J'ai essayé avec différents fichier text mais les résultats ne sont pas concluants. Peut être avec différentes lignes ?
Regarde le format CSV
1 ligne = 1 série de valeurs
Le code n'as alors besoin que d'une modification mineure :
while (dataFile.available()) {
analogWrite(LED1_PIN, dataFile.parseInt()); // led 1
analogWrite(LED2_PIN, dataFile.parseInt()); // led 2
analogWrite(LED3_PIN, dataFile.parseInt()); // led 3
analogWrite(LED4_PIN, dataFile.parseInt()); // led 4
delay(60000);
}