Ejemplos Arduino: Semáforo (Street Light)

Buenas a todos!!!
Hoy les traigo un ejemplo de los más básicos que se pueden realizar con Arduino: El semáforo.
Si bien es un practica sencilla, nos ayudará a entender como realizar secuencias con LED y el bucle FOR que creo ya describí en otra entrada de este mismo blog. Arduino: Efecto Coche fantástico
Podría haber realizado la practica con un solo semáforo, pero creo que queda mucho más bonito con dos ya que representa como tendría que funcionar un semáforo en una intersección.
Otro punto interesante seria añadirle un pequeño altavoz para simular el dispositivo para invidentes que hay situados en casi todos los semáforos de una gran ciudad.

Para este ejemplo solo necesitaremos:

Arduino UNO

6 Resistencias 330ohm

2 LED de color rojo

2 LED de color naranja

2 LED de color verde
Conexiones:
Usaremos los pines digitales 7, 8, 9, 10, 11, 12 donde irán conectados los LED con una resistencia limitadora de 330ohm


El código del programa es bastante sencillo, puedes copiar y pegar o descargar el sketch al final de esta misma entrada:

//Definimos los pines de los LED
//Semaforo 1:
const int rojo = 7;
const int amarillo = 8;
const int verde = 9;
//Semaforo 2:
const int rojo2 = 10;
const int amarillo2 = 11;
const int verde2 = 12;

void setup() {
//Configuramos los pines como salida
pinMode (rojo, OUTPUT);
pinMode (amarillo, OUTPUT);
pinMode (verde, OUTPUT);
pinMode (rojo2, OUTPUT);
pinMode (amarillo2, OUTPUT);
pinMode (verde2, OUTPUT);
//Comprobamos que todos los LEDs encienden
for (int z = 7; z < 13; z++) {
digitalWrite ( z, HIGH);
delay (100);
digitalWrite (z, LOW);
delay(100);
}
}

void loop() {
///////SECUENCIA 1/////////////
digitalWrite (rojo2, HIGH);
digitalWrite (verde, HIGH);
delay (5000);
digitalWrite (verde, LOW);
///////SECUENCIA 2////////////
for (int x = 0; x < 5; x++) {
digitalWrite (amarillo, HIGH);
delay(500);
digitalWrite (amarillo, LOW);
delay (500);
}
///////SECUENCIA 3/////////////
digitalWrite (rojo2, LOW);
digitalWrite (verde2, HIGH);
digitalWrite (rojo, HIGH);
delay (5000);
digitalWrite (verde2, LOW);
///////SECUENCIA 4/////////////
for (int y = 0; y < 5; y++) {
digitalWrite (amarillo2, HIGH);
delay(500);
digitalWrite (amarillo2, LOW);
delay (500);
}
digitalWrite (rojo, LOW);

}

En la siguiente animación podemos ver el resultado final del programa:



Descargar Ejemplo Semaforo Infotronikblog

Espero que les guste y les sea de utilidad, hasta la próxima!!!!
Fuente: este post proviene de InfotronikBlog, donde puedes consultar el contenido original.
¿Vulnera este post tus derechos? Pincha aquí.
Creado:
¿Qué te ha parecido esta idea?

Esta idea proviene de:

Y estas son sus últimas ideas publicadas:

Buenas a todos!!! Esta publicación va con un poco de retraso... ya tenía la Raspberry Pi 2 desde hacia bastante tiempo, pero como la tenia en otros usos y no he podido hacerle una entrada en condicion ...

Recomendamos

Relacionado

Arduino Añadir fichero Ejemplos ...

Muy buenas a todos!!! A todos nos ha pasado que cuando ya le pillamos el truquillo a esto de Arduino hacemos programas más y más grandes, añadiendo funciones extras haciendo que se sumen lineas hasta casi volvernos locos buscando esa linea... Para solucionar esto y hacer que nuestro código este mucho mejor estructurado. Podemos solucionar esto de varias maneras. Una de ellas seria con Sketch que v ...

Tutoriales arduino robótica

Arduino es una plataforma de desarrollo de software y hardware libres que incorpora un microcontrolador re-programable y una serie de pines hembra, los que permiten establecer conexiones entre el microcontrolador y los diferentes sensores y actuadores de una manera muy sencilla. ¿Por qué usar Arduino? Arduino es libre y extensible: esto quiere decir que cualquiera que desee ampliar y mejorar el di ...

Arduino Comunicaciones ESP8266

Y Felices Fiestas a todos!!! Ayer tuve un pequeño problema cuando estaba programando un menú configurador para hacer más sencilla la manera de configurar el ESP8266. Estaba con el menú del Baudrate cuando me equivoque al meter un baudrate que no era valido, el ESP8266 dejo de funcionar. Tengo varios módulos más, pero ya que estaba en faena me decidí a solucionarlo en el momento... Eso pensé en un ...