

Hoy vamos a ver un circuito muy sencillo con el que podremos conectar una tarjeta SD a Arduino.
Si quieres saber más sobre este tipo de tarjetas puedes consultar nuestro tutorial sobre tarjetas SD
Unicamente necesitamos cuatro pines para poder comunicarnos con la tarjeta, y alimentarla a 3.3V:
Resistencias | Valor |
---|---|
R1,R3,R4,R5 | 100 |
R2,R6,R7,R8 | 1k |
R9,R10,R11,R12 | 2k2 |
Vamos a utilizar el código que viene como ejemplo en la librería de Arduino, esta totalmente comentado para sea fácil de entender:
#include <SD.h> File myFile; void setup() { // Abrimos la comunicación serial Serial.begin(9600); while (!Serial) { ; // Esperamos a que se abra la comunicación } Serial.print("Iniciando la tarjeta SD..."); // Vamos a usar el pin 10 como CS, así que tenemos que configurarlo como una salida. pinMode(10, OUTPUT); if (!SD.begin(4)) { Serial.println("Fallo al inicializar!"); return; } Serial.println("Inicializacion completa."); // Abrimos el fichero que nos interesa. Solo podemos tener un fichero abierto, así que si queremos cambiar de fichero // antes tendremos que cerrar el anterior. myFile = SD.open("test.txt", FILE_WRITE); // Si el fichero se abre correctamente: if (myFile) { Serial.print("Escribiendo el test..."); //Escribimos en el fichero de la siguiente manera: myFile.println("probando 1, 2, 3."); // Cerramos el fichero myFile.close(); Serial.println("done."); } else { // Si no se puede abrir el fichero, mostramos un mensaje de error Serial.println("error al abrir el fichero test.txt"); } // Volvemos a abrir el fichero para leerlo myFile = SD.open("test.txt"); if (myFile) { Serial.println("test.txt:"); // leemos los datos del fichero while (myFile.available()) { Serial.write(myFile.read()); } // cerramos el fichero myFile.close(); } else { // Si el fichero no puede abrirse, mostramos un erro. Serial.println("error opening test.txt"); } } void loop() { }
Ya podemos dotar de memoria no volatil a nuestros proyectos. Con ello podemos almacenar imagenes, el log del estado, las lecturas que tomemos, guardar la configuración que hemos creado para evitar que se borre al retirar la alimentación.. un sin fin de cosas.