Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando
-- Tutorial de iniciación a Arduino --
Volver al índice del tutorial
____________________________
51.- Leer y escribir en tarjetas micro SdCard.
- Hay varios módulos para utilizar tarjetas micro SdCard, este que voy a utilizar tiene buen rendimiento:
- Este módulo trabaja tanto con 3,3V como con 5V, por lo cual se puede utilizar directemente tanto por tarjetas cuyos terminales funcionen con 3,3V como NodeMcu, Wemos, Arduino Mega,... como con los clásicos Arduino UNO que funciona con 5V.
- Sobre la placa se observa el chip "level shiffer", LVC125A que permite el funcionamiento con ambas tensiones.
- Y esta tarjeta micro SdCard de 32 GB
_______________________________________________________
- Librería.
- Utilizaremos la libreria SD.h, que ya suele venir instalada en el IDE de Arduino.
- https://www.arduino.cc/en/Reference/SD
_______________________________________________________
- Conexiones.
- Los terminales 11, 12 y 13 se han elegido porque esos terminales, además de ser digitales, son de MOSI, MISO y SCK.
- En el código debes poner la línea correspondiente al Arduino y Wemos:
// const int CS = D8; // Para el NodeMcu
const int CS = 4; // Para el Arduino y Wemos
- Fíjate que el terminal correspondiente al CS es el 4 en Arduino y Wemos.
- !SD.begin(CS)
_______________________________________________________
1.- Leer un archivo.
- Introducimos nuestra tarjeta micro SdCard en nuestro ordenador (si tiene lector de SdCard), con un Editor de texto creamos un archivo, por ejemplo "leer.txt"
- Escribimos un mensaje que tenga eñe y acento, por ejemplo: El Ñandú corrió por Cádiz.
- Lo guardamos, pero atención, es conveniente crearlo con un Editor de texto como el Notepad++ y ponerle codificación: Codificar en UTF-8 sin BOM, de esta manera respetará las eñes y los acentos.
- Una vez que tenemos el archivo "leer.txt", insertamos la SdCard en el lector SdCard de Arduino.
- Cargamos este código:
Leer_SdCard.ino |
// Juan A. Villalpando
// Lee en el Monitor Serie el contenido de un archivo.
#include <SD.h>
// const int CS = D8; // Para el NodeMcu
const int CS = 4; // Para el Arduino y Wemos
void setup()
{
Serial.begin(9600);
Serial.println("");
Serial.println("Iniciando SdCard...");
if (!SD.begin(CS)) {
Serial.println("Error al iniciar.");
return;
}
Serial.println("SdCard iniciada.");
File miarchivo = SD.open("leer.txt");
if (miarchivo) {
while (miarchivo.available()) {
Serial.write(miarchivo.read());
delay(200);
}
miarchivo.close();
}
else {
Serial.println("Error al abrir el archivo.");
}
}
void loop() {
}
|
- Abrimos el Monitor Serie.
_______________________________________________________
2.- Escribir en un archivo.
- Cargamos este código en el Arduino:
Escribir_SdCard.ino |
// Juan A. Villalpando
// Escribe en el Monitor Serie y se guarda
// en una archivo de la SdCard.
#include <SD.h>
// const int CS = D8; // Para el NodeMcu
const int CS = 4; // Para el Arduino y Wemos
File miarchivo;
void setup() {
Serial.begin(9600);
Serial.println("Iniciando SdCard...");
if (!SD.begin(CS)) {
Serial.println("Error al iniciar.");
return;
}
Serial.println("SdCard iniciada.");
}
char rx_byte = 0;
String rx_str = "";
void loop() {
miarchivo = SD.open("escribir.txt", FILE_WRITE); // Abre el archivo.
if (Serial.available() > 0) { // ¿Hay algún caracter en el Monitor Serie?
rx_byte = Serial.read(); // Toma el caracter.
rx_str += rx_byte; // Va uniendo los caracteres escritos.
if (rx_byte == '\n') {
if (miarchivo) {
Serial.print("Escribe en la SdCard: ");
Serial.print(rx_str);
miarchivo.print(rx_str);
}
rx_str = "";
}
}
miarchivo.close(); // Cierra el archivo.
}
|
- Vamos al Monitor Serie, escribimos una frase, pulsamos "Enviar", se escribirá en el archivo "escribir.txt"
- Quitamos la tarjeta SdCard del módulo y la insertamos en un lector SdCard de nuestro ordenador, podremos leer el contenido de ese archivo.
- Observa la manera de ir tomando los caracteres uno a uno y enviarlos cuando pulsemos el Botón,
- Esto ya lo vimos en...
5C.- Introducir datos desde el Monitor Serie.
- Observa que el Monitor Serie está a 9600 y "Ambos NL & CR"
_______________________________________________________
3.- Información sobre la tarjeta SdCard.
- Código: https://www.arduino.cc/en/Tutorial/CardInfo
- Recuerda:
// const int CS = D8; // Para el NodeMcu
const int CS = 4; // Para el Arduino y Wemos
- !SD.begin(CS)
_______________________________________________________
4.- Listado de directorios y archivos en la tarjeta SdCard.
- Código: https://www.arduino.cc/en/Tutorial/Listfiles
_______________________________________________________
5.- Archivos con la librería FS.
https://circuits4you.com/tag/nodemcu/
|