Sketch con error. Son pocas lineas y es muy sencillo. [SOLUCIONADO]

Lo que hace el programa, es: Si se presiona y mantiene un pulsador (ó entrada HIGH) por 1 seg. ó más, se ejecuta la acción de activar el led del pin 13 (Salida HIGH). El Sketch me tira 1 error y no se como corregirlo. Si tienen un Sketch mejor ó más sencillo, también me serviría.

int ledpin =13;
int buttonPin = 8;
unsigned long tiempo;
byte pulsacionValida = 0;

void setup(){
pinMode(ledpin, OUTPUT);
pinMode(buttonPin, INPUT);
digitalWrite(buttonPin,HIGH); //Activa PullUp resistor
digitalWrite(ledpin,LOW);
}

void loop(){

while(!digitalRead(buttonPin)); { // Espera pulsación
{
tiempo = milis(); // guardo el inicio de la pulsación
}

do // Mientras dos condiciones: un segundo y botón apretado

if(milis() >= tiempo + 1000) // leo el reloj, ¿paso un segundo?
pulsacionValida = 1;
}
while( (!pulsacionValida) && (digitalRead(buttonPin) );
{
if(pulsacionValida);

digitalWrite(ledpin,HIGH);
delay(1000);
digitalWrite(ledpin,LOW);
}

{
else
}
digitalWrite(ledpin,LOW);
}

Hola walmar usa este codigo al mantener pulsado el pulsador (en este caso 5 seg) se activa el led hasta soltar el pulsador...

int ledpin =13;
int buttonPin = 8;
unsigned long inicioHigh;




void setup()
{
 inicioHigh=millis();
 pinMode(ledpin, OUTPUT);
 pinMode(buttonPin, OUTPUT);


}

void loop()
{
  if  (digitalRead(buttonPin)==HIGH){
           unsigned long tiempoTranscurrido=millis()-inicioHigh;
           if(tiempoTranscurrido>=5000){
                 digitalWrite(ledpin,HIGH);
           }
      } else {
            inicioHigh=millis();
            digitalWrite(ledpin,LOW);
      }
}

Protheo, Muchas gracias!!! Funciona Ok!!!
Saludos!

Me alegro que te alla servido...

Un abrazo!!