martes, 19 de mayo de 2015

SD CARD datalogger



Puede encontrar el ejemplo en


En el caso que solo quisieran leer la información de su SD CARD


Si no quieren usar el format de su windows, una opción es sdcard
Según el foro de arduino, la mejor manera es a través de ese programa.

Código
#include <SD.h>
#include <SPI.h>

File dataFile;
int led = 13;

void setup(){
  Serial.begin(9600);
  pinMode(led, OUTPUT); 
  Serial.print("Iniciando SD card...");
  pinMode(53, OUTPUT);
  pinMode(led, OUTPUT);
  digitalWrite(53, HIGH);
  if (!SD.begin(53)) {
  Serial.println("Fallo comunicacion o no existe SD");
  digitalWrite(led, HIGH);
  return;}
  digitalWrite(led, LOW);
  Serial.println("SD Iniciada.");
  
  dataFile = SD.open("datalog.txt", FILE_WRITE);
  
  /////////
  if (dataFile) {
    Serial.println("Escribiendo Informacion...");
    dataFile.println("Escribiendo Informacion...");
    
    Serial.println("");
    dataFile.println("");
        
    Serial.println("");
    dataFile.println("");
    
    Serial.println("<<< Datalogger >>>");
    dataFile.println("<<< Datalogger >>>");
    

    dataFile.close();}
    else {
    Serial.println("error opening test.txt");}
  ////////////
}

void loop(){
  
  String dataString = "";
  for (int analogPin = 0; analogPin < 3; analogPin++) {
    int sensor = analogRead(analogPin);
    dataString += String(sensor);
    if (analogPin < 2) {
      dataString += ","; }}
      
dataFile = SD.open("datalog.txt", FILE_WRITE);

  if (dataFile) {
    digitalWrite(led, LOW);
    dataFile.println(dataString);
    delay(1000);  
    dataFile.close();
    Serial.println(dataString);
  }  
  else {
    Serial.println("Fallo comunicacion.txt");
    Serial.println("Revise conecxion");
    digitalWrite(led, HIGH);
    delay(1000); } 
}


Ahora un punto importante, si sacamos la memoria sd de la sd card cuando esta escribiendo sin cerrar primero el COM5



en la microsd vista desde la windows vamos a tener el siguiente error


Incluso cuando cometí ese error, me costo formatearlo.

Luego lo hice correctamente cerrando el COM5
Entonces nos debería salir un archivo DATALOG.TXT
con el siguiente contenido


Nota:
Si ven la imagen donde muestro los cables de conexión los cables negros GROUND estan conectados y también el de 3.5 y 5V. A mi particularmente de otra manera no funcionaba, si alguno si le funciona teniendo uno de ellos por favor comente.

Nota2:
Mi modulo sd card también tengo el problema que se mueve y los pines no agarran bien la protoboard y lo toma como desconectado. Entones cierro el COM5, saco el modulo de sd card y vuelvo a comenzar. Sino reseteo desde el boton del arduino.

Fuente: youtube

Además le doy este link para sacar más información

Código ejemplo
#include <SD.h> 
int const chipSelect = 4; 
void setup () 
{ 
 Serial.begin (9600); 
 Serial.print ( "Inicialización de la tarjeta SD ..."); 
 // envía una notificación para indicar que la tarjeta esta funcionando
 pinMode (10, OUTPUT); 
 
 // ver si la tarjeta está presente y se puede inicializar: 
 (! SD.begin (chipSelect)) {si 
   Serial.println ( "tarjeta falló, o no está presente"); 
   // no hacen nada más: 
   retorn; 
 } 
 Serial.println ( "tarjeta inicializada"); 
} 
void loop () 
{ 
 // hacer una cadena de montaje de los datos para iniciar la sesión : 
 String dataString = ""; 
 // leen tres sensores y lo añaden a la cadena: 
 for (int analogPin = 0; analogPin <3; analogPin ++) { 
   int sensor = analogRead (analogPin); 
   dataString + = String(sensor); 
   si ( analogPin <2) { 
     dataString + = ""; 
   } 
 } 
 File ArchivoDeDatos = SD.open ( "datalog.txt", FILE_WRITE); 
 si (ArchivoDeDatos) { 
   dataFile.println (dataString); 
   dataFile.close (); 
   Serial.println (dataString); 
 }   
 else { 
   Serial.println ( "error al abrir datalog.txt"); 
 } 
}

No hay comentarios:

Publicar un comentario