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;
}
}