El concepto de velocidad es bastante intuitivo. Si viajamos en un coche que va a 100 km/h, sabemos que nos costará 2 horas hacer una distancia de 200 km. La velocidad, por lo tanto, es el espacio que se recorre en un cierto tiempo. Matemáticamente, v = S / t, donde v es la velocidad, S el espacio recorrido y t el tiempo que se ha tardado en recorrerlo.

Cómo medir la velocidad con arduino

Físicamente, basta con tener un metro para medir distancia y un cronómetro para medir tiempos. Por ejemplo, el de nuestro móvil. Por supuesto, si queremos ser más precisos, el método manual no es una buena opción, sobre todo cuando lo usamos para medir distancias pequeñas. Nuestro tiempo de reacción para iniciar y parar el cronómetro es lento. Por lo tanto, utilizaremos una placa de arduino y unos sensores que serán «nuestros dedos» para poner en marcha el cronómetro y pararlo.

Algo que parece complicado se simplifica con una de las funciones más útiles que proporciona arduino. En el momento de encenderse, la placa comienza a contar el tiempo. No hace falta que hagamos nada. Mediante la función millis(), de la que hablamos en nuestra anterior entrada, ese tiempo está a nuestra disposición.

Cómo lo haremos: el hardware y el algoritmo

Hay varias opciones. En este caso, utilizaremos sensores de infrarrojos (IR) que detectan la presencia del cuerpo que se mueve. La velocidad de un móvil en un tramo se puede obtener, en promedio, como la distancia recorrida entre el tiempo que ha tardado en recorrerla.

Se puede hacer un sencillo montaje en el que mediante 2 sensores de IR se puede medir el tiempo y obtener un valor de velocidad aproximada. Este es el algoritmo que voy a utilizar:

Cuando se lanza el cuerpo y llega al primer sensor, almacenamos el tiempo en que se ha producido la activación (tiempo_sensor2). Cuando pasa por el siguiente sensor, volvemos a almacenar el tiempo (tiempo_sensor6). Es evidente que restando ambos tiempos obtenemos el tiempo que tarda en recorrer una distancia que conocemos (en el caso de nuestro experimento, 58,5 cm). Calculamos la velocidad e imprimimos datos. Solo se imprimirán los datos si se activa el segundo sensor.

La peculiar numeración de las variables se debe a la utilización del montaje (que consta de varios sensores) para otros experimentos.

La foto del montaje que utilizamos se puede observar en la cabecera de esta entrada.

La programación

Como es habitual en este blog, presentaremos el programa por bloques utilizando visualino (pueden usarse otros sistemas, como mblock):

El programa es bastante sencillo, pero voy a hacer algunos comentarios. Primero, los sensores se activan con nivel bajo (en este caso), es decir, proporcionan entrada de nivel alto inactivos, e indican 0 (nivel bajo) cuando detectan un cuerpo. Por eso comparamos con ‘0’.

Además, se podría colocar el segundo bloque ‘si sensor 6 = 0’ dentro del primer bloque condicional. Tal y como está en el diagrama de bloques, es necesario que la bola pase primero por el primer detector y después por el segundo, en ese orden (lo que, por otra parte, es razonable).

Un breve vídeo sobre el experimento realizado:

Un sencillo montaje con sensores de infrarrojos para medir la velocidad

Hemos usado en más ocasiones la rampa (por ejemplo, para emular el experimento de Galileo). En este caso solo usamos dos sensores y hemos añadido unos diodos LED que se activan al pasar la bola delante de ellos.