Hola: estoy intentando hacer un programa con 2 pulsadores M1 y M0 ( los pulsadores introducen 0 sin presionarlos y 1 al presionarlos ) y una salida T. Tengo en cuenta rebotes de pulsadores
Si pulso y suelto M0 cuatro veces enciendo y apago el led en la salida T.
Si pulso y suelto M1 dos veces enciendo y apago el led en la salida T.
Al pulsar M1=1 y M==1, es decir, presionar los 2 pulsadores al mismo tiempo no logro encender y apagar el led en la salida T.
Ya que entra en un if anterior, depende si presiono primero M1 o presiono M0. Y después el programa hace cosas raras.
Estoy haciendo la simulación con proteus y primero tengo que presionar un pulsador y después otro, no tengo otra alternativa. Gracias por vuestra ayuda de antemano.
El programa:
int M0=3;
int M1=2;
int T=13;
int veint=0;
int cinc=0;
int cen=0;
void setup()
{
pinMode(M0,INPUT);
pinMode(M1,INPUT);
pinMode(T,OUTPUT);
digitalWrite(T,LOW);
}
void loop()
{
if( digitalRead(M1)==LOW && digitalRead(M0)==HIGH )
{
veint++;
while(digitalRead(M0)==HIGH);
delay(100);
}
if(veint==0)
{
digitalWrite(T,LOW);
}
if(veint==4)
{
digitalWrite(T,HIGH);
delay(500);
digitalWrite(T,LOW);
delay(500);
veint=0;
}
if( digitalRead(M1)==HIGH && digitalRead(M0)==LOW )
{
cinc++;
while(digitalRead(M1)==HIGH);
delay(100);
}
if(cinc==0)
{
digitalWrite(T,LOW);
}
if(cinc==2)
{
digitalWrite(T,HIGH);
delay(500);
digitalWrite(T,LOW);
cinc=0;
}
if( digitalRead(M1)==HIGH && digitalRead(M0)==HIGH)
{
digitalWrite(T,HIGH);
delay(1000);
digitalWrite(T,LOW);
delay(1000);
}
}