Limite de tiempo con millis()

Hola estoy trabajando en un proyecto en la escuela y tengo una duda, quiero contar un limite de tiempo de 10 segundos al momento que un sensor PIR detecte movimiento y si no introduces la clave correcta en el lapso de 10 segundos se prende un led, pero no logro aplicar bien la función millis al momento que le sensor PIR detecte movimiento. No se si lo que quiero hacer sea posible.

Gracias por su atención c:

#include <Password.h> //Incluimos la libreria Password
#include <Keypad.h> //Incluimos la libreria Keypad

///VARIABLES PARA EL USO DEL TECLADO
Password password = Password("1234");     //Clave para usuario autorizado sensor s1
Password password2 = Password("4321");    //Clave para usuario autorizado sensor s2
Password passPIRs1 =  Password("10A");    //Clave para Off/On el sensor PIR s1
Password passPIRs2 =  Password("10B");    //Clave para Off/On el sensor PIR s2
Password passBuzz = Password("10D");      //Clave para apagar el zumbador del sensor MQ2
const byte ROWS = 4;
const byte COLS = 4;
byte rowPins[ROWS] = {9,8,7,6}; 
byte colPins[COLS] = {5,4,3,2}; 
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
//char tecla; //variable para almacenar la tecla pulsada en el KeyPad

//VARIABLES PARA EL SENSOR PIR / LED's / BUZZ / SENSOR MQ2
const int sensorPIRs1 = 12;  //Pin para sensor PIR s1
const int sensorPIRs2 = 11;  //Pin para sensor PIR s2
const int buzz = 10;         //Pin para el zumbador
const int mq2 = A3;          //Pin analogo para el sensor MQ2 
const int ledBlanco = 13;    //LED QUE PRENDE SI NO INTRODUCISTE LA CLAVE COREECTAMENTE EN 10 SEGUNDOS
const int ledVerde = A2;     //Pin para el led verde
const int ledAma = A1;       //Pin para el led amarillo
const int ledRojo = A0;      //Pin para el led rojo
const int ledVerdes2 = A4;   //Pin para led verde del sensors2
const int ledAmas2 = A5;   //Pin para led verde del sensors2

//VARIABLES DE ESTADO
boolean statusPIRs1;        //Off-On para el sensor PIRs1 0=Of / 1=On
boolean statusPIRs2;        //Off-On para el sensor PIRs2 0=Of / 1=On
int movPIRs1 = 0;           //Leer el estado del sensor PIR
int movPIRs2 = 0;           //Leer el estado del sensor PIR
int valormq = 0;            //Leer el valor analogo del sensor MQ2

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  keypad.addEventListener(keypadEvent);
  pinMode(sensorPIRs1, INPUT);
  pinMode(sensorPIRs2, INPUT);
  pinMode(mq2, INPUT);
  pinMode(buzz, OUTPUT);
  pinMode(ledVerde, OUTPUT);  
  pinMode(ledAma, OUTPUT);
  pinMode(ledRojo, OUTPUT);
  pinMode(ledVerdes2, OUTPUT);
  pinMode(ledAmas2, OUTPUT);
  digitalWrite(sensorPIRs1, LOW);
  digitalWrite(sensorPIRs2, LOW);
  digitalWrite(buzz, LOW);
  digitalWrite(ledVerde, LOW);
  digitalWrite(ledAma, LOW);
  digitalWrite(ledRojo, LOW);
  digitalWrite(ledVerdes2, LOW);
  digitalWrite(ledAmas2, LOW);
  delay(1500);	
  Serial.println("** SISTEMA ACTIVADO **");
  digitalWrite(ledVerde,HIGH); 
  digitalWrite(ledAma,LOW);
  digitalWrite(ledRojo,LOW);
  digitalWrite(ledVerde,HIGH);
  digitalWrite(ledAmas2,LOW);
  statusPIRs1 = true;  //Inicia el sistema ON del sensors1
  statusPIRs2 = true;  //Inicia el sistema ON del sensors2
  Serial.println();
  delay(100);
}

void loop() {
  // put your main code here, to run repeatedly:
  keypad.getKey();
  if(statusPIRs1){
    movPIRs1 = digitalRead(sensorPIRs1); 
    if(movPIRs1 == HIGH){
      //Serial.println("==============================================");
      //Serial.println("MOVIMIENTO DECTECTADO: PUERTA 1");
      digitalWrite(ledAma,HIGH);
    }  
  }
  
  if(statusPIRs2){
    movPIRs2 = digitalRead(sensorPIRs2); 
    if(movPIRs2 == HIGH){
      //Serial.println("==============================================");
      //Serial.println("MOVIMIENTO DECTECTADO: PUERTA 2");
      digitalWrite(ledAmas2,HIGH);
    }
  }
  
  valormq = analogRead(mq2);
  if(valormq>130){
    digitalWrite(buzz, HIGH);
  }

  /*//LEER UNA TECLA E IMPRIMIRLA EN EL MONITOR SERIAL
  tecla = keypad.getKey();
  if(tecla != NO_KEY){
    Serial.println(tecla);  
  }*/
}

void keypadEvent(KeypadEvent eKey){
  switch (keypad.getState()){
    case PRESSED:
  Serial.print("Codigo: ");
  Serial.println(eKey);
  switch (eKey){
    case '*': 
      checkPassword(); 
      break;
    case '#': 
      password.reset(); 
      password2.reset(); 
      passPIRs1.reset();
      passPIRs1.reset(); 
      passBuzz.reset();
      break;
    default: 
      password.append(eKey); 
      password2.append(eKey); 
      passPIRs1.append(eKey);
      passPIRs2.append(eKey);
      passBuzz.append(eKey);
     }
  }
}

void checkPassword(){
  if(password.evaluate()){
    if(statusPIRs1){ //SI EST ACTIVIADO EL SENSOR PIR
      Serial.println("==============================================");
      Serial.println("CORRECTO: USUARIO AUTORIZADO"); 
      Serial.println("NO ENVIAR SMS");
      password.reset();
      password2.reset();
      passBuzz.reset();
      passPIRs1.reset();
      passPIRs2.reset(); 
      digitalWrite(ledAma, LOW);  
      digitalWrite(ledVerde, LOW);
      delay(100);
      digitalWrite(ledVerde, HIGH);
      delay(100);
      digitalWrite(ledVerde, LOW);
      delay(100);
      digitalWrite(ledVerde, HIGH);  
     }
  } 
  else if(password2.evaluate()){
    if(statusPIRs2){ //SI EST ACTIVIADO EL SENSOR PIR
      Serial.println("==============================================");
      Serial.println("CORRECTO: USUARIO AUTORIZADO s2"); 
      Serial.println("NO ENVIAR LLAMAR");
      password.reset();
      password2.reset();
      passBuzz.reset();
      passPIRs1.reset();
      passPIRs2.reset(); 
      digitalWrite(ledAmas2, LOW);  
      digitalWrite(ledVerdes2, LOW);
      delay(100);
      digitalWrite(ledVerdes2, HIGH);
      delay(100);
      digitalWrite(ledVerdes2, LOW);
      delay(100);
      digitalWrite(ledVerdes2, HIGH);  
     }
  } 
  else if(passBuzz.evaluate()){
    Serial.println("==============================================");
    Serial.println("CORRECTO: BOCINA");
    digitalWrite(buzz, LOW);
    password.reset();
    password2.reset();
    passBuzz.reset();
    passPIRs1.reset();
    passPIRs2.reset();  
  }
  else if(passPIRs1.evaluate()) {
    if(statusPIRs1){
      Serial.println("==============================================");
      Serial.println("CORRECTO: SENSOR DE LA PUERTA 1 DESACTIVADO");
      statusPIRs1 = false;
      digitalWrite(ledVerde, LOW);  
    }else {
      Serial.println("==============================================");
      Serial.println("CORRECTO: SENSOR DE LA PUERTA 1 ACTIVADO");
      statusPIRs1 = true;
      digitalWrite(ledVerde, HIGH);
    }
    password.reset();
    password2.reset();
    passBuzz.reset();
    passPIRs1.reset();
    passPIRs2.reset();
  }
  else if(passPIRs2.evaluate()) {
    if(statusPIRs2){
      Serial.println("==============================================");
      Serial.println("CORRECTO: SENSOR DE LA PUERTA 2 DESACTIVADO");
      statusPIRs2 = false;
      digitalWrite(ledVerdes2, LOW);  
    }else {
      Serial.println("==============================================");
      Serial.println("CORRECTO: SENSOR DE LA PUERTA 2 ACTIVADO");
      statusPIRs2 = true;
      digitalWrite(ledVerdes2, HIGH);
    }
    password.reset();
    password2.reset();
    passBuzz.reset();
    passPIRs1.reset();
    passPIRs2.reset();
  }
  else {
    Serial.println("==============================================");
    Serial.println("Incorrecto");
    digitalWrite(ledRojo, HIGH);
    digitalWrite(buzz, HIGH);
    delay(100);
    digitalWrite(ledRojo, LOW);
    digitalWrite(buzz, LOW);
    delay(100);
    digitalWrite(ledRojo, HIGH);
    digitalWrite(buzz, HIGH);
    delay(100);
    digitalWrite(ledRojo, LOW);
    digitalWrite(buzz, LOW);
  }
}

Bienvenido al foro Arduino, te voy a poner en la lista de los estudiantes que al menos leen las normas del foro y colocan el código como corresponde, todo un mérito considerando que el 99% de los nuevos o recién llegados no lo hace!!!

Ahora vamos a tu problema.

Tuve que mirar tu código para darme cuenta que es el ledBlanco el que quieres que se encienda cuando se superan los 10 segundos.

Una linea en tu explicación hubiera ayudado!! Tenlo presente para la próxima.

te pego la parte que creo debes cambiar.. pruébala a ver si se comporta como pretendes

//VARIABLES DE ESTADO
boolean statusPIRs1;        //Off-On para el sensor PIRs1 0=Of / 1=On
boolean statusPIRs2;        //Off-On para el sensor PIRs2 0=Of / 1=On
boolean movPIRs1 = false, movPIRs1Ant;           //Leer el estado del sensor PIR
boolean movPIRs2 = false, movPIRs2Ant;           //Leer el estado del sensor PIR
unsigned long movPIRs1Time,
              movPIRs2Time;
int valormq = 0;            //Leer el valor analogo del sensor MQ2

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  keypad.addEventListener(keypadEvent);
  pinMode(sensorPIRs1, INPUT);
  pinMode(sensorPIRs2, INPUT);
  pinMode(mq2, INPUT);
  pinMode(buzz, OUTPUT);
  pinMode(ledVerde, OUTPUT);  
  pinMode(ledAma, OUTPUT);
  pinMode(ledRojo, OUTPUT);
  pinMode(ledVerdes2, OUTPUT);
  pinMode(ledAmas2, OUTPUT);
  digitalWrite(sensorPIRs1, LOW);
  digitalWrite(sensorPIRs2, LOW);
  digitalWrite(buzz, LOW);
  digitalWrite(ledVerde, LOW);
  digitalWrite(ledAma, LOW);
  digitalWrite(ledRojo, LOW);
  digitalWrite(ledVerdes2, LOW);
  digitalWrite(ledAmas2, LOW);
  delay(1500);  
  Serial.println("** SISTEMA ACTIVADO **");
  digitalWrite(ledVerde,HIGH); 
  digitalWrite(ledAma,LOW);
  digitalWrite(ledRojo,LOW);
  digitalWrite(ledVerde,HIGH);
  digitalWrite(ledAmas2,LOW);
  statusPIRs1 = true;  //Inicia el sistema ON del sensors1
  statusPIRs2 = true;  //Inicia el sistema ON del sensors2
  Serial.println();
  delay(100);
}

void loop() {
  // put your main code here, to run repeatedly:
  keypad.getKey();
  if (statusPIRs1){
      movPIRs1 = digitalRead(sensorPIRs1); 
      if (movPIRs1){
          //Serial.println("==============================================");
          //Serial.println("MOVIMIENTO DECTECTADO: PUERTA 1");
          digitalWrite(ledAma,HIGH);
      }  
      if (movPIRs1 && !movPIRs1Ant)
          movPIRs1Time = millis();
      movPIRs1Ant = movPIRs1;
      if (millis() - movPIRs1Time > 10000UL) { // si supera 10 saegundos
          digitalWrite(ledBlanco, HIGH);
      }
      else 
          digitalWrite(ledBlanco, LOW);
  }
  
  if (statusPIRs2){
      movPIRs2 = digitalRead(sensorPIRs2); 
      if (movPIRs2){
          //Serial.println("==============================================");
          //Serial.println("MOVIMIENTO DECTECTADO: PUERTA 2");
          digitalWrite(ledAma2,HIGH); // 
      }  
      if (movPIRs2 && !movPIRs2Ant)
          movPIRs2Time = millis();
      movPIRs2Ant = movPIRs2;
      if (millis() - movPIRs2Time > 10000UL) { // si supera 10 saegundos
          digitalWrite(ledBlanco, HIGH);
      }
      else 
          digitalWrite(ledBlanco, LOW);
  }