Arduino Nano - Tarjeta microSD

Este tutorial te enseña cómo usar la tarjeta microSD con Arduino Nano. En detalle, aprenderemos:

Tarjeta microSD para Arduino Nano

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
1×Tarjeta Micro SD
1×Módulo de Tarjeta Micro SD
1×Cables Puente
1×(Opcional) Adaptador de Tarjeta de Memoria MicroSD a SD
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del módulo de la tarjeta microSD

El módulo de tarjeta microSD es una conexión entre Arduino Nano y una tarjeta microSD. Facilita la comunicación entre ambos, permitiendo al Arduino Nano acceder a la tarjeta microSD.

Pinout del módulo de la tarjeta microSD

Pinout del módulo de tarjeta microSD

El módulo de la tarjeta micro SD tiene 6 pines:

  • Pin VCC: Debe conectarse al pin de 5V del Arduino.
  • Pin GND: Debe conectarse al pin GND del Arduino.
  • Pin MISO: (Master In Slave Out) Debe conectarse al pin MISO del Arduino.
  • Pin MOSI: (Master Out Slave In) Debe conectarse al pin MOSI del Arduino.
  • Pin SCK: Debe conectarse al pin SCK del Arduino.
  • Pin SS: (Slave Select) Debe conectarse al pin especificado en el código del Arduino Nano como pin SS.

Preparación

Asegúrate de que la tarjeta Micro SD esté formateada como FAT16 o FAT32 (consulta en línea para obtener más información).

Diagrama de Cableado

  • Puedes usar cables jumper macho a hembra para conectar el módulo de tarjeta microSD al Arduino Nano
Diagrama de cableado del módulo de tarjeta microSD para Arduino Nano

This image is created using Fritzing. Click to enlarge image

  • O también puedes conectar el módulo de tarjeta microSD a la placa de pruebas y luego usar cables puente macho a macho
Diagrama de cableado del módulo de tarjeta microSD para Arduino Nano

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

Arduino Nano - Cómo abrir un archivo en la tarjeta microSD y crearlo si no existe

Código de Arduino Nano

Pasos R\u00e1pidos

  • Coloque la tarjeta microSD en el módulo microSD.
  • Siga el diagrama de cableado para conectar el módulo de tarjeta microSD al Arduino Nano.
  • Conecte el Arduino Nano a una computadora con un cable USB.
  • Abra el IDE de Arduino y seleccione la placa y el puerto adecuados.
  • Abra el Monitor serie en el IDE de Arduino.
  • Copie y pegue el código que se muestra a continuación en el IDE de Arduino.
/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); if (!SD.exists("arduino.txt")) { Serial.println(F("arduino.txt doesn't exist. Creating arduino.txt file...")); // create a new file by opening a new file and immediately close it myFile = SD.open("arduino.txt", FILE_WRITE); myFile.close(); } // recheck if file is created or not if (SD.exists("arduino.txt")) Serial.println(F("arduino.txt exists on SD Card.")); else Serial.println(F("arduino.txt doesn't exist on SD Card.")); } void loop() { }
  • Haz clic en el botón Subir en el IDE de Arduino para compilar y subir el código al Arduino Nano.
  • Consulta el Monitor Serial para la salida de la primera ejecución.
COM6
Send
SD CARD INITIALIZED. arduino-nano.txt doesn't exist. Creating arduino-nano.txt file... arduino-nano.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • La salida que aparecerá en el Monitor Serial para ejecuciones posteriores
COM6
Send
SD CARD INITIALIZED. arduino-nano.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Nota:

Es posible que no observe la salida en el Monitor Serial si la primera subida se realiza antes de abrir el Monitor Serial.

  • Quita la tarjeta microSD del módulo.
  • Inserta la tarjeta microSD en un lector de tarjetas SD USB.
  • Conecta el lector de tarjetas SD USB al PC.
  • Verifica si el archivo está presente o no.

Arduino Nano - Cómo escribir y leer datos en un archivo en una tarjeta microSD

El siguiente código:

  • Guarda datos en un archivo
  • Lee el contenido del archivo carácter por carácter y lo muestra en el Monitor Serial
/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); // open file for writing myFile = SD.open("arduino.txt", FILE_WRITE); if (myFile) { myFile.println("Created by ArduinoGetStarted.com"); // write a line to Arduino myFile.println("Learn Arduino and SD Card"); // write another line to Arduino myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } // open file for reading myFile = SD.open("arduino.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }
  • El monitor serie mostró el contenido del archivo.
COM6
Send
Created by ArduinoGetStarted.com Learn Arduino Nano and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Nota:

Por defecto, los datos se agregarán al final del archivo. Si reinicias Arduino Nano con el código anterior, el texto se volverá a añadir al archivo. Esto hará que el Monitor Serial muestre más líneas, como se muestra a continuación:

COM6
Send
Creado por ArduinoGetStarted.com Aprende Arduino Nano y la Tarjeta SD Creado por ArduinoGetStarted.com Aprende Arduino Nano y la Tarjeta SD
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Puedes quitar la tarjeta microSD del módulo y ver su contenido en tu computadora usando un lector de tarjetas SD USB.

Arduino Nano - Cómo leer un archivo en una tarjeta microSD línea por línea

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); // open file for writing myFile = SD.open("arduino.txt", FILE_WRITE); if (myFile) { myFile.println("Created by ArduinoGetStarted.com"); // write a line to Arduino myFile.println("Learn Arduino and SD Card"); // write another line to Arduino myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } // open file for reading myFile = SD.open("arduino.txt", FILE_READ); if (myFile) { int line_count = 0; while (myFile.available()) { char line[100]; // maximum is 100 characters, change it if needed int line_length = myFile.readBytesUntil('\n', line, 100); // read line-by-line from Micro SD Card line_count++; Serial.print(F("Line ")); Serial.print(line_count); Serial.print(F(": ")); Serial.write(line, line_length); // print the character to Serial Monitor // \n character is escaped by readBytesUntil function Serial.write('\n'); // print a new line charactor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }
  • El resultado mostrado en el Monitor Serial.
COM6
Send
SD CARD INITIALIZED. Line 1: Created by ArduinoGetStarted.com Line 2: Learn Arduino Nano and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Nota:

Puede observar líneas adicionales en el Monitor Serial si el contenido del archivo no se borra de antemano.

Arduino Nano - Cómo sobrescribir un archivo en una tarjeta microSD

Por defecto, el contenido se añadirá al final del archivo. La forma más fácil de sobrescribir un archivo es eliminar el archivo existente y crear uno nuevo con el mismo nombre.

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); SD.remove("arduino.txt"); // delete the file if existed // create new file by opening file for writing myFile = SD.open("arduino.txt", FILE_WRITE); if (myFile) { myFile.println("Created by ArduinoGetStarted.com"); // write a line to Arduino myFile.println("Learn Arduino and SD Card"); // write another line to Arduino myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } // open file for reading myFile = SD.open("arduino.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }
  • El resultado mostrado en el Monitor Serial.
COM6
Send
SD CARD INITIALIZED. Created by ArduinoGetStarted.com Learn Arduino Nano and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Reiniciar Arduino Nano
  • Verificar si el material en el archivo se ha añadido al monitor serie o no.

Puede quitar la tarjeta Micro SD del módulo y ver su contenido en su PC. Para ello se requiere un lector de tarjetas SD USB.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!