#include <SdFat.h>
const int chipSelect1 = 4; // Pin CS de la primera tarjeta SD
const int chipSelect2 = 5; // Pin CS de la segunda tarjeta SD
SdFat SD1;
SdFat SD2;
void setup() {
Serial.begin(115200);
if (!SD1.begin(chipSelect1)) {
Serial.println("\r\nError al inicializar la primera tarjeta SD.");
return;
}
Serial.println("\r\nPrimera tarjeta SD inicializada correctamente.");
// Inicialización de la segunda tarjeta SD
if (!SD2.begin(chipSelect2)) {
Serial.println("\r\nError al inicializar la segunda tarjeta SD.");
return;
}
Serial.println("\r\nSegunda tarjeta SD inicializada correctamente.");
// --- Guarda un archivo de prueba
File txtfile = SD1.open("archivo.txt", FILE_WRITE);
txtfile.println("\r\n****************************************************");
txtfile.println("Esto es una prueba de copia de archivos entre dos SD");
txtfile.println("Veamos si funciona...");
txtfile.println("****************************************************\r\n");
txtfile.flush();
txtfile.close();
// --------------------------------
// Lee y escribe el archivo en ambas tarjetas
transferirArchivo("archivo.txt");
}
void loop() {
}
void transferirArchivo(String nombreArchivo) {
// Abre el archivo de lectura en la primera tarjeta
File archivoLectura = SD1.open(nombreArchivo, FILE_READ);
// Si no se puede abrir el archivo, muestra un mensaje y termina la función
if (!archivoLectura) {
Serial.println("Error al abrir el archivo en la primera tarjeta SD.");
return;
}
// Abre el archivo de escritura en la segunda tarjeta
File archivoEscritura = SD2.open(nombreArchivo, FILE_WRITE);
// Si no se puede abrir el archivo, muestra un mensaje y termina la función
if (!archivoEscritura) {
Serial.println("Error al abrir el archivo en la segunda tarjeta SD.");
archivoLectura.close();
return;
}
// Lee el contenido del archivo de lectura y escríbelo en el archivo de escritura
Serial.println("Copiando");
while (archivoLectura.available()) {
archivoEscritura.write(archivoLectura.read());
}
// Cierra ambos archivos
archivoLectura.close();
archivoEscritura.close();
Serial.println("Archivo transferido correctamente de la primera a la segunda tarjeta SD.");
Serial.println("\r\nVerificando...");
//File
archivoEscritura = SD2.open(nombreArchivo, FILE_READ);
// Si no se puede abrir el archivo, muestra un mensaje y termina la función
if (!archivoEscritura) {
Serial.println("Error al abrir el archivo en la segunda tarjeta SD.");
return;
}
// Lee el contenido del archivo de escritura
Serial.print("Contenido de " + nombreArchivo + " en SD2");
while (archivoEscritura.available()) {
Serial.write(archivoEscritura.read());
}
}