Capítulo especial de preguntas y respuestas, donde os comento un poco las novedades que tendremos en el canal, y además respondo a los comentarios que me parecen más interesantes 🙂
https://www.youtube.com/watch?v=CcH1bsUYCKw
Resolución al problema planteado:
En este capítulo empezamos planteando un problema que consiste en conocer el tiempo entre pulsaciones.
Tenemos que empezar básicamente con un botón y por eso crearemos el esquema de abajo:
Código del problema:
int boton =2;
unsigned long inicioTiempo;
unsigned long finalTiempo;
float duracion;
int tiempoCorriendo;
void setup(){
pinMode (boton, INPUT);
Serial.begin(9600);
}
void loop(){
if (tiempoCorriendo == 0 && digitalRead(boton) == LOW){
inicioTiempo = millis();
tiempoCorriendo = 1;
}
if (tiempoCorriendo == 1 && digitalRead(boton) == HIGH){
finalTiempo = millis();
tiempoCorriendo = 0;
duracion = finalTiempo - inicioTiempo;
Serial.print ("Tiempo entre pulsaciones: ");
Serial.print (duracion/1000);
Serial.println ("s");
}
}
Básicamente la complejidad de este problema reside en que tienes que crear dos variables donde almacenar los tiempos:
1- El tiempo actual
2- El tiempo cuándo pulsaste el botón.
Esto lo hacemos con estas dos variables:
unsigned long inicioTiempo;
unsigned long finalTiempo;
Y para conocer el tiempo que ha pasado entre una pulsación y otra simplemente restamos los dos valores.
Un punto muy importante es que solo puedas presionar el boton una vez, y no guarde el valor todo el tiempo que estemos pulsando, por eso usamos la variable tiempoCorriendo.
Si no lo usasemos estaria durante toda la pulsación guardando valores, y solo queremos que lo haga una vez.
Material para el curso:
Guia de materiales