Descripción
Las tarjetas de memoria SD son un genial medio de almacenamiento, pues tienen un gran capacidad a bajo coste y tamaño reducido. Además, seguro que tienes alguna unidad vieja por casa sin usar; como en Arduino no necesitarás una gran cantidad de memoria seguro que te sirve. Por otro lado, se pueden extraer para cargar los datos en un PC y volver a conectar al equipo de registro de datos fácilmente. Resulta fácil acceder desde Arduino a estos tipos de almacenamiento. Si prefieres usar tarjetas microSD, tal vez deberías revisar nuestro adaptador para tarjetas uSD.
Admite tarjetas SD (SDSC, Standard Capacity) o SDHC (High Capacity), pero no SDXC (Extended Capacity). El formato empleado deberá ser FAT16 o FAT32.
Este módulo incorpora un regulador de tensión interno, para que puedas alimentarlo a 5V sin problemas. Aunque este módulo permite también alimentarlo a 3,3V a través del pin correspondiente (en ese caso no conectar el pin de 5V).
Conexión (por bus SPI estándar de 6 pines) en Arduino UNO (en MEGA, Leonardo o DUE cambiará el conexionado del SPI):
- Pin GND de la tarjeta: al pin GND de Arduino
- Pin 5V de la tarjeta: al pin 5V de Arduino
- Pin MISO de la tarjeta: al pin D12 de Arduino
- Pin MOSI de la tarjeta: al pin D11 de Arduino
- Pin SCK de la tarjeta: al pin D13 de Arduino
- Pin CS de la tarjeta: al pin D9 de Arduino
Ejemplo de código (adaptación del disponible en los ejemplos de SD.h, disponible en el IDE de Arduino):
#include <SD.h> // Incluimos la librería en nuestro proyecto File archivo; // Se crea un objeto "archivo" // *** CONFIGURACIÓN *** void setup() { Serial.begin(9600); // Puerto serie a 9600bps (Monitor Serie) Serial.print(F("Iniciando SD ...")); // Muestra en Monitor Serie if (!SD.begin(9)) { // Inicia tarjeta SD Serial.println(F("Error al iniciar")); return; } Serial.println(F("Iniciado correctamente")); } // *** CÓDIGO PRINCIPAL *** void loop() { // Se abre el fichero, preparado para escribirle datos archivo = SD.open("fichero_datos.txt", FILE_WRITE); if (archivo) { int value = analogRead(A0); // Se lee la entrada analógica "A0" (su lectura es el valor que guardaremos en la SD) // Se escriben valores y texto dentro del fichero "fichero_datos.txt", gracias al objeto "archivo", asociado a él archivo.print("Time(ms)="); archivo.print(millis()); archivo.print(", value="); archivo.println(value); archivo.close(); // Se cierra el archivo // Siempre debe cerrarse un fichero al terminar de escribir en él } else { Serial.println("Error al abrir el archivo"); } delay(500); // Tiempo de espera entre mediciones }
Valoraciones
No hay valoraciones aún.