Librería SD
La librería SD permite leer y escribir sobre una tarjeta SD, esta diseñada para ser usada en arruino la cual tiene las siguientes características:[1]
- Admite archivos FAT16 y FAT32 en tarjetas SD estándar y SDHC.
- Los nombres de archivo pasados a las funciones de la biblioteca SD pueden incluir rutas separadas por barras diagonales (/).
- A partir de la versión 1.0, la biblioteca admite la apertura de múltiples archivos.
La comunicación entre el microcontrolador y la tarjeta SD utiliza SPI , que se realiza en los pines digitales 11, 12 y 13 (en la mayoría de las placas Arduino) o 50, 51 y 52 (Arduino Mega). Además, se debe usar otro pin para seleccionar la tarjeta SD. Este puede ser el pin SS del hardware - pin 10 (en la mayoría de las placas Arduino) o pin 53 (en el Mega) - u otro pin especificado en la llamada a SD.begin().
Funciones
begin()
Inicializa la librería y la tarjeta SD. Esto comienza a usar el bus SPI (pines digitales 11, 12 y 13 en la mayoría de las placas Arduino; 50, 51 y 52 en el Mega) y el pin de selección de chip, que por defecto es el pin SS del hardware (pin 10 en la mayoría de los Arduino tableros, 53 en el Mega). Tenga en cuenta que incluso si usa un pin de selección de chip diferente, el pin SS del hardware debe mantenerse como salida o las funciones de la biblioteca SD no funcionarán.
Sintaxis
SD.begin();
SD.begin(cspin);
Parámetros
cspin (opcional)
el pin conectado a la línea de selección de chip de la tarjeta SD; el valor predeterminado es la línea de hardware SS del bus SPI.
Retorna
Verdadero si inicio correctamente, de lo contrario falso si se presento un error.
exists()
Comprueba si existe un archivo o directorio en la tarjeta SD.
Sintaxis
SD.exists(filename)
Parámetros
filename
El nombre del archivo para comprobar la existencia, que puede incluir directorios (delimitados por barras diagonales, /).
Retorna
Verdadero si el archivo o directorio existe, falso si no.
mkdir()
Crea un directorio en la tarjeta SD. Esto también creará cualquier directorio intermedio que aún no exista; por ejemplo, SD.mkdir("a/b/c") creará a, b y c.
Sintaxis
SD.mkdir()
Parámetros
filename
El nombre del directorio a crear, con subdirectorios separados por barras diagonales, /
Retorna
Verdadero si la creación del directorio tuvo éxito, falso si no
open()
Abre un archivo en la tarjeta SD. Si el archivo se abre para escritura, se creará si aún no existe (pero el directorio que lo contiene ya debe existir).
Sintaxis
SD.open(filepath)
SD.open(filepath, mode)
Parámetros
filename
El nombre del archivo a abrir, que puede incluir directorios (delimitados por barras diagonales, /) - char *
mode (optional)
el modo en el que se abre el archivo, por defecto es FILE_READ - byte . uno de:
- FILE_READ: abre el archivo para leer, comenzando desde el principio del archivo.
- FILE_WRITE: abre el archivo para leer y escribir, comenzando al final del archivo.
Retorna
Un objeto File que se refiere al archivo abierto; si no se pudo abrir el archivo, este objeto se evaluará como falso en un contexto booleano, es decir, puede probar el valor de retorno con "if (f)".
remove()
Eliminar un archivo de la tarjeta SD.
Sintaxis
SD.remove(filename)
Parámetros
filename
El nombre del archivo a eliminar, que puede incluir directorios (delimitados por barras diagonales, /).
Retorna
Verdadero si la eliminación del archivo tuvo éxito, falso si no. (si el archivo no existía, el valor de retorno no está especificado).
rmdir()
Eliminar un directorio de la tarjeta SD. El directorio debe estar vacío.
Sintaxis
SD.rmdir(filename)
Parámetros
filename
El nombre del directorio a eliminar, con subdirectorios separados por barras diagonales, /.
Retorna
Verdadero si la eliminación del directorio tuvo éxito, falso si no. (si el directorio no existía, el valor de retorno no está especificado).
Funciones adicionales
name()
Retorna el nombre del archivo
Sintaxis
file.name()
Retorna
El nombre del archivo
available()
Compruebe si hay bytes disponibles para leer del archivo. Hereda de la clase de utilidad Stream
Sintaxis
file.available()
Parámetros
file
Una instancia de la clase File (devuelta por SD.open () )
Retorna
El número de bytes disponibles ( int )
close()
Cierre el archivo y asegúrese de que los datos escritos en él se guarden físicamente en la tarjeta SD.
Sintaxis
file.close()
Parámetros
file
Una instancia de la clase File (devuelta por SD.open () )
Retorna
Nada
flush()
Asegura que los bytes escritos en el archivo se guarden físicamente en la tarjeta SD. Esto se hace automáticamente cuando se cierra el archivo.
Sintaxis
file.flush()
Parámetros
file
Una instancia de la clase File (devuelta por SD.open () )
Retorna
nada
peek()
Lea un byte del archivo sin avanzar al siguiente. Es decir, las llamadas sucesivas a peek() devolverán el mismo valor, al igual que la próxima llamada a read().
Sintaxis
file.peek()
Parámetros
file
Una instancia de la clase File (devuelta por SD.open())
Retorna
El siguiente byte (o carácter), o -1 si no hay ninguno disponible.
position()
Obtenga la posición actual dentro del archivo (es decir, la ubicación en la que se leerá o se escribirá el siguiente byte).
Sintaxis
file.position()
Parámetros
file
Una instancia de la clase File (devuelta por SD.open())
Retorna
La posición dentro del archivo ( sin signo largo )
print()
Imprima datos en el archivo, que debe haberse abierto para escribir. Imprime los números como una secuencia de dígitos, cada uno con un carácter ASCII (por ejemplo, el número 123 se envía como los tres caracteres '1', '2', '3').
Sintaxis
file.print(data)
file.print(data, BASE)
Parámetros
file
Una instancia de la clase File (devuelta por SD.open())
data
Los datos a imprimir (char, byte, int, long o string)
Retorna
print() devolverá el número de bytes escritos, aunque leer ese número es opcional.
println()
Imprima datos, seguidos de un retorno de carro y una nueva línea, en el archivo, que debe haberse abierto para escritura. Imprime los números como una secuencia de dígitos, cada uno con un carácter ASCII (por ejemplo, el número 123 se envía como los tres caracteres '1', '2', '3').
Sintaxis
file.println()
file.println(data)
file.print(data, BASE)
Parámetros
file
Una instancia de la clase File (devuelta por SD.open())
data (optional)
Los datos a imprimir (char, byte, int, long o string)
Retorna
println() devolverá el número de bytes escritos, aunque leer ese número es opcional.
seek()
Busque una nueva posición en el archivo, que debe estar entre 0 y el tamaño del archivo (inclusive).
Sintaxis
file.seek(pos)
Parámetros
file
Una instancia de la clase File (devuelta por SD.open())
pos
La posición a la que buscar ( sin firmar durante mucho tiempo )
Retorna
Verdadero para el éxito, falso para el fracaso ( booleano )
size()
Obtenga el tamaño del archivo.
Sintaxis
file.size()
Parámetros
file
Una instancia de la clase File (devuelta por SD.open())
Retorna
El tamaño del archivo en bytes ( largo sin signo )
read()
Leer del archivo.
Sintaxis
file.read() file.read(buf, len)
Parámetros
file
Una instancia de la clase File (devuelta por SD.open())
buf
Una matriz de caracteres o bytes
len
El número de elementos en buf
Retorna
El siguiente byte (o carácter), o -1 si no hay ninguno disponible.
write()
Escribir datos en el archivo.
Sintaxis
file.write(data)
file.write(buf, len)
Parámetros
file
Una instancia de la clase File (devuelta por SD.open () )
data
El byte, char o string (char *) para escribir
buf
Una matriz de caracteres o bytes
len
El número de elementos en buf
Retorna
write() devolverá el número de bytes escritos, aunque leer ese número es opcional.
isDirectory()
Los directorios (o carpetas) son tipos especiales de archivos, esta función informa si el archivo actual es un directorio o no.
Sintaxis
file.isDirectory()
Parámetros
file
una instancia de la clase File (devuelta por file. open())
Retorna
booleano
Referencias
[1] arduino https://www.arduino.cc/en/reference/SD, Consultado diciembre 2019