Problema programmazione antifurto

Ciao! Sono nuovo del forum e la mia esperienza con arduino è tutta legata allo starter kit, quindi non sono molto esperto.
Il mio problema è che non riesco a far funzionare correttamente il mio progetto, un prototipo base per un antifurto.
Infatti quando io inserisco l'allarme, l'antifurto si accende e mi comunica se c'è un intruso o no, il problema è che una volta che lui mi segnale ad esempio che non c'è nessun intruso dopodiché l'antifurto è come se si bloccasse, nel senso che se il sensore rileva qualcosa e quindi ci sarebbe un intruso l'antifurto non me l'ho segnala, questo perché come l'ho programmato il progetto rileva solo se il pulsante che lo inserisce è schiacciato e CONTEMPORANEAMENTE il sensore rileva o no l'intruso e quindi una volta che il sensore comunica ciò che ha rilevato, l'antifurto "ha finito il suo lavoro". Io penso che sia questo il problema, ma il motivo per cui io ho deciso di scriverlo sul forum è perché non riesco a trovare una soluzione. Ringrazio in anticipo chiunque mi aiuti!

P.S. (è un progetto base, infatti non ho aggiunto ad esempio un buzzer per la sirena, appena risolverò questo problema, magari lo migliorerò!)

Qui sotto metto lo sketch.

#include <IRremote.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int RECV_PIN = 10; // ricevitore IR
int StatoSensore = 0; // sensore PIR
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  pinMode(9, INPUT); // sensore PIR
  pinMode(6, OUTPUT); // led rosso
  pinMode(7, OUTPUT); // led verde
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.print("A.C.V.");
  lcd.setCursor(0, 1);
  lcd.print("Corporation");
  
  irrecv.enableIRIn(); // inizia ricezione IRemote
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);
    StatoSensore = digitalRead(9);
    Serial.println("StatoSensore: ");
    Serial.println(StatoSensore);
    
    StatoSensore = digitalRead(9);
    
   if(results.value == 16718055){ // Allarme Disinserito, pulsante 2
    digitalWrite(6, LOW); 
    digitalWrite(7, LOW);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Alllarme");
    lcd.setCursor(0, 1);
    lcd.print("Disinserito");
    delay(2000);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("A.C.V.");
    lcd.setCursor(0, 1);
    lcd.print("Corporation");
    delay(500);
   }
   
   else if(results.value == 16724175 && StatoSensore == 0){ // pulsante 1, Intruso non rilevato
   
    digitalWrite(6, LOW);      
    digitalWrite(7, HIGH);
    lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Allarme Inserito");
      delay(2000);
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("A.C.V.");
      lcd.setCursor(0, 1);
      lcd.print("Corporation");
      delay(500);
   }
   
   else if (results.value == 16724175 && StatoSensore == HIGH) { // pulsante 1, Intruso Rilevato
    digitalWrite(6, HIGH);     
    digitalWrite(7, LOW);
    lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("INTRUSO RILEVATO");
      delay(500);
   }
   
    delay(500);
    irrecv.resume();
  }
}

ElectroNikox12:
Ciao! Sono nuovo del forum

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

Ed il cross-posting è vietato.
http://forum.arduino.cc/index.php?topic=269935.0
Anche se nella sezione inglese scrivevi in inglese, NON puoi rifare stessa domanda in italiano in sezione italiana.