
Programar un sistema de semáforos: el cambio de luces

Actualiza para más contenido
¿Verdadero o falso? La luz amarilla significa pasar.
Esto es un semáforo. Controla el tráfico en los cruces. Rojo significa parar, verde, arrancar y la luz ámbar nos dice que el semáforo va a cambiar de rojo a verde, o viceversa. Construyamos nuestro propio semáforo. Vamos a necesitar algunos componentes: un microcontrolador que podamos programar para controlar el semáforo.
Luces LED de color rojo, verde y amarillo. Algunos cables para conectar todas estas piezas. Una vez tengamos todos los componentes, podemos empezar. Primero cogemos un LED rojo. Este es su aspecto.
Tiene dos patas, una un poco más larga y otra un poco más corta. Hay que separarlas con cuidado, así, y conectar la pata larga con uno de los polos positivos del microcontrolador. Seleccionamos la conexión, o perno, cero para el LED rojo. Conectamos el LED amarillo con el perno uno. Y el LED verde con el perno dos.
Hay que conectar un cable desde la pata corta de cada uno de los LED con el polo negativo. De momento no se ha encendido ninguno de los diodos. Esto se debe a que los circuitos siguen abiertos. Ahora vamos a programar el microcontrolador para que podamos controlar cuándo tiene que cerrar y abrir el circuito. Un semáforo enciende y apaga la luz verde siguiendo un orden concreto: rojo, ámbar, verde, ámbar, etc.
Ahora vamos a formular instrucciones precisas de cómo tienen que funcionar las luces. Las instrucciones, o el algoritmo, deberían ser: Encender rojo, Encender ámbar, Encender verde, Encender ... Vaya, ahora se han encendido todas las luces. ¿Qué ha fallado? Está claro que tenemos que mejorar un poco el algoritmo. Pausa el vídeo y piensa qué falta en las instrucciones.
No hemos dado la orden de cuándo se tiene que apagar una luz. Hemos acabado con las tres luces encendidas a la vez. Ajustemos el algoritmo: Encender rojo, Apagar rojo y encender amarillo, Apagar amarillo y encender verde, Apagar verde y encender amarillo, Apagar amarillo y repetir. Probemos nuestro algoritmo. ¡Sí! Las bombillas no se iluminan a la vez.
Pero ahora el semáforo cambia muy rápido de color. No hay autobús al que le dé tiempo pasar antes de que vuelva a ponerse en rojo. Dale al pausa y piensa cómo podemos mejorar el algoritmo. No hemos dicho cuánto tiempo tiene que permanecer encendido cada color. Variante nueva del algoritmo con pausas entre el cambio de colores.
Añadir: Aquí tres segundos de pausa aquí, para que los que quieran cruzar la calle puedan hacerlo. Un segundo aquí, mientras está en ámbar, para que todo el mundo esté preparado. Tres segundos aquí para que el autobús tenga tiempo de pasar el cruce. Y un segundo aquí. Vuelve a intentarlo ahora.
Sí. Funciona realmente bien. El pseudocódigo está casi listo. Podemos usar estas instrucciones, nuestro algoritmo, como la base para la programación. Pero un momento: ¿El algoritmo va a terminar aquí sin más? ¿Después del verde y el ámbar, volvemos a encender el rojo?
No. No hace falta. Hemos escrito "repetir". Es un bucle. Un bucle en un programa permite que una parte del programa se repita mientras sea una condición verdadera.
Queremos que el semáforo funcione siempre, por lo que el bucle tendría que estar en marcha constantemente. Así que hay que poner una condición que sea siempre verdadera. Cojamos "Uno igual a uno". Mientras eso se cumpla, nuestro bucle estará en marcha. Para marcar las líneas que están incluidas en el bucle, hacemos una sangría en esas líneas, así: Vale.
Ya hemos hecho el pseudocódigo. Ahora te toca a ti programar el semáforo.