Bienvenido, Invitado
Nombre de Usuario: Contraseña: Recordarme
  • Página:
  • 1

TEMA:

Conflicto entre mis modulos RFID y SD 2 años 11 meses antes #2315

Cordial saludo mi nombre es Javier, estoy incursionando en el mundo de arduino y no tengo mucha experiencia, encuentro en internet mucho sobre el uso de estos módulos, los he probado por separado en un arduino mega y un ESP#", funcionando excelente, mi inconveniente es cuando uno los dos módulos, no siempre inicializa la SD (sale falla y obviamente no continua) he leido en varios articulos y foros y ya puse una resistencia de 10K entre el pin SDA del RFID y 3.3V , igualmente en el SD una resistencia de 10K en el pin CS y 3.3V (estos módulos se alimentan a 3.3V), también he leido que debo poner la instrucción “digitalWrite(pin, LOW)” para activar o direccionar al modulo que requiero comunicarme en ese momento, desarrollar toda la acción y luego al terminar poner la instrucción “digitalWrite(pin, HIGH)” , eso lo hago pero este problema persiste, si desconecto el RFID si accede a la SD, cabe aclarar que de todo lo que he encontrado, la instrucción “FILE_WRITE” en el Arduino me crea archivo o me agrega datos si ya existe, mientras que en el ESP32 si ya existe el archivo, lo sobre escribe, así que la instrucción para agregar linea es “FILE_APPEND” he revisado toda la semana sobre este tema y no encuentro solución, les agradezco una ayuda al respecto, mi código es:

// RFID
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 4//pin reset
#define SS 5// pin slave select (SDA)
MFRC522 mfrc522(SS, RST_PIN);
String VECTOR = “”;

// SD
#include <SD.h>
#define pin_CS 15
String frase;
File myFile;

void setup()
{
Serial.begin(115200);

pinMode(SS, OUTPUT);
pinMode(pin_CS, OUTPUT);

// SD
digitalWrite(pin_CS, LOW); // LLAMO AL MODULO SD
Serial.print(“Iniciando SD …”);
if (!SD.begin(pin_CS)) {
Serial.println(“No se pudo inicializar”);
return;
}
Serial.println(“inicializacion exitosa”);
digitalWrite(pin_CS, HIGH); //MODULO SD

// RFID
digitalWrite(SS, LOW); // LLAMO AL MODULO RFID
SPI.begin();
mfrc522.PCD_Init(); // inicializa modulo lector
Serial.println (" … inicia …");
digitalWrite(SS, HIGH); // MODULO RFID
}

void loop()
{
// RFID
digitalWrite(SS, LOW); // LLAMO AL MODULO RFID
VECTOR = “”;
if ( ! mfrc522.PICC_IsNewCardPresent()) // si no hay una tarjeta presente
{
return; // retorna al loop esperando por una tarjeta
}

if ( ! mfrc522.PICC_ReadCardSerial()) // si no puede obtener datos de la tarjeta
{
return; // retorna al loop esperando por otra tarjeta
}

Serial.println(“ID:”);
for (byte i = 0; i < mfrc522.uid.size; i++) // bucle recorre de a un byte por vez el UID
{
VECTOR.concat(String(mfrc522.uid.uidByte < 0x10 ? “0” : " ")); //organiza en un vector y almacena
VECTOR.concat(String(mfrc522.uid.uidByte, HEX)); //agrega parametro a una cadena myString.concat(parameter)
VECTOR.toUpperCase(); //cambia a mayusculas
}
Serial.print(“leido ==>”); Serial.println(VECTOR);//imprime toda la cadena
digitalWrite(SS, HIGH); // MODULO RFID

// SD
if (VECTOR != “”)
{
digitalWrite(pin_CS, LOW); // LLAMO AL MODULO SD
// RUTINA PARA ESCRIBIR EN ARCHIVO
digitalWrite(pin_CS, LOW);
myFile = SD.open("/AB00.txt", FILE_APPEND) ;
if (myFile) {
Serial.print(“Escribiendo SD”);
myFile.print(VECTOR);
myFile.println(millis());
Serial.println(millis());
myFile.close();
} else {
Serial.println(“Error al abrir el archivo”);
}
digitalWrite(pin_CS, HIGH); // MODULO SD
}
}

Por favor, Identificarse para unirse a la conversación.

Conflicto entre mis modulos RFID y SD 2 años 11 meses antes #2316

Es dificil poder ayudarte, en este caso, sin recrear el montaje y ver lo que pasa y mas teniendo en cuenta que al usar librerias, hay que investigar bien que hace cada una de ellas,

Por favor, Identificarse para unirse a la conversación.

Última Edición: por Jose Luis.

Conflicto entre mis modulos RFID y SD 2 años 11 meses antes #2317

ok, muchas gracias

Por favor, Identificarse para unirse a la conversación.

  • Página:
  • 1
Tiempo de carga de la página: 0.087 segundos
Gracias a Foro Kunena

Login