Tarjeta SD con Arduino Uno: diagrama de cableado y código

¡Conéctate conmigo en las redes sociales para actualizaciones y contenido!

Para hacer un registrador de datos y mantener los datos de texto almacenados, es mejor usar una tarjeta SD con Arduino Uno. Dependiendo del tamaño de la tarjeta SD, se pueden almacenar más datos.

En este tutorial, usaremos Arduino, un módulo de tarjeta SD y una tarjeta SD para almacenar los datos. Se realizan las escrituras y lecturas con la SD. La memoria del datalogger depende de la memoria de la tarjeta SD, considerando que el uso del lector de tarjetas soporta hasta 32 GB.

Nota: debe formatear la tarjeta SD con FAT32 o FAT16 antes de usarla con el módulo de tarjeta SD.

Introducción

El módulo de la tarjeta SD se utiliza para el almacenamiento de datos, que pueden ser archivos de texto, imágenes o mp3. Los datos que se pueden almacenar en la tarjeta SD dependen del tamaño de la tarjeta de memoria: cuanto mayor sea el tamaño de la memoria de la tarjeta SD, más datos se podrán almacenar. En este tutorial, nos ocuparemos de los datos de texto y mostraremos cómo almacenarlos y luego leerlos. Para almacenar el término de datos escribir y para leer el término de datos leer para usar. El almacenamiento de datos tiene muchas aplicaciones en todo el sistema, como cuando se envían datos a la nube y se pierde la conexión, entonces es necesario almacenar los datos. Para que cuando se restablezca la conexión, los datos deben compartirse con la nube. En ese caso, el módulo de la tarjeta SD desempeña el papel del registrador de datos.

Debe reformatear correctamente la tarjeta microSD a FAT16 o FAT32 antes de colocarla en el módulo y acoplarla al Arduino. La mayoría de las tarjetas SD nuevas vienen formateadas con el sistema de archivos FAT. Alternativamente, una tarjeta obsoleta necesita formato. En cualquier caso, formatear la tarjeta antes de usarla es una buena idea para evitar fallas.

El módulo de la tarjeta SD funciona en la interfaz SPI que incluye los pines: MISO, MOSI, SCK y un pin de señal CS. Con Arduino u otros microcontroladores, los datos se leen y se escriben en la tarjeta SD mediante la programación de Arduino.

Lo que necesitamos

Como de costumbre, sugiero agregar desde ahora a su carrito de compras de comercio electrónico favorito todo el hardware necesario, para que al final pueda evaluar los costos generales y decidir si continúa con el proyecto o los elimina del carrito de compras. Entonces, el hardware será solo:

Consulta precios de hardware en los siguientes enlaces:

Procedimiento paso a paso

Diagrama de cableado de la tarjeta SD con Arduino

El cableado debe hacerse como se indica en el diagrama. El módulo de la tarjeta SD puede funcionar con 5 y 3,3 V, por lo que se puede usar cualquier potencia. Aquí está la explicación de texto para el cableado:

  • CCV: +5 V o 3,3 V
  • TIERRA: TIERRA
  • SCK: pin 13
  • CS: Pin 4
  • MOSI: pin 11
  • MISO: PIN 12

Diagrama de cableado de la tarjeta SD con Arduino Uno

Obtenga el código y la biblioteca para la tarjeta SD con Arduino

Conecte su PC a Arduino y abra Arduino IDE. Para los primeros pasos, puede consultar el tutorial Conexión de PC con Windows con Arduino. Puede obtener el código .ino y las bibliotecas desde mi área de descarga con el siguiente enlace:

sd_card_arduino.ino

También necesita instalar la biblioteca SD, de acuerdo con mi tutorial Instalar bibliotecas de Arduino: métodos para agregar bibliotecas con el IDE de Arduino:

Biblioteca de tarjetas SD

Código Explicación

Sección 1: En esta sección, se agrega la biblioteca de tarjetas SD, incluida con el pin de selección de chip, luego se realiza la herencia para la tarjeta SD con el nombre de la raíz.

#include <SD.h> #define CS_PIN 4 File root;

Sección 2: El monitor serial se inicia a una velocidad en baudios de 115200. Luego, la tarjeta SD se inicializa desde el pin 4 del módulo de la tarjeta SD. Si hay una tarjeta SD (tarjeta de memoria) disponible y formateada en FAT16 o FAT32, entonces comienza a funcionar. De lo contrario, surge un error de inicialización del monitor serie:

void setup() {   Serial.begin(115200);    Serial.print("Initializing SD card... ");    if (!SD.begin(CS_PIN)) {     Serial.println("Card initialization failed!");     while (true);   }   Serial.println("initialization done.");

El ejemplo de escritura de archivo crea un nuevo archivo llamado «Peppe8o.txt» y almacena en él las 2 líneas de texto siguientes: el texto «Hola, tarjeta SD», seguido de «La tarjeta está abierta por Peppe80». Entonces, el archivo se cierra:

  // Example of writing file from the card:   File myFile = SD.open("Peppe8o.txt", FILE_WRITE);   myFile.println("Hello, SD Card!");   myFile.println("Card is opened by Peppe80");   myFile.close();

Con el ejemplo de lectura de archivos, primero verificamos si el archivo existe. En este caso, eso seguramente es cierto ya que lo creamos en nuestras líneas anteriores, se leen los datos disponibles en ese archivo. Estos datos se muestran en el monitor serie.

   // Example of reading file from the card:   myFile = SD.open("Peppe8o.txt");   if (myFile) {     Serial.print("Peppe8o.txt: ");     while (myFile.available()) {       Serial.write(myFile.read());     }     myFile.close();   } else {     Serial.println("error opening Peppe8o.txt!");   } }  void loop() {   // nothing happens after setup finishes. }

Resultado

El resultado muestra que la tarjeta SD se inicializa y luego comienza a funcionar mostrando un mensaje de inicialización finalizada. Luego escribimos algunos datos de prueba (sin un mensaje de monitor en serie), los leemos de la tarjeta SD y los mostramos en el monitor en serie:

Initializing SD card... initialization done.  Peppe8o.txt: Hello, SD Card! Card is opened by Peppe80