Loading...
Pages: [1]   Go Down
Author Topic: contar el tiempo que esta pulsado un boton  (Read 1045 times)
0 Members and 1 Guest are viewing this topic.
Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 298
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Resuelto la anterior duda, ahora tengo un problema para poder realizar un contador para saber cuanto tiempo esta pulsado un boton y depende el tiempo hacer una cosa u otra.
estoy usando la funcion millis pero poniendo if (estadoboton1 == HIGH) entra una vez y sale, no se como lo podria hacer, alguna ayuda porfa.
« Last Edit: May 19, 2011, 05:27:37 pm by riscking » Logged

Donostia
Offline Offline
God Member
*****
Karma: 0
Posts: 672
elektronikadonbosco
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pon todo el código y si pones algunos comentarios para que podamos entenderlo pues mejor  smiley-grin
Logged


Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 298
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Resuelto lo anterior, ahora no se como hacer el contador de la pulsacion para ahorrarme un par de botones y segun el tiempo que este pulsado hacer una funciones u otras.
A ver si alguien me puede hechar una manilla.
Gracias de antemano.
Logged

Donostia
Offline Offline
God Member
*****
Karma: 0
Posts: 672
elektronikadonbosco
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

se me ocurre lo siguiente:

-cuando detectes que alguien pulsa el botón guarda el tiempo (millis())
-espera a que lo deje de pulsar y guarda el tiempo
-Si la diferencia es mayor que X que se ejecute la función AA
-Sino que se ejecute la función BB

Logged


0
Offline Offline
Edison Member
*
Karma: 13
Posts: 1237
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pon tu codigo, sino tenemos que escribirte el codigo desde cero y eso no ayuda.
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 298
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dandole vueltas en el trabajo sobre papel creo q ya lo tengo solucionado, no se si sera la manera mas limpia pero creo q funciona. Seria algo asi, falta por pulir las condiciones pero ya estaria.

Code:
void loop() {
estadoboton1 = digitalRead(boton1);
if(estadoboton1 == HIGH) {
tiempo=millis();
    while(estadoboton1 == HIGH) {
tiempo2=millis();
estadoboton1 = digitalRead(boton1);

}
tiempo3=tiempo2-tiempo;

Serial.println(tiempo3);
if(tiempo3<1000 ){
 Serial.println("mola");
}
else{ Serial.println("no mola"); }
}
}
Logged

Ciudad Real
Offline Offline
God Member
*****
Karma: 1
Posts: 747
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mírate la función pulsein()

http://arduino.cc/es/Reference/PulseIn

saludos
Logged

Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 298
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Jaja,  reduce todo mi codigo a una linea. Cuando llegue a casa lo pruebo, almenos he sacado una manera alternativa, xdd
Logged

Donostia
Offline Offline
God Member
*****
Karma: 0
Posts: 672
elektronikadonbosco
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Menuda función, esa si que mola, hace exactamente lo que quieres.
Logged


Pages: [1]   Go Up
Print
 
Jump to: