Sólo un unico parpadeo con millis

Hola a todos de nuevo.
Hoy traigo una cuestion que realmente no se si es posible crear desde donde yo la planteo.

Lo que intento es hacer parpadear un led mediante millis, pero lo diferente a todo lo que se encuentra relacionado con este tema es que el parpadeo sólo quiero que lo haga una vez, es decir, que solamente se encienda una vez (el tiempo que se quiera) y cuando se apague se mantenga apagado siempre hasta que se vuelva a alimentar otra vez y vuelva a hacer el mismo ciclo.

Es decir, que se encienda el led un segundo y al apagarse ya no se vuelva a encender de nuevo (no intento un intermitente, intento digamos un solo pulso).

Aqui es el ejemplo clasico de un intermitente con millis, pero no se si se podría convertir en que solamente cree un unico parpadeo (encenderlo un tiempo y volver a apagarlo y nada más).

int estadoLed;  //guarda el estado del led (encendido o apagado)
int periodo = 1000;  // tiempo que esta el LED en alto y bajo
unsigned long tiempoAnterior = 0;  //guarda tiempo de referencia para comparar
void setup() {
    pinMode(13,OUTPUT);  //configura la salida
}
void loop() {
  if(millis()>tiempoAnterior+periodo){  //si ha transcurrido el periodo programado
    estadoLed=!estadoLed;  //cambia el estado del led cada 100ms
    digitalWrite(13,estadoLed);  //actualiza el estado del led
    tiempoAnterior=millis();  //guarda el tiempo actual como referencia
    }
}

Gracias como siempre por vuestra ayuda sea posible o no solucionar este tema.

Si te entendi bien no le veo mayor complicacion.

Crea una variable del tipo boolean (true o false) y ponla, por ejemplo, en TRUE.

Luego en el loop preguntate (IF) si esa variable esta en TRUE, de ser asi haz todo aquello que quieras hacer solo una vez y al finalizar de hacerlo ponla en FALSE.

La siguiente vez que pase por este IF la variable estara en FALSE y ya no ejecutara la accion.

Gracias por las respuestas, voy a probar e intentarlo a ver si consigo lo que intento

hola amigo espero aun te sirva este codigo .....ya lo probe y funciona

bool ledState=true;
unsigned long tiempo = 0;  
void setup() {
    pinMode(7,OUTPUT);  
}
void loop() {
 if(millis()-tiempo>=1000){
 digitalWrite(7,ledState);
 ledState=false;
  tiempo=millis();
}
}

Muchas gracias cjts2014

Prueba a ingresar una variable "contador" y enciendes el LED siempre que hagas coincidir el valor que quieras de la variable a la vez de que el led esté apagado

digitalWrite(13,estadoLed);
byte contador=0;

Luego en el loop haces algo así

if((digitalRead(13)==LOW)&&(contador)==(0)) {   //Si es distinto
                delay(100);
                contador=1;
                delay(100);
                digitalWrite(13,HIGH);
                delay(1000); Un segundo encendido
                digitalWrite(13,LOW);

luego tan solo tienes que volver a poner la variable contador=0, donde tu quieras