Problemas con código Alarma

Hola buenas tengo que hacer con un detector de presencia que cuando se detecte algo, este todo el tiempo encendido un led hasta que escriba un codigo (contraseña) para que se desactive la alarma. El problema es que no se como añadir dentro de la alarma escribir el codigo.
Tengo echo esto alguien puede ayudarme?
Gracias!

#include <Keypad.h> //llama a la librería Keypad.h

int value;
const int PIRPin = 35;
char contrasena[] = "1234"; //aquí escribimos la contraseña de 4 dígitos
char codigo[4];            //Cadena donde se guardaran los caracteres de las teclas presionadas
int cont = 0;        //variable que se incrementara al presionar las teclas
int led = 22;
const byte ROWS = 4; //Numero de filas del teclado que se esta usando
const byte COLS = 4; //Numero de columnas del teclado que se esta usando

char hexaKeys[ROWS][COLS] =  //Aquí pondremos la disposición de los caracteres tal cual están en nuestro teclado
{
 {'D', 'C', 'B', 'A'},
 {'#', '9', '6', '3'},
 {'0', '8', '5', '2'},
 {'*', '7', '4', '1'}
};

byte rowPins[ROWS] = {39, 41, 43, 45}; //Seleccionamos los pines en el arduino donde iran conectadas las filas
byte colPins[COLS] = { 47, 49, 51, 53}; //Seleccionamos los pines en el arduino donde iran conectadas las filas

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); //inicializa el teclado

void setup()
{
 pinMode(led, OUTPUT); //Pin 13 como salida
 Serial.begin(9600); //inicializar puerto serie
 pinMode(PIRPin, INPUT);
}

void loop()
{

 value = digitalRead(PIRPin);

 while (value == HIGH)
 {
   digitalWrite(led, HIGH);
   delay(50);
   digitalWrite(led, LOW);
   delay(50);
 
}



void codigoalarma()
{
 char customKey = customKeypad.getKey(); //se guarda en la variable customKey el caracter de la tecla presionada
 if (customKey != NO_KEY)         //se evalúa si se presionó una tecla
 {
   codigo[cont] = customKey;        //se guarda caracter por caracter en el arreglo codigo[]
   Serial.println(codigo[cont]);    //se imprime en el puerto serie la tecla presionada
   cont = cont + 1;          //incrementamos la variable cont
   if (cont == 4)       //si ya fueron presionadas 4 teclas se evalúa si la contraseña es correcta
   {
     if (codigo[0] == contrasena[0] && codigo[1] == contrasena[1] && codigo[2] == contrasena[2] && codigo[3] == contrasena[3])
     {
       Serial.println("Codigo correcto: alarma apagada");
       digitalWrite(led, LOW);
       value == LOW;
     }
     if (codigo[0] != contrasena[0] || codigo[1] != contrasena[1] || codigo[2] != contrasena[2] || codigo[3] != contrasena[3])
     {
       Serial.println("Codigo incorrecto");
       {
         digitalWrite(led, HIGH); //ENCENDER LED


       }

     }
     cont = 0; //resetear a 0 la variable cont
   }

 }
}

Moderador: Editado. Agregado de tags para código y editado el título.