ayuda con un control de acceso Rfid

Hola a todos este es mi primer post, necesito ayuda para poder añadir un pulsador al sketch de programación y que active el pin2 con el delay correspondiente.

aqui dejo el sketch

int RFIDResetPin = 13;

//Register your RFID tags here
char tag1[13] = "010DC606814D";
char tag2[13] = "000000000000";
char tag3[13] = "01023C013A04";
char tag4[13] = "01023101093A";
char tag5[13] = "01023C0A4376";
char tag6[13] = "01023C000E31";
char tag7[13] = "01023C0A3207";
char tag8[13] = "1A004116317C";
char tag9[13] = "1E009A81F9FC";
char tag10[13] = "000000000000";

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

pinMode(RFIDResetPin, OUTPUT);
digitalWrite(RFIDResetPin, HIGH);

//ONLY NEEDED IF CONTROLING THESE PINS - EG.
pinMode(2, OUTPUT);

void loop(){

char tagString[13];
int index = 0;
boolean reading = false;

while(Serial.available()){

int readByte = Serial.read(); //read next available byte

if(readByte == 2) reading = true; //begining of tag
if(readByte == 3) reading = false; //end of tag

if(reading && readByte != 2 && readByte != 10 && readByte != 13){
//store the tag
tagString[index] = readByte;
index ++;
}
}

checkTag(tagString); //Check if it is a match
clearTag(tagString); //Clear the char of all value
resetReader(); //eset the RFID reader
}

void checkTag(char tag[]){
///////////////////////////////////
//Check the read tag against known tags
///////////////////////////////////

if(strlen(tag) == 0) return; //empty, no need to contunue

if(compareTag(tag, tag1)){ // if matched tag1, do this
lightLED(2);

}else if(compareTag(tag, tag2)){ //if matched tag2, do this
lightLED(2);

}else if(compareTag(tag, tag3)){
lightLED(2);

}else if(compareTag(tag, tag4)){
lightLED(2);

}else if(compareTag(tag, tag5)){
lightLED(2);

}else if(compareTag(tag, tag6)){
lightLED(2);

}else if(compareTag(tag, tag7)){
lightLED(2);

}else if(compareTag(tag, tag8)){
lightLED(2);

}else if(compareTag(tag, tag9)){
lightLED(2);

}else if(compareTag(tag, tag10)){
lightLED(2);

}else{
Serial.println(tag); //read out any unknown tag
}

}

void lightLED(int pin){
///////////////////////////////////
//Turn on LED on pin "pin" for 5000ms
///////////////////////////////////
Serial.println(pin);

digitalWrite(pin, HIGH);
delay(5000);
digitalWrite(pin, LOW);
}

void resetReader(){
///////////////////////////////////
//Reset the RFID reader to read again.
///////////////////////////////////
digitalWrite(RFIDResetPin, LOW);
digitalWrite(RFIDResetPin, HIGH);
delay(150);
}

void clearTag(char one[]){
///////////////////////////////////
//clear the char array by filling with null - ASCII 0
//Will think same tag has been read otherwise
///////////////////////////////////
for(int i = 0; i < strlen(one); i++){
one = 0;

  • }*
    }
    boolean compareTag(char one[], char two[]){
    ///////////////////////////////////
    //compare two value to see if same,
    //strcmp not working 100% so we do this
    ///////////////////////////////////
  • if(strlen(one) == 0) return false; //empty*
  • for(int i = 0; i < 12; i++){*
    if(one != two*) return false;*
    * }*
    * return true; //no mismatches*
    }

No entiendo lo que necesitas. De que delay estas hablando?

usa esta misma rutina
void lightLED(int pin)

o crea una digamos con tiempo a tu necesidad asi

void delayPin2(int tiempo){
digitalWrite(2, HIGH);
delay(tiempo); // tiempo en milisegundos
digitalWrite(2, LOW);
}