Librería sd arduino


La librería SD permite leer y escribir sobre una tarjeta SD, esta diseñada para ser usada en arruino

oscar Escrito por oscar 05 December 2019 5111 0
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').

file.print(data)
file.print(data, BASE)
file
Una instancia de la clase File (devuelta por SD.open())
data
Los datos a imprimir (char, byte, int, long o string)

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


Comentario

Debe aceptar antes de enviar