Arduino, Tutoriales, YouTube

#14 – Preguntas y respuestas

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

Back to list