Publicado el

Semáforo con Arduino.

semáforo con arduino

Semáforo con Arduino! Este proyecto es uno de los clásicos cuando te estás introduciendo al desarrollo de proyectos, automatización y otras áreas. Aquí te mostramos una guía rápida y fácil de montar 4 semáforos para un cruce de 2 avenidas. Encontrarás el diagrama electrónico y código de funcionamiento del semáforo.

Semáforo con Arduino. Aquí iniciamos.

[nextpage title=”Introducción”]
Una de las aplicaciones más sencillas que se pueden hacer con Arduino son los semáforos, esta aplicación consiste en crear una secuencia de LEDs de colores rojo amarillo y verde, simulando el funcionamiento de cuatro semáforos y controlar un cruce como el de la siguiente imagen.
CruceSemaforo-01
Los semáforos serán armados en pequeñas tarjetas con su conector para enviar las señales desde nuestro Arduino.
DSC_0200-12
[nextpage title=”Materiales”]
Arduino UNO
4x LEDs Rojo
4x LEDs Amarillo
4x LEDs Verde
Pack de 4 resistores de 300 Ohms
2x Placa fenólica perforada
Tira de pines macho
Pack de Jumpers H-H (10 pzas)
Pack de Jumpers H-M (40 pzas)
Soldadura
[nextpage title=”Armado del Semáforo”]
Utilizando la placa perforada debemos armar el siguiente circuito para cada semáforo:
SemaforoEsquematico
SemaforoFritzing
Utiliza el menor espacio posible, nosotros te mostramos algunas fotos de nuestro resultado:
DSC_0186-1
DSC_0187-2
DSC_0188-3
DSC_0190-5
DSC_0191-6
DSC_0189-4
Debes repetir ese circuito para cada semáforo, en este caso queda así con los 4 semáforos:
semáforo con arduino
semáforo con arduino
semáforo con arduino
[nextpage title=”Conexiones de Tierra (GND)”]
Debido a que la tarjeta de Arduino no tiene suficientes conexiones de tierra hay que hacer una tarjeta extra que simplemente nos sirva para unir todas las conexiones de tierra y conectar sólo una al Arduino.
semáforo con arduino
semáforo con arduino
[nextpage title=”Conexion de los 4 semaforos”]
Es momento de conectar los 4 semáforos al arduino, házlo de acuerdo al siguiente diagrama o dibujo:
semáforo con arduino
semaforo_bb
[nextpage title=”Código”]
El código es bastante sencillo, hace la secuencia correspondiente a cada semáforo, en la sección de constantes puedes cambiar el tiempo de duración de cada luz, están en milisegundos.
[code language=”java”]
// Constantes
const int RETARDO_VERDE = 4000;
const int RETARDO_PARPADEO_VERDE = 500;
const int RETARDO_AMARILLO = 2000;
// Conexiones
int verde_semaforo1 = 2;
int amarillo_semaforo1 = 3;
int rojo_semaforo1 = 4;
int verde_semaforo2 = 5;
int amarillo_semaforo2 = 6;
int rojo_semaforo2 = 7;
int verde_semaforo3 = 8;
int amarillo_semaforo3 = 9;
int rojo_semaforo3 = 10;
int verde_semaforo4 = 11;
int amarillo_semaforo4 = 12;
int rojo_semaforo4 = 13;
void setup() {
// Inicialización
digitalWrite(verde_semaforo1,LOW);
digitalWrite(rojo_semaforo1,HIGH);
digitalWrite(amarillo_semaforo1,LOW);
digitalWrite(verde_semaforo2,LOW);
digitalWrite(rojo_semaforo2,HIGH);
digitalWrite(amarillo_semaforo2,LOW);
digitalWrite(verde_semaforo3,LOW);
digitalWrite(rojo_semaforo3,HIGH);
digitalWrite(amarillo_semaforo3,LOW);
digitalWrite(verde_semaforo4,LOW);
digitalWrite(rojo_semaforo4,HIGH);
digitalWrite(amarillo_semaforo4,LOW);
pinMode(verde_semaforo1,OUTPUT);
pinMode(amarillo_semaforo1,OUTPUT);
pinMode(rojo_semaforo1,OUTPUT);
pinMode(verde_semaforo2,OUTPUT);
pinMode(amarillo_semaforo2,OUTPUT);
pinMode(rojo_semaforo2,OUTPUT);
pinMode(verde_semaforo3,OUTPUT);
pinMode(amarillo_semaforo3,OUTPUT);
pinMode(rojo_semaforo3,OUTPUT);
pinMode(verde_semaforo4,OUTPUT);
pinMode(amarillo_semaforo4,OUTPUT);
pinMode(rojo_semaforo4,OUTPUT);
}
void loop() {
// Secuencia para semaforo 1
digitalWrite(verde_semaforo1,HIGH);
digitalWrite(amarillo_semaforo1,LOW);
digitalWrite(rojo_semaforo1,LOW);
delay(RETARDO_VERDE);
digitalWrite(verde_semaforo1,LOW);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo1,HIGH);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo1,LOW);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo1,HIGH);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo1,LOW);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo1,HIGH);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo1,LOW);
digitalWrite(amarillo_semaforo1,HIGH);
delay(RETARDO_AMARILLO);
digitalWrite(amarillo_semaforo1,LOW);
digitalWrite(rojo_semaforo1,HIGH);
// Secuencia semaforo 2
digitalWrite(verde_semaforo2,HIGH);
digitalWrite(amarillo_semaforo2,LOW);
digitalWrite(rojo_semaforo2,LOW);
delay(RETARDO_VERDE);
digitalWrite(verde_semaforo2,LOW);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo2,HIGH);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo2,LOW);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo2,HIGH);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo2,LOW);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo2,HIGH);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo2,LOW);
digitalWrite(amarillo_semaforo2,HIGH);
delay(RETARDO_AMARILLO);
digitalWrite(amarillo_semaforo2,LOW);
digitalWrite(rojo_semaforo2,HIGH);
// Secuencia semaforo 3
digitalWrite(verde_semaforo3,HIGH);
digitalWrite(amarillo_semaforo3,LOW);
digitalWrite(rojo_semaforo3,LOW);
delay(RETARDO_VERDE);
digitalWrite(verde_semaforo3,LOW);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo3,HIGH);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo3,LOW);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo3,HIGH);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo3,LOW);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo3,HIGH);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo3,LOW);
digitalWrite(amarillo_semaforo3,HIGH);
delay(RETARDO_AMARILLO);
digitalWrite(amarillo_semaforo3,LOW);
digitalWrite(rojo_semaforo3,HIGH);
// Secuencia semaforo 4
digitalWrite(verde_semaforo4,HIGH);
digitalWrite(amarillo_semaforo4,LOW);
digitalWrite(rojo_semaforo4,LOW);
delay(RETARDO_VERDE);
digitalWrite(verde_semaforo4,LOW);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo4,HIGH);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo4,LOW);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo4,HIGH);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo4,LOW);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo4,HIGH);
delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo4,LOW);
digitalWrite(amarillo_semaforo4,HIGH);
delay(RETARDO_AMARILLO);
digitalWrite(amarillo_semaforo4,LOW);
digitalWrite(rojo_semaforo4,HIGH);
}
[/code]
[nextpage title=”Funcionamiento”]
En el siguiente video puedes ver una visualización rápida de la secuencia programada para nuestro Semáforo con Arduino:

 

¿Aún no tienes los conocimientos en Arduino? Tenemos una invitación especial para ti. Inscríbete a nuestro Curso Online. Recibe todo el soporte de instructores capacitados para resolver tus dudas todo el tiempo mientras aprendes. Haz clic aquí para ver el Curso. 

 

[Total:0    Promedio:0/5]
Compártelo: