Buen dia
me encuentro desarrollando un proyecto el cual consta de dos modulos SD y una ESP32, mi idea es mover datos entre la SD, inicialmente estoy inscribiendo datos en una de ellas y funciona muy bien, pero cuando tengo lass dos conectadas surge un error y no me lee ninguno de los dos modulos. se que estos modulos usan la comunicacion SPI pero no se si al conectar mas de un modulo deba hacer una conexion externa o conectarlos de diferente manera.
actualmente estos modulos estan conectados de la siguiente manera
donde los pines:
G19 es MISO
G18 es SDK
G23 es MOSI
G5 es la direccion del primer moculo
G4 es la direccion del segundo modulo
el codigo que estoy usando es el siguiente, en este codigo estoy intentando inscribir un archivo a uno de los modulos pero con los dos mudulos conectados:
#include <SD.h>
#include "SPI.h"
// Define el pin CS para la comunicación SPI con la tarjeta SD
#define SD_CS_PIN 5
#define SD_CS_PIN2 4
// Nombre del archivo para escribir los datos del potenciómetro
const char* fileName = "/datos_potenciometro.txt";
// Pin del potenciómetro
const int potPin = 8;
int segundos=0;
int dia=0;
int horas=0;
int minutos=0;
void setup() {
Serial.begin(115200);
// Inicializa la comunicación con la tarjeta SD
pinMode(SD_CS_PIN, OUTPUT);
pinMode(SD_CS_PIN2, OUTPUT);
digitalWrite(SD_CS_PIN, LOW);
digitalWrite(SD_CS_PIN2, LOW);
if (!SD.begin(SD_CS_PIN)) {
Serial.println("Fallo al inicializar la tarjeta SD1");
while (1);
}
if (!SD.begin(SD_CS_PIN2)) {
Serial.println("Fallo al inicializar la tarjeta SD2");
while (1);
}
Serial.println("Tarjeta SD inicializada correctamente");
}
void loop() {
// Lee el valor del potenciómetro
digitalWrite(SD_CS_PIN, HIGH);
digitalWrite(SD_CS_PIN2, LOW);
int valorPot = analogRead(potPin);
// Convierte el valor del potenciómetro a una cadena de caracteres
char cadena[10];
itoa(valorPot, cadena, 10);
// Abre el archivo en modo de escritura y lo crea si no existe
File file = SD.open(fileName, FILE_WRITE);
if (file) {
// Escribe el valor del potenciómetro en el archivo
segundos = segundos +2;
if(segundos>=60){
segundos=0;
minutos=minutos+1;
}
if(minutos>=60){
horas=horas+1;
minutos = 0;
}
if(horas>=24){
dia=dia+1;
horas=0;
}
file.print("dia: ");
file.print(dia);
file.print(" Hora: ");
file.print(horas);
file.print(" minuto: ");
file.println(minutos);
file.println("Hola");
file.println("Que tal");
// Cierra el archivo
file.close();
//Serial.print(valorPot);
Serial.println("Datos escritos en el archivo correctamente");
} else {
Serial.println("Fallo al abrir el archivo");
}
// Espera un momento antes de escribir nuevamente los datos
while(millis()%2000!=0){}
}
en resumen cuando tengo un solo modulo conectado me funciona muy bien pero cuando conecto los dos no me lee ningun modulo
agradesco si alguien me podria aconsejar, muchas gracias