Después del encendido de un LED con Arduino, una de las primeras prácticas que puedes realizar para conocer la flexibilidad y facilidad de uso de la placa Arduino es la de simular un semáforo utilizando LEDs para esto.
Simular las luces de tráfico con Arduino es una tarea muy sencilla, a continuación te muestro como realizar el circuito y el código necesario para esto.
Tabla de contenidos
Atención: Si no has programado en tu placa Arduino antes, te recomiendo revisar primero el post «Encender un LED con Arduino«, donde explico las funciones básicas del IDE de Arduino.
Material que necesitarás
- 1 Placa Arduino
- 1 Protoboard o Breadboard
- 3 Resistencias
- 3 LEDs
- Cables para conectar el circuito
En mi caso, utilizaré la placa Arduino UNO, un Breadboard de 400 puntos, 3 resistencias de 220 Ohms y 3 LED de color verde, amarillo y rojo. No olvides que sin las resistencias corres el riesgo de quemar los LED y aunque su valor puede variar, una resistencia muy alta puede hacer que el resultado no sea visible, por el contrario, una resistencia muy baja puede dañar los componentes tras el paso de corriente.
Para simular el resultado del proyecto, armaré el circuito utilizando Autodesk Tinkercad.
Simular un semaforo con Arduino
Circuito

Para armar nuestro circuito en esta práctica, deberemos colocar los 3 LED en el Breadboard, conectando una resistencia a cada cátodo, y después cada resistencia tendrá una salida a tierra. Posteriormente para cada LED, conectaremos el ánodo a los pines digitales 13, 12 y 8 del Arduino.
Código
Para comenzar, declaramos tres constantes de tipo entero, cada una correspondiendo a un pin conectado a un LED:
https://gist.github.com/anonymous/554c46a31dfa68f596b38d9036edc781
Después, en la función setup() definimos los tres LED como componentes de salida (OUTPUT):
https://gist.github.com/anonymous/e0c9c66e37d2ccd8b68501b5698f7595
Finalmente, dentro de loop() encendemos y apagamos cada LED secuencialmente:
https://gist.github.com/anonymous/608864730a811b53a7783d0855dcb644
El resultado final y el código completo quedan así:
https://gfycat.com/TintedJovialCats
https://gist.github.com/anonymous/f5159cf4c28a65b22e5c9dd44600c354
Ahora bien, si tienes algo de experiencia programando te habrás dado cuenta que el código anterior puede reducirse con el mismo resultado aprovechando el uso de arreglos y ciclos:
https://gist.github.com/anonymous/d69e7463298b402046d499f7522d6035
En el código anterior, almacenamos los valores de los pines conectados a los LED en un arreglo de enteros, posteriormente dentro de la función loop() vamos accediendo a cada uno de ellos mediante un ciclo for.
Actuando sobre este último código, si buscas agregar más realismo, podemos añadir un parpadeo fácilmente si modificamos el código dentro de la función loop() de la siguiente manera:
https://gist.github.com/anonymous/a20875014b70c6bf2f25938796c78786
Para terminar, el resultado del último código y el código completo:
https://gfycat.com/DecisiveDenseGrayfox
https://gist.github.com/anonymous/bd898aafad0968d1d21c80cd4600303f
Conclusión
Esta práctica te sirve para tener claro como funcionan los puertos digitales de Arduino y las funciones más comunes dentro del código. Además, es una buena muestra de como utilizar las variables, ciclos y arreglos para realizar tus proyectos con menos código y más legible con la placa Arduino UNO.
Deja una respuesta