Proyecto alarma con rfid

Hola, estoy probando un nuevo proyecto que se trata de una alarma con un sensor pir y en lector RFID de tarjetas. El proyecto lo he copiado de esta web: AAIMI RFID ALARM using Arduino.
He modificado el codigo para poner los UID de mis tarjetas y he cambiado los tiempos d espera. El código se compila bien y no hay ningun problema al subirlo. Cuando subo el código a la placa con todos los componentes conectados, la alarma no funciona. Se supone que lo primero que tiene que hacer es leer mis tarjetas para activar la alarma pero, ni siquiera hace eso. Todos los componentes están bien conectados y son los mismo que los del esquema. Cuando deslizo la tarjeta por el lector, se supone que la alarma se tendría que activar pero no se activa. Es como si mi lector no funcionase porque no hace nada pero en otros proyectos si que funciona bien. No recivo ningun tipo de respuesta en el puerto serie y he probado con dos ordenadores diferentes. Gracias de antemano.
el código es:

/* AAIMIrF

RC552 Pinouts:
RST: 9
SDA: 10
MOSI: 11
MISO: 12
SCK: 13
IRQ: N/C
GND: GND
3.3V: 3.3V */

#include <SPI.h>
#include <MFRC522.h>
#define SDA_pin 10
#define RESET_pin 9
// Alarm strobe
int alarmLight = 5;
// Screamer or horn
int alarmRelay = 8;
// Valid card indicator
int cardOkLight = 4;
// Entry/exit indicator
int armLight = 2;
// LED flash variable, 0 is off, 1 is on
int pulseOn = 0;
// PIR sensor
int zone1 = 7;
// alarm status, 1 = disarmed, 2 = exiting, 3 = entering, 4 = armed
int alarm_state = 1;
// Counter for entry and exit time when arming and disarming
int entryExitLimit = 10;
int entryExit = 0;
// Counter to turn alarm siren off
int alarmCountLimit = 60;
int alarmCount = 0;

MFRC522 mfrc522(SDA_pin, RESET_pin);

void setup()
{
pinMode(cardOkLight, OUTPUT);
pinMode(armLight, OUTPUT);
pinMode(alarmLight, OUTPUT);
pinMode(alarmRelay, OUTPUT);
pinMode(zone1, INPUT);
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
}

// Get the UID number from the reader output
unsigned long getCardUID(){
if ( ! mfrc522.PICC_ReadCardSerial()) {
return -1;
}
unsigned long card_num;
card_num = (uint32_t)mfrc522.uid.uidByte[0] << 24;
card_num += (uint32_t)mfrc522.uid.uidByte[1] << 16;
card_num += (uint32_t)mfrc522.uid.uidByte[2] << 8;
card_num += (uint32_t)mfrc522.uid.uidByte[3];
mfrc522.PICC_HaltA(); // Stop reading
return card_num;
}

void loop() {
// Check if card is present, get UID number and compare to white-listed numbers
if (mfrc522.PICC_IsNewCardPresent()) {
unsigned long uid = getCardUID();
if(uid != -1){
if (uid == 0x69EF4DA2 || uid == 0x19D84A98) {
digitalWrite(cardOkLight, HIGH);
Serial.print("Valid card, UID: ");
Serial.println(uid);
// If alarm_state is disarmed, start exit-timer for arming
if (alarm_state == 1) {
alarm_state = 2;
entryExit = entryExitLimit;
Serial.println(“Exiting”);
}
// Disarm apon valid card
else {
digitalWrite(armLight, LOW);
alarm_state = 1;
entryExit = 0;
alarmCount = 0;
Serial.println(“Disarmed”);
}
delay(1000);
}
else {
digitalWrite(armLight, HIGH);
Serial.print(“Invalid card, UID: “);
Serial.println(uid);
// Pause to allow card indicator LED to show
delay(1000);
}
Serial.println(”_”);
}

}
// Manage indicator LEDs
else {
digitalWrite(cardOkLight, LOW);
if (entryExit == 0 && alarm_state != 4) { // If not armed
digitalWrite(armLight, LOW);
}
if (alarmCount == 0 && alarm_state != 5) { // If not in alarm
digitalWrite(alarmLight, LOW);
}
}
delay(1000);
// Check entry and exit counters and react
if (entryExit > 0) {
if (entryExit == 1 && alarm_state == 2) { // End exit countdown, arm system
alarm_state = 4; // Armed
entryExit = 0;
digitalWrite(armLight, HIGH);
Serial.println(“System armed”);
}
else if (entryExit == 1 && alarm_state == 3) { // Entry time expired, activate alarm
alarm_state = 5;
Serial.println(“ALARM!!!”);
alarmCount = alarmCountLimit;
entryExit = 0;
digitalWrite(alarmLight, HIGH);
}
else { // Control flashing Exit/Entry indicator LED
Serial.println(entryExit);
if (pulseOn == 1) {
digitalWrite(armLight, LOW);
pulseOn = 0;
}
else {
digitalWrite(armLight, HIGH);
pulseOn = 1;
}
entryExit–;
}

}
// If system is in alarm, manage flashing alarm light and horn
if (alarmCount > 0) {
Serial.println(alarmCount);
if (pulseOn == 1 && alarmCount > 1) {
digitalWrite(alarmLight, LOW);
digitalWrite(alarmRelay, LOW);
pulseOn = 0;
}
else {
digitalWrite(alarmLight, HIGH);
digitalWrite(alarmRelay, HIGH);
pulseOn = 1;
}
if (alarmCount == 1) { // Set alarm to silent, leave alarm LED solid
digitalWrite(alarmLight, HIGH);
digitalWrite(alarmRelay, LOW);
Serial.println(“Silent”);
}
alarmCount–;
}

// Check PIR sensors for movement if armed and start entry counter
if (alarm_state == 4 && digitalRead(zone1) == HIGH) {
entryExit = entryExitLimit;
pulseOn = 1;
alarm_state = 3;
digitalWrite(alarmLight, HIGH);
}

}

Bienvenido al foro Arduino en Español.
Tienes 15 post y aún no sabes postear códigos y enlaces como hace todo el mundo en este foro.
Luego de revisar, entiendo el por qué!
En el foro en inglés no se exige esto porque tienen tantos post que es difícil a cada forero advertirle de sus faltas pero acá si lo hacemos.
Edita por favor y si aún no has leído las normas por favor creo que merece un repaso completo.
Enlace va con etiquetas.
Código va con etiquetas.