hola, tengo un problema con este código, agradecería que pudieran ayudarme.
Quisiera que el valor de dos salidas varíen, dependiendo del tiempo que se ha mantenido su pulsador correspondiente pulsado, en la salida tengo un led que se ilumina por un tiempo.
Tengo dos problemas:
1- No puedo pulsar dos veces seguidas el mismo pulsador, para poder pulsar uno dos veces tengo que pulsar el otro entre medias.
2- el led del pulzador IZQ no enciende.
Gracias de antemano.
float pulso_dcho;
float pulso_izq;
float tiempo1 = 0;
float tiempo2 = 0;
int led_dcho = 9;
int led_izq = 11;
void setup ()
{
Serial.begin (9600);
}
void loop ()
{
// derecho
pulso_dcho = pulseIn (8, HIGH, 100000000);
tiempo1 = pulso_dcho / 1000000;
if (tiempo1 < 0.35) { // si tiempo pulso izquierdo es menor de 0.35 seg
Serial.print (" pulso_dcho corto: ");
Serial.print (tiempo1);
Serial.println (" segundos");
digitalWrite (led_dcho, HIGH); // encendemos led
delay(200); //esperamos 0.20 segundos
digitalWrite (led_dcho, LOW); //apagamos led
}
else if (tiempo1 > 0.35) { // si tiempo pulso izquierdo es mayor de 0.35 seg
Serial.print ("pulso_dcho largo: ");
Serial.print (tiempo1);
Serial.println (" segundos");
digitalWrite (led_dcho, HIGH); // encendemos led
delay(700); //esperamos 0.70 segundos
digitalWrite (led_dcho, LOW); //apagamos led
}
else if (tiempo1 = 0.35) { // si tiempo pulso izquierdo es igual de 0.35 seg
Serial.print ("pulso_dcho largo: ");
Serial.print (tiempo1);
Serial.println (" segundos");
digitalWrite (led_dcho, HIGH); // encendemos led
delay(700); //esperamos 0.70 segundos
digitalWrite (led_dcho, LOW); //apagamos led
}
// izquerdo
pulso_izq = pulseIn (10, HIGH, 100000000);
tiempo2 = pulso_izq / 1000000;
if (tiempo2 < 0.35) { // si tiempo pulso izquierdo es menor de 0.35 seg
Serial.print (" pulso_izq corto: ");
Serial.print (tiempo2);
Serial.println (" segundos");
digitalWrite (led_izq, HIGH); // encendemos led
delay(200); //esperamos 0.20 segundos
digitalWrite (led_izq, LOW); //apagamos led
}
else if (tiempo2 > 0.35) { // si tiempo pulso izquierdo es mayor de 0.35 seg
Serial.print ("pulso_izq largo: ");
Serial.print (tiempo2);
Serial.println (" segundos");
digitalWrite (led_izq, HIGH); // encendemos led
delay(700); //esperamos 0.70 segundos
digitalWrite (led_izq, LOW); //apagamos led
}
else if (tiempo2 = 0.35) { // si tiempo pulso izquierdo es igual de 0.35 seg
Serial.print ("pulso_izq largo: ");
Serial.print (tiempo2);
Serial.println (" segundos");
digitalWrite (led_izq, HIGH); // encendemos led
delay(700); //esperamos 0.70 segundos
digitalWrite (led_izq, LOW); //apagamos led
}
}