
Programar un sistema de semáforos: Introducción

Actualiza para más contenido
¿Verdadero o falso? Un led se puede programar.
Vaya. Lo que tiene que esperar Lina a que cambie este semáforo... ¡No cambia del rojo! Lina se pregunta: ¿Cómo exactamente funciona un semáforo? ¿Tal vez así? Verde... ámbar... rojo... ámbar...
verde... ámbar... rojo... ¡Viene un autobús! Cambiar a verde. O tal vez no. Sin embargo, se acerca mucho a lo que pasa en realidad: algo decide cuándo hay que encender y apagar el semáforo, y también reconoce que se acerca un autobús, pero no son hombrecillos en el interior quienes lo hacen; es algo que se puede programar.
Usemos un microcontrolador para la programación. Y unos LED para representar las luces del semáforo. Para conectar todas estas partes se necesitan cables. Para que se encienda un LED, se necesita corriente. Para obtener corriente hay que tener un circuito eléctrico cerrado, con un polo positivo y uno negativo para que los electrones se muevan.
Se usa el microcontrolador para dirigir dicha corriente al LED. Echémosle un vistazo al microcontrolador. El microcontrolador tiene dos botones: A y B. Hay pernos con distinta nomenclatura como: 0, 1, 2, 3V y GND. Cada perno tiene un agujero diseñado para conectar cables con pinzas de cocodrilo o conectores banana.
Para obtener corriente se necesita voltage. El voltage se mide en voltios. ¡Ajá! 3V significa 3 voltios. Este es el polo positivo del microcontrolador. Entonces, ¿qué significa GND?
Es una abreviatura para "ground", la palabra inglesa: tierra. Ese es el polo negativo del microcontrolador. Un LED tiene dos patas. Una de ellas es más larga que la otra. Hay que conectar esta con el polo positivo.
A continuación la corriente fluye y el LED se enciende. Hay que separar con cuidado las dos patas del LED para que no sean las dos patas las que se conecten con el polo positivo, porque si no, la corriente toma el camino más corto y habrá un cortocircuito de una pata a la otra. Hay que conectar el cable de la pata corta del LED con el polo negativo del microcontrolador. ¡Listo! Ya tenemos un circuito cerrado. El LED se enciende.
Lo intenso que brille depende del voltage. En este caso son 3 voltios. Si el voltaje es demasiado alto, el LED se rompe porque la corriente que lo atraviesa se vuelve demasiado alta. Se puede limitar la corriente conectando una resistencia en serie con el LED. Como hemos optado por un LED de tres voltios, y como nuestro microcontrolador usa tres voltios, no hay peligro.
Mientras el circuito esté cerrado, el LED se iluminará. Sin embargo, para un semáforo con eso no basta: una luz que se ilumine todo el rato. Imagínate si solo se encendiera el rojo. Hay que asegurarse de poder controlar cuándo se enciende o apaga el LED. Hay que programar el microcontrolador para abrir y cerrar el circuito.
Conectamos el cable que sale de la pata larga del LED con cualquiera de los pernos enumerados. Los pernos enumerados se pueden programar para que abran o cierren el circuito. Usemos el perno cero. Pasamos el cable positivo de 3V a cero. Primero vamos a explicar paso a paso lo que le ordenamos al microcontrolador.
Usamos lo que se conoce como un pseudocódigo y que luego se puede traducir a un código de programación. Lo que queremos que haga el microcontrolador es: "Encender el LED" "Pausar" "Apagar el LED" "Pausar" "Encender el LED" etc. Cuando en programación se quiere que se repita algo, se usa un bucle. El bucle se ejecuta siempre que la condición sea verdadera. Si queremos que el bucle no se pare nunca, hay que asegurarse de que la condición sea siempre verdadera.
Por ejemplo: "Mientras que dos sea más grande que uno". Así que se añade una línea "mientras", "Mientras la condición sea verdadera", encima del pseudocódigo que hemos redactado antes. Para mostrar qué líneas están involucradas en el bucle, se hace una sangría con las líneas debajo de la línea "mientras". Así: Ahora te toca a ti convertir este pseudocódigo en un código de programación. ¡Todo tuyo!