A pesar de que ya hemos utilizado un lector de tarjeta microSD operando con Arduino en alguna de nuestras entradas, hemos decidido dedicarle este pequeño artículo donde se dan las pistas de uso a partir de uno de los «Arduino Shield» disponible para tal fin.
Arduino microSD Shield
El modelo de Shield – o tarjeta conectable – con manejo de lector microSD elegido es el de la firma Sparkfun. Este, además de la electrónica de control para el lector microSD, incorpora una zona de prototipado donde podemos desarrollar y experimentar pequeños montajes.
Podemos localizarlo tanto en la propia tienda del fabricante como en otros tiendas online, por ejemplo, en la tienda de BricoGeek .
Para su conexionado al Arduino tendremos que adquirir también los cuatro juegos de pines hembra: dos de 6 pines y dos de 8 pines. Una vez soldados estos el aspecto de la placa – lista para montarse sobre nuestro Arduino – será parecido a este …
La forma de conectar es microSD Shield no precisa información alguna ya que se conecta directamente sobre las patillas del propio Arduino.
Para controlar la placa con microSD (lectura, escritura, etc) podemos usar el software disponible en la propia página de Sparkfun (precisa instalar las librerías), usar la librería ya incorporada al propio IDE de Arduino o bien optar a alguna otra disponible en Internet.
Nosotros hemos hecho uso de las librerías SdFat (las más recientes publicadas) existentes en esta página y cuyo proceso de instalación es sencillo. En caso de duda podemos consultar el tutorial incluido en su propio fichero de ayuda (QuickStart.txt) o bien obtener algo mas de información en la página guía de Arduino sobre como instalar librerías adicionales.
Nota: es IMPORTANTE cerciorarnos de que el software utiliza la patilla c.s. (chip select) adecuada. Dependiendo del Shield SD utilizado (hay varios en el mercado) se usará una u otra. El modelo Sparkfun utilizado en este artículo usa la patilla c.s. = 8.
En el fichero descargable del final de esta entrada se incluye un programa para testear la operativa de lectura / escritura en el módulo SD.
PROGRAMA TEST PARA TARJETA MICROSD
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
/* -- TEST de lectura/escritura en tarjeta microSD -- Sobre el hardware: [para modulo Sparkfun, verificad para otros] - Tarjeta SD manejada por bus SPI como sigue: ** MOSI - pin 11 ** CLK - pin 13 ** CS - pin 8 created Nov 2010 by David A. Mellis updated 2 Dec 2010 by Tom Igoe modified by Bill Greiman 11 Apr 2011 modified (and translated) by Jesus C. Garcia 18 Apr 2014 This example code is in the public domain. */ const int chipSelect = 8; // <== IMPORTANTE (para modulo Sparkfun) #include <SdFat.h> SdFat sd; SdFile myFile; void setup() { Serial.begin(9600); while (!Serial) {} // preciso para Ard. Leonardo Serial.println("Pulse una tecla rara comenzar"); while (Serial.read() <= 0) {} delay(400); // catch Due reset problem // Inicializa SdFat o muestra un detalle del error y para. // Utiliza "half speed" como la libreria nativa. // cambiese a SPI_FULL_SPEED para optimizar prestaciones. if (!sd.begin(chipSelect, SPI_HALF_SPEED)) sd.initErrorHalt(); // abre el fichero para escritura y finaliza como libreria nativa SD if (!myFile.open("test.txt", O_RDWR | O_CREAT | O_AT_END)) { sd.errorHalt("fallo al abrir test.txt para escritura"); } // si el fichero se abrio OK, escribimos en el: Serial.print("Escribiendo en test.txt..."); myFile.println("Probando 1, 2, 3."); // cerramos el fichero: myFile.close(); Serial.println(" hecho."); // re-abrimos el fichero para lectura: if (!myFile.open("test.txt", O_READ)) { sd.errorHalt("fallo al abrir test.txt para lectura"); } Serial.println("test.txt:"); // leemos desde el fichero hasta el final del mismo: int data; while ((data = myFile.read()) >= 0) Serial.write(data); // cerramos el fichero: myFile.close(); } void loop() { // no hacemos nada aparte de lo hecho en setup () } |
Ahora ya podemos utilizar almacenamiento de datos capturados por nuestro Arduino.
A DIVERTIRSE
El fichero descargable contiene:
- Software Test_SdFat.ino para verificar módulo microSD
- Librerías SdFAT para el módulo microSD.