Luis LLamas - Leer SD
Luis LLamas - Leer SD
Luis LLamas - Leer SD
es/tarjeta-micro-sd-arduino/
16 OCTUBRE, 2016
Dado que los lectores de tarjetas micro SD son más baratos, modernos, y compactos, normalmente
preferiremos los lectores micro SD a los SD. El único motivo real para comprar un lector SD frente a un micro
SD es aprovechar alguna tarjeta que tengamos disponible.
Respecto a la tarjeta, es sabido que han tenido un gran descenso en sus precios. En la actualidad, una
tarjeta SD o micro SD de 1GB tiene un precio muy reducido, y es capacidad más que suficiente para la
mayoría de proyectos. Incluso es frecuente que podamos reciclar antiguas tarjetas que hemos sustituido por
otras de mayor capacidad.
ESQUEMA DE MONTAJE
La conexión es sencilla y similar tanto para lectores SD como Micro SD. Simplemente alimentamos el
módulo desde Arduino mediante 5V y Gnd. Por otro lado, conectamos los pines del bus SPI a los
correspondientes de Arduino.
La conexión del lector SD sería la siguiente,
Similar a la de un lector micro SD, que sería la siguiente.
En ambos casos la conexión, vista desde el lado de Arduino, es la misma, y quedaría así.
Los pines SPI indicados son válidos para los modelos de Arduino Uno, Nano y Mini Pro. Para otros modelos
de Arduino consultar el esquema patillaje correspondiente.
Verificar que vuestra placa es tolerante a un bus de 5V antes de conectarla a Arduino. Si no, tendréis que
usar un adaptador de nivel lógico.
EJEMPLO DE CÓDIGO
Para realizar la lectura y escritura en la SD emplearíamos la librería SD.h, incluida en el IDE estándar de
Arduino.
Esta librería incorpora funciones para el manejo de ficheros y directorios, bajo el objeto SD.
1 // Iniciar la SD
SD.begin(cspin);
2
3
// Comprobar si existe un fichero (devuelve true si existe, falso en caso contrario)
4
SD.exists(filename);
5
6
// Borrar un fichero
7
SD.remove(filename);
8
9
// Abrir un fichero
10
// Mode: FILE_READ para sólo lectura
11
// FILE_WRITE para lectura y escritura
12
SD.open(filepath, mode);
13
14
// Crear un directorio
15
SD.mkdir(directory);
16
17
// Eliminar un directorio
18
SD.rmdir(dirname);
19
También incorpora funciones para la lectura y escritura de ficheros, bajo el objeto File.
1 #include <SD.h>
2
3 File logFile;
4
5 void setup()
6 {
7 Serial.begin(9600);
8 Serial.print(F("Iniciando SD ..."));
9 if (!SD.begin(9))
10 {
Serial.println(F("Error al iniciar"));
11 return;
12 }
13 Serial.println(F("Iniciado correctamente"));
14 }
15
16
17 // Funcion que simula la lectura de un sensor
18 int readSensor()
19 {
20 return 0;
21 }
22
23 void loop()
24 {
25 // Abrir archivo y escribir valor
26 logFile = SD.open("datalog.txt", FILE_WRITE);
27
28 if (logFile) {
29 int value = readSensor;
30 logFile.print("Time(ms)=");
31 logFile.print(millis());
32 logFile.print(", value=");
33 logFile.println(value);
34
35 logFile.close();
36
37 }
38 else {
39 Serial.println("Error al abrir el archivo");
40 }
41 delay(500);
42 }
43
Si t