Lectura/Escritura en tarjeta SD

Uso de la biblioteca SD para leer y escribir en un archivo en una tarjeta SD.

Este ejemplo muestra cómo leer y escribir datos hacia y desde una tarjeta SD. 

Hardware necesario

Placa Arduino o Genuino
Escudo de Ethernet (u otra placacon una ranura SD)
Tarjeta SD formateada

Circuito


La placa Arduino oGenuino tiene que estar conectada a escudo Ethernet y también tiene un cable USB conectado al ordenador.

Código

El código de abajo está configurado para su uso con un escudo de Ethernet, que tenga una ranura de SD incorporada. En setup(), llamamos a SD.begin (), nombrando el pin 4 como el pin CS. Este pin varía dependiendo de la marca del escudo o placa que está utilizando.

En setup (), crear un nuevo archivo con SD.open () llamado "test.txt". FILE_WRITE permite leer y escribir en el archivo, a partir del final de este. Si un archivo "test.txt" ya estaba en la tarjeta, se abre ese archivo.

Llame a la instancia del archivo abierto "myFile".

Una vez abierto, use myFile.println () para escribir una cadena en la tarjeta, seguida de un retorno de carro. Una vez que el contenido esté escrito, cierre el archivo.

De nuevo, abra el archivo con SD.open (). Una vez abierto, pedir al Arduino que lea el contenido del archivo con SD.read () y lo envie a través del puerto serie. Después de leer todos los contenidos del archivo, cierre el archivo con SD.close ().

// Lectura/Escritura de archivos en SD

 // Este ejemplo muestra cómo leer y escribir archivos
 // a y desde na tarjeta SD.

 // Circuito:
 // * Tarjeta SD conectada al bus SPI de la siguiente manera:
 // ** MOSI - pin 11
 // ** MISO - pin12
 // ** CLK - pin 13
 // ** CS - pin 4  

 // creado Noviembre de 2010 por David A. Mellis
 // modificado el 9 Abril de 2012 por Tom Igoe

 // Este código es de dominio público.
 
 #include <SPI.h>
 #include <SD.h>

 File myFile;

 void setup() {
   // Abrir las comunicaciones serie y esperar a que se abra el puerto:
   Serial.begin(9600);
   while (!Serial) {
     ; // espera a que el puerto serie se conecte. Necesario para el puerto USB nativo solamente
   }

   Serial.print("Inicializando la tarjeta SD...");

   if (!SD.begin(4)) {
     Serial.println("Fallo de inicializacion!");
     return;
   }
   Serial.println("Inicializacion terminada.");

  // Abre el archivo. Tenga en cuenta que sólo un archivo puede ser abierto a la vez,
  // Así que hay que cerrar éste antes de abrir otro.
   myFile = SD.open("test.txt", FILE_WRITE);

   // si el archivo se abrió bien, escribir en él:
   if (myFile) {
     Serial.print("Escribiendo en test.txt...");
     myFile.println("testing 1, 2, 3.");
     // close the file:
     myFile.close();
     Serial.println("Terminado.");
   } else {
     // Si el archivo no se abre, imprimir un error:
     Serial.println("Error abriendo test.txt");
   }

   // volver a abrir el archivo para lectura:
   myFile = SD.open("test.txt");
   if (myFile) {
     Serial.println("test.txt:");

     // leer desde el archivo hasta que no haya nada más en el:
     while (myFile.available()) {
       Serial.write(myFile.read());
     }
     // cerrar el archivo:
     myFile.close();
   } else {
     // Si el archivo no se abre, imprimir un error:
     Serial.println("Error abiendo test.txt");
   }
 }

 void loop() {
   // no pasa nada después de la instalación
 }

  



No hay comentarios:

Publicar un comentario