Hola!
Estoy haciendo una plataforma de salto con mi Arduino UNO R3, que calcula cuanto tiempo permanece una persona en el aire al saltar y tengo un problema con la programación.
El problema reside en los 3 condicionales del loop, pues no los cumple, y no se que puede ser.
int L1 = 8, L2 = 9, R1 = 10, R2 = 11;
void setup(){
//INPUTS
pinMode(L1, INPUT);
pinMode(L2, INPUT);
pinMode(R1, INPUT);
pinMode(R2, INPUT);
Serial.begin(9600);
}
void loop(){
//GET PUSH VALUES
int l1 = digitalRead(L1);
int l2 = digitalRead(L2);
int r1 = digitalRead(R1);
int r2 = digitalRead(R2);
int esl2, sl2, fl2, tiempol2;
//ESl2 ES EL ESTADO DEL SALTO
//SL2 TIEMPO EN EL QUE DESPEGA
//FL2 TIEMPO EN EL QUE CAE
// TIEMPOL2 ES EL TIEMPO EN EL AIRE (FL2 - SL2)
//esl2 = 0 **USUARIO FUERA DE LA PLATAFORMA** l2 = 0; esl2 = 0;
//esl2 = 1 **USUARIO EN LA PLATAFORMA** l2 = 1; esl2 = 1;
//esl2 = 2 **USUARIO EN EL AIRE** l2 = 0; esl2 = 2;
//esl2 = 3 **USUARIO ATERRIZA EN LA PLATAFORMA** l2 = 1; esl2 = 3;
esl2 = 0;
if(esl2 == 0 && l2 == 1){
esl2 = 1; //CAMBIO EL ESTADO PARA INDICAR QUE YA ESTA EN LA PLATAFORMA
Serial.println("USUARIO EN LA PLATAFORMA");
if(esl2 == 1 && l2 == 0){
esl2 = 2; //CAMBIA EL ESTADO PARA INDICAR QUE EL USUARIO HA DESPEGADO
sl2 = millis();
Serial.println("EL USUARIO HA SALTADO");
}
if(esl2 == 2 && l2 == 1){
esl2 = 3; //AQUI EL USUARIO YA HA ATERRIZADO
fl2 = millis();
Serial.println("SALTO ACABADO");
}
}
Serial.print("TIEMPO EN EL AIRE (ms): "); Serial.println(tiempol2);
}
ACLARACION: lo de estado es para poder distinguir entre cuando el usuario se sube para prepararse para saltar y cuando aterriza