Buen día Foro!
En mi proyecto, necesito implementar el Modulo RFID (MRFC522) y el Módulo MicroSD.
El ESP32 que estoy utilizando es el DOIT-DEV-KIT-V1 y especificamente hay un altercado en el Pin MISO (D18) de ambos, ya que si los conecto ambos, solo considera el de la MicroSD, y si los conecto de forma individual (probando uno a uno) los dos módulos me funcionan correctamente.
inclusive, probe el RFID individual y el pin MISO lo conecte al (D21) y me leia sin problemas.
Probe ambos, MISO de la MicroSD al (D18) y MISO del RFID al (D21) y seguia tomando solo el de la MicroSD.
Tengo en aquí mismo una resistencia de 330 ohm 1/2w, por si me surgieren algo, quedo atento sus comentarios.
(anexare el codigo como de prueba para hacer funcionar ambos módulos luego de ser asi ponerlos en mi proyecto, pero no he tenido exito):
#include <SPI.h>
#include <MFRC522.h>
#include <SD.h>
#define SS_RFID 27 // Pin SS para el lector RFID
#define SS_SD 5 // Pin SS para la tarjeta MicroSD
#define RST_RFID 25 // Pin RST para el lector RFID
MFRC522 mfrc522(SS_RFID, RST_RFID);
File myFile;
void setup() {
Serial.begin(9600);
Serial.println("INICIAR..");
pinMode(SS_RFID, OUTPUT);
pinMode(SS_SD, OUTPUT);
// Inicializar el lector RFID
SPI.begin();
mfrc522.PCD_Init();
// Inicializar la tarjeta MicroSD
if (!SD.begin(SS_SD)) {
Serial.println("Error al inicializar la tarjeta SD.");
while (1);
}
Serial.println("TARJETA INICIADA...");
}
void loop() {
// Verificar la presencia de una tarjeta RFID
if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
// Desactivar CS del MicroSD
digitalWrite(SS_SD, HIGH);
// Obtener el UID de la tarjeta RFID
String uid = "";
for (byte i = 0; i < mfrc522.uid.size; i++) {
uid += String(mfrc522.uid.uidByte[i] < 0x10 ? "0" : "");
uid += String(mfrc522.uid.uidByte[i], HEX);
}
Serial.println(uid);
// Activar CS del MicroSD nuevamente
digitalWrite(SS_SD, LOW);
// Detener la lectura de la tarjeta RFID
//mfrc522.PICC_HaltA();
// Guardar el UID en un archivo en la MicroSD
myFile = SD.open("/datos.txt", FILE_WRITE);
if (myFile) {
myFile.println(uid);
myFile.close();
Serial.println("Datos guardados en la tarjeta SD.");
} else {
Serial.println("Error al abrir el archivo en la tarjeta SD.");
}
}
// Tu código principal aquí
}


