Lector de memorias SD

Si necesitamos almacenar y recuperar información desde nuestro Arduino se puede hacer con una tarjeta SD usando un módulo como el que aquí presentamos. También soporta tarjetas microSD mediante un adaptador, pero la ventaja sobre un modelo que  solamente admite microSD es que este me permite aprovechar cualquier tarjeta antigua que encuentre por casa. Para las pruebas, he usado una tarjeta microSD de 16 Gb de la que sólo me detecta 3 Gb, aún así es mucho más de lo que puede requerir cualquier proyecto.

Las operaciones de lectura y escritura se hacen mediante la librería “SD.h” que no hay que descargarla puesto que está incluida por defecto en el IDE, y permite realizar todas las operaciones básicas con ficheros y directorios.

Comando
Descripción
SD.begin(pinCS); Iniciar la SD
SD.exists(filename); Comprobar si existe un fichero (TRUE existe, FALSE no)
SD.remove(filename); Borrar un fichero
SD.open(filepath, mode) Abrir un fichero en modo lectura o lectura/escritura
FILE_READ o FILE_WRITE
SD.mkdir(directory); Crear un directorio
SD.rmdir(dirname); Eliminar un directorio
file.size(); Obtener el tamaño de un fichero
file.available() Comprobar si quedan bytes por leer
file.read() Leer un byte del fichero
file.write(data) Escribir un byte en el fichero
file.print(data) Escribir una variable en un fichero
file.position() Obtener el punto de lectura/escritura actual
file.seek(pos) Mover el punto de lectura/escritura actual
 Pos: Debe estar entre 0 y file.size()
file.close()  Cerrar el fichero

Respecto a la forma de conectarlo es muy simple, se hace a través del bus SPI, sólo hay que tener precaución con la alimentación pues las memorias funcionan a 3.3 voltios; en cualquier caso este módulo es compatible con 5 voltios, de otro modo habría que usar un adaptador de nivel lógico, por lo demás se conecta al bus SPI de Arduino según el esquema siguiente:

Recomiendo echar un vistazo a los programas de ejemplo que vienen con el IDE. Aquí presento un ejemplo práctico donde se graban en un fichero los datos procedentes de un sensor (ficticio) como si fuera un datalogger.

En el segundo ejemplo, lee el fichero grabado en el ejemplo 1 y lo muestra en la ventana del monitor serie.

Los sketch pueden descargarse del repositorio github

También te podría gustar...