
Programar un sistema de semáforos: la pantalla de la cuenta atrás

Actualiza para más contenido
¿Verdadero o falso? Con el microcontrolador, mostramos el número de segundos hasta la luz verde.
Se está acercando un autobús al semáforo que resulta que se pone en verde. El autobús pasa sin tener que parar. Ha llegado al siguiente semáforo que también se pone en verde. ¡Qué suerte! ¿Es realmente cuestión de suerte? No. Alguien ha hecho que se ponga en verde.
Alguien quiere que el autobús no tenga que parar y arrancar. Esto se conoce como "ola verde". No... ese tipo de ola verde, no, sino una serie de semáforos en verde. Imagínate que el sistema de semáforos supiera qué velocidad media tiene que llevar un autobús para pillar una ola verde, y que los semáforos pudiesen mostrar los segundos que tardarán en ponerse en verde.
Entonces el conductor podría adaptar la velocidad de su autobús para llegar en el momento exacto a todos los semáforos. Vamos a programar un semáforo de este tipo para que nos haga saber cuándo va a ponerse en verde. Antes de empezar a programar necesitamos unas cuantas cosas. 1. Un microcontrolador.
Este controla la pantalla que indica cuánto tarda en ponerse en verde. 2. Tres luces LED: una roja, otra amarilla y una verde. Las luces del semáforo. 3.
Cables para conectar todos los elementos. 4. Un programa para que funcione el semáforo. Podemos usar un programa que hicimos en un vídeo anterior. Conectemos el semáforo igual que hemos hecho en ese vídeo.
El pseudocódigo del programa es como sigue: Cuando esté en rojo, el semáforo debe mostrar cuánto tardará en ponerse verde. ¿Cómo puede el programa averiguar tal cosa? Detén el vídeo y párate a pensarlo. Esta línea ordena que el semáforo esté tres segundos en rojo antes de que esta línea ordene que se ponga en ámbar. En la siguiente línea hay una pausa de un segundo antes de ponerse en verde. Si sumamos las pausas mientras pasa de rojo a ámbar, nos da tres segundos más un segundo, que en total son cuatro segundos.
Así que pasar de rojo otra vez a verde le llevará cuatro segundos. Añadimos al código: "Mostrar cuatro en pantalla". Hay una pausa de tres segundos y luego queda un segudo antes de ponerse verde. Esto lo vamos a mostrar añadiendo: "Mostrar uno en pantalla" antes de que entre la pausa de un segundo. Probemos nuestro pseudocódigo.
Pero... La pantalla salta de cuatro segundos a un segundo. el conductor del autobús no sabrá cuándo quedan tres o dos segundos para ponerse en verde. ¿Cómo podemos mejorar el pseudocódigo para que quede más claro? Podemos dividir la pausa de tres segundos en tres pausas de un segundo cada una. Para cada pausa mostramos un nuevo número en la pantalla.
Así: "Mostrar tres en pantalla" - Pausa de un segundo y "Mostrar dos en pantalla" Pausa de un segundo. Probemos de nuevo. Cuatro, tres, dos, uno, verde. ¡Funciona! Ahora el conductor recibe la información a cada segundo de cuánto falta para ponerse en verde. El conductor puede usarla para adaptar la velocidad y que el autobús pueda cruzar la ciudad sin tener que parar. ¡Hemos programado una ola verde! ¡Pilla la ola!