Hola:
¡¡Por fin lo he solucionado!!
El problema no era de conexiones, simplemente me confundí al escribir el code[] a identificar, poniéndolo entre " " cuando debía hacerlo entre ' '.
Muchas gracias a todos por vuestra ayuda.
Adjunto el código con el cual he solucionado la identificación y respuesta idividual a cada tarjeta.
int val = 0;
char code[14];
// 2 dígitos del código de fabricación
// 10 dígitos del código de tarjeta
// 2 dígitos bits de paridad
int bytesread = 0;
int ledrojo = 8;
int ledverde = 9;
int Rest = 2;
void setup() {
Serial.begin(9600); // RFID lector TX pin, Velocidad de transmisión: 9600, Bits de datos: 8, bit de parada: 1.
pinMode(Rest,OUTPUT); // Set 2 pin digital como OUTPUT para conectar con el pin RESET RFID
pinMode(ledrojo,OUTPUT);
pinMode(ledverde,OUTPUT);
digitalWrite(Rest, HIGH); // Activar el lector RFID
}
void loop() {
if(Serial.available() > 0) { // Si se dispone de datos de lector
if((val = Serial.read()) == 10) { // comprobar cabecera
bytesread = 0;
while(bytesread < 14) { // leer 14 dígitos del código de
if( Serial.available() > 0) {
val = Serial.read();
if((val == 10)||(val == 13)) { // si el encabezado o dejar de bytes antes de la lectura de 10 dígitos
break; // dejar de leer
}
code[bytesread] = val; // añadir el dígito
bytesread++; // listo para leer siguiente dígito
}
}
if(bytesread == 14) { // si tiene 14 dígitos de lectura se ha completado
Serial.print("TAG code is: "); // TAG posiblemente un buen
Serial.println(code); // imprimir el código de la etiqueta
if (code[5]== '4') { // 4 es el código 5 de una de mis tarjetas 5200043602820E
digitalWrite(ledrojo, HIGH);
}
if (code[5]== '0') { // 0 es el código 5 de otra de mis tarjetas 4B001085431305
digitalWrite(ledverde, HIGH);
}
}
bytesread = 0;
digitalWrite(Rest, LOW); // desactivar el lector de RFID por un momento para que no se inunde
delay(1500); // esperar un poco
digitalWrite(Rest, HIGH); // Activar el lector RFID
digitalWrite(ledrojo, LOW);
digitalWrite(ledverde, LOW);
}
}
}