Distance Sensor project advise needed.

I have a project hat I need some suggestions for.
I'm not looking for someone to give me the code for it rather, some suggestions on how to proceed or change it to work better.
It is a car positional parking sensors, I have a RGB LED indicating various positions.
And use the distance measurements for that.
It is using the "blink without delay for the last position.
 "Didn't think a delay at that point would be good when vehicle was approaching the final position" 
My question is: How can I turn off the Red LED after a period of time?
Would a counter / timer that counted the flashes of the led be the best way?

Here is what I have so far.

Thanks   :confused: 


code]

// Modified Oct 2016 for distance measurements and RGB LED Indications KER..

#define trigPin 13
#define echoPin 12
#define led 11//Red LED
#define led2 10//Green LED
#define led3 9//Blue LED
const int ledPin = 11;
int ledState = LOW;
unsigned long previousMillis = 0;
const long interval = 500;//interval of blinking LED
void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(led, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(ledPin, OUTPUT);
}
void loop() {
  long duration, distance;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration / 2) / 29.1;



  if (distance >= 170 || distance <= 20) { // Turns off LEDS when out of range
    digitalWrite(led, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    Serial.print(distance);
    Serial.println ("cm & OUT of Range");
  }
  else {
    Serial.print(distance);//prints Distance in cm
    Serial.println("cm");
  }

  if (distance <= 150 ) {
    digitalWrite(led, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, HIGH);//Turn on Blue LED
    Serial.print(distance);
    Serial.println ("cm & Car Approaching");
  }
  else {
    Serial.print(distance);//prints Distance in cm
    Serial.println("cm");

  }
  //This loop turns on RED LED
  if (distance <= 60 ) {
    digitalWrite(led, LOW);
    digitalWrite(led2, HIGH);//Turn on Green LED
    digitalWrite(led3, LOW);
    Serial.print(distance);
    Serial.println ("cm &Parking Zone");
  }
  else {
    Serial.print(distance);//prints Distance in cm
    Serial.println("cm");
  }
  if (distance <= 30 ) {
    digitalWrite(led, HIGH);//Turn on Red LED
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    unsigned long currentMillis = millis();
    if (currentMillis - previousMillis >= interval) {
      previousMillis = currentMillis;
      if (ledState == LOW) {
        ledState = HIGH;
      } else {
        ledState = LOW;
      }
      digitalWrite(ledPin,ledState);
      digitalWrite(led,ledState);
      Serial.print(distance);
      Serial.println("  STOP ");
    }
 
  }
  delay(500);
  }