Go Down

Topic: enviar texto por monitor serial (Read 1 time) previous topic - next topic

ajcm

hola amigos en esta oportunidad me encuentro trabajando con una memoria SD, la cual esta funcionando correctamente; estoy usando el ejemplo que ReadWrite que trae el software arduino...
Bien mi pregunta es la siguiente, es posible colocarle el nombre al archivo.txt que se guarda en la SD desde el monitor Serial de arduino, les pongo la linea de codigo que crea el archivo.txt
myFile = SD.open("test.txt", FILE_WRITE);
lo que quiero hacer es enviar test.txt por el monitor serial, es posible hacer esto?

SrDonGato

si no he entendido mal quieres darle el nombre del archivo por serie

haces que te pida el nombre del archivo por el terminal y que espere una linea y lo que recives por serie lo guardas
char* nombrearchivo;

luego

myFile = SD.open(nombrearchivo, FILE_WRITE);




ajcm

hola SrDonGato aun no he podido resolver el problema, he dado vueltas con esto y nada
#include<SD.h>
char*=nombrearchivo;
void setup(){
Serial.begin(9600);
pinMode(10,OUTPUT);
}
void loop(){
  if (Serial.available()>0){
     nombrearchivo = Serial.read();     //Esto arroja un errror
    //Lo hago de esta forma
    nombrearchivo=(char*)(Seria.read());  //Pero como hago para almacenar varios caracteres
  }
}

no se si sera una tonteria pero no lgro aun lo que quiero

SrDonGato

#3
Dec 05, 2011, 11:45 pm Last Edit: Dec 06, 2011, 12:33 am by SrDonGato Reason: 1
no suelo ayudar con codigo pero bueno, parece que lo has intentado.

mírate bien la referencia, yo no me la sé al dedillo tampoco, es una herramienta de consulta cuando dudas de algo. viendo los errores puedes consultar si has hecho bien o no una cosa

desde el principio en la declaracion de variables tienes errores.

No lo he probado. ya nos cuentas

Code: [Select]
char* nombrearchivo;
int inByte;
int indice=0;

void setup(){
Serial.begin(9600);
pinMode(10,OUTPUT);
}

void loop(){
 if (Serial.available()>0){ // si hay un caracter en el buffer
    inByte = Serial.read();     // metes el primer byte
    if (inByte!=13){  // si el byte es distinto del retorno de carro
    nombrearchivo[indice] = char(inByte);     //va poniendo los caracteres uno por uno en en nombre de archivo
    indice++; // incremento el indice para el proximo caracter
    }
    else {  // si llega un retorno de carro
     nombrearchivo[indice+1] = 0;  //indico el final de string con caracter nulo
     indice=0; // reseteo indice
    }
 }
myFile = SD.open(nombrearchivo, FILE_WRITE);
}


edito- me faltaba una linea

Go Up