El LED debe apagarse 10 segundos despues de la señal de apagado

Saludos amigos, necesito de su ayuda...
entre muchas cosas, no he podido realizar lo siguiente;
tengo dos LEDS y un interruptor ON/OFF,
planteo la necesidad de encender los dos LEDS inmediatamente al activar el interruptor, pero cuando apago el interruptor necesito que un LED se apague(#12), y el otro se apague mas tarde (#13), unos 10 segundos, le he dado cabeza a ese asunto y no he podido..

...me colabora....??

Gracias.....

void setup()
{
 pinMode(2, INPUT);
 pinMode(12, OUTPUT);
 pinMode(13, OUTPUT);
}

void loop()
{
 if (digitalRead(2)==HIGH)
 {
   digitalWrite(12,HIGH);
   digitalWrite(13,HIGH);
 }
   else   {
     digitalWrite(12,LOW);
     delay(10000);
     digitalWrite(13,LOW);
   }

}

Asi medio funciona, pero al encender el interruptor tambien se demora en prender los LEDS, y ellos deben encender juntos de inmediato, al retardar el apagado de uno, me retarda el encendido de los dos....... : '(

Eso se hace usando millis()

unsigned long tiempo=0;

void setup()

{
  pinMode(2, INPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}


void loop()
{
  if (digitalRead(2)==HIGH)
  {
    digitalWrite(12,HIGH);
   
    digitalWrite(13,HIGH);

    tiempo=0; // si le damos de nuevo no hay tiempo de apagado
  }

    else

    {
      tiempo=millis();
      digitalWrite(12,LOW);
     // delay(10000);
     // digitalWrite(13,LOW);
    }

 if(tiempo){   // tenemos reloj en marcha
      if(millis()-tiempo>=10000L){  // tiempo transcurrido?
          tiempo=0;
          digitalWrite(13,LOW);
          }
      }

}

Espero que te enseñe un poco a no usar delays

Saludos

Para aprender sobre milllis() ve a :

Ve a Documentación => Indice de temas tutoriales => millis()