Creo que el problema es que no soy capaz de enviar correctamente los comandos al lector.
Al enviar comandos me devuelve 0, que según la tabla de errores es que no ha entendido el comando:
#include
#define rxPin 8
#define txPin 9
SoftwareSerial RFID = SoftwareSerial(rxPin, txPin); //RX, TX
void setup(){
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
RFID.begin(9600);
Serial.begin(9600);
}
void loop(){
if (RFID.available() > 0){
Serial.println("OK");
//RFID.print(F("SD2")); Envío el comando SD2 para indicar que por defecto son chips FDX-B, lo envío en hexadecimal para asegurarme
RFID.write(0x53);
RFID.write(0x44);
RFID.write(0x32);
delay(500);
Serial.println(RFID.read());
//RFID.print(F("LTG")); Envío el comando LTG para saber si hay una etiqueta presente en el lector, lo envío en hexadecimal para asegurarme
RFID.write(0x4c);
RFID.write(0x54);
RFID.write(0x47);
delay(500);
Serial.println(RFID.read());
RFID.print(F("RAT")); //; Envío el comando RAT para leer un chip FDX-B
for (int z = 0 ; z < 15 ; z++) // lee los 15 caracteres
{
data1 = RFID.read();
newtag[z] = data1;
Serial.print(data1);
}
Serial.println("");
RFID.flush(); // vacía
}
else
Serial.println("KO");
delay(1000);
Y este es el resultado de la ejecución del código anterior:
OK
0 <- Comando no entendido
255 <- ¿?
002550025500000000255 <- ¿basura?
OK
0 <- Comando no entendido
0 <- Comando no entendido
24002540000025500002550 <- ¿basura?
OK
0 <- Comando no entendido
0 <- Comando no entendido
00025500025300024802550 <- ¿basura?
OK
0 <- Comando no entendido
0 <- Comando no entendido
200002552550001000252 <- ¿basura?
OK
0 <- Comando no entendido
0 <- Comando no entendido
255025500000002540000 <- ¿basura?
OK
0 <- Comando no entendido
0 <- Comando no entendido
00-1-1-1-1-1-1-1-1-1-1-1-1-1 <- ¿basura?
KO
Comando SDx:
Comando LTG:
No entiendo el problema, y no pueden ser los baudios porque lo tengo a 9600, tal y como se indica: Serial protocol description:The protocol for the Serial Input and Output lines is 9600 Baud, 8 data bits, 1 stop bit, no parity..
¿Hay algún problema con que tanto Serial como el lector usen 9600 baudios? Ya no sé qué puede ser... :confused: