Apagar led después de un cierto tiempo

Hola, es la primera vez que me atrevo a preguntar, pero ya estuve indagando un poco pero no encontré, asi que decidí mejor preguntar.
Tengo una duda, actualmente estoy usando el Arduino Nano y un Sensor Ultrasonico HY-SRF05, lo que pasa es que el sensor una vez activado y este haga la medición, tal como es el caso donde tengo 2 led, y se activan a cierta distancia.
Mi pregunta viene siendo si el LED A se activa y el valor del ultrasonico(la medida) se mantiene constante por X tiempo ¿se puede desactivar? haciendo que el LED A se ponga en low. Y si el valor del sensor cambia, este vuelva a "encender" dichos led.

Ejemplo.- Mi led A se activa a 5 cm, pero el valor se queda fijo por 4 segundos sin avanzar ni retroceder (¿es posible apagar el led A a los "3 segundos" cuando el valor sigue siendo los 5cm?) y lo mismo para el led B.

Aqui el codigo, me serian de gran ayuda a resolver, he intentado pero aun no conozco del todo. Gracias por su lectura hasta este punto.

int trigger = 9;
int echo = 8;
float tiempo_de_espera,distancia;
void setup() {
  Serial.begin(9600);
  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);
  // put your setup code here, to run once:

}

void loop() {
  digitalWrite (trigger, LOW);
  delayMicroseconds(2);
  digitalWrite(trigger, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger,LOW);
  tiempo_de_espera = pulseIn(echo,HIGH);
  distancia =(tiempo_de_espera/2)/29.15;
  Serial.print(distancia);
  Serial.println("cm");
  delay(30);
  if(distancia>=50 && distancia <= 300)
  {
    analogWrite (12,0);
    analogWrite (11,0);
  }
  if(distancia>=30 && distancia <= 49)
  {
    analogWrite (12,255);
    analogWrite (11,0);
  }
  if(distancia>=5 && distancia <= 29)
  {
    analogWrite (12,0);
    analogWrite (11,255);
  }
  return distancia;
  // put your main code here, to run repeatedly:

}

Gracias, estuve leyendo, creo que si ya he captado la idea, ingresar y con algunas condiciones, gracias!

Moderador: Editado. No repitas lo que se lee arriba