Menu switch case

buenas, lo que entiendo es que quieres hacer,es prender apagar, control de lumiciad,etc, con un solo boton.
me puse a hacerlo, y me salio lo siguiente.

vas a poner hacer lo propuesto en funcion del tiempo y el numero de pulsaciones q hagas.es decir,
en un segundo deberas,apretar el boton, y se debera enceder.entre dos segundos deberas apretar dos veces el boton
y debera apagarce. creo que el concepto de como hacerlo esta.talvez debas agregar algo mas o no.

realmente no lo he probado pero s compilado, es que no encuentro un boton, para probarlo,jeje.
podria probarlo por otros mecanimos, pero la verdad yame dio flojera.Xd

int buttonPushCounter = 0;
int buttonState = 0;         // current state of the button
int lastButtonState = 0;     // previous state of the button
int ledPin = 6;
int time=0,timeA=0;
int estado=0;

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

void loop (){
  buttonState = digitalRead(2);
  
  
  
  
   if (buttonState == HIGH) {
       time=millis(); //
	   time=time-timeA;
	   buttonPushCounter++;
		  if(time==5000){
		  
		     buttonPushCounter=0;
			time=0;
			timeA=0;
		  }
		  
		  
		  
		
	      if(  (time>0 && time<=1000) && buttonPushCounter==1){   
		    estado=1;  //enceder led
		    buttonPushCounter=0;
			time=0;
			timeA=0;
		  
		  }
		  else if(  (time>0 && time<2000) && buttonPushCounter==2){   
		    estado=2;  //off led
		    buttonPushCounter=0;
			time=0;
			timeA=0;
			
		  
		  
		  }
    }
		  
		   switch (estado) {
    case 1:
         digitalWrite (ledPin, HIGH);
      break;
    case 2:
      digitalWrite (ledPin, LOW);
      break;
    
     
  }
		  
		  
	  
      
    }