You are on page 1of 6

PRACTICAS DE DISEO AVANZADO 3er.

PARCIAL

PRACTICA I: SEMAFOROS

OBJETIVOS:
Utilizar el programa Proteus para desarrollar, disear y simular proyectos
avanzados que incluye el uso de microcontroladores y dispositivos programables
as como aprender a realizar el diseo PCB de los mismos.

DESARROLLO:
En esta prctica se trata de crear una secuencia de LEDs de colores rojo amarillo y
verde, simulando el funcionamiento de cuatro semforos para controlar un cruce
como el de la figura 1.

Figura 1 Figura 2

Los semforos sern armados en pequeas tarjetas con su conector para enviar las
seales desde nuestro Arduino, tal como se observa en la figura 2
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 slo una al Arduino. A continuacin ms imgenes que ilustran
como debe realizarse los semforos y tambin como deben conectarse al arduino.

Al final se escribe el cdigo que bien podra tener algunos errores pero el alumno
debe corregirlo de tal manera que la simulacin funcione correctamente.

NOTA; Deben realizar la simulacin en proteus, as como su diseo en ARES y no


se vale andar pasndose los trabajos, porque sino la calificacin se divide entre los
que lo hayan realizado.

1
PROF. GALILEO VELAZQUEZ CANSECO
PRACTICAS DE DISEO AVANZADO 3er. PARCIAL

Fig. 3 Tarjeta que controla las tierras

Fig. 4 Asi debe verse el semaforo Fig.5 Esquematico del semaforo

Fig. 6 Los cuatro semforos funcionando y conectado al arduino

2
PROF. GALILEO VELAZQUEZ CANSECO
PRACTICAS DE DISEO AVANZADO 3er. PARCIAL

Fig. 7 Conexin de los semforos

3
PROF. GALILEO VELAZQUEZ CANSECO
PRACTICAS DE DISEO AVANZADO 3er. PARCIAL

SKETCH
(Este cdigo se puede mejorar usando funciones, para quien lo modifique
usando menos instrucciones se tomara en cuenta con puntos extras)

// Constantes digitalWrite(amarillo_semaforo1,LOW);
const int RETARDO_VERDE = 4000; digitalWrite(verde_semaforo2,LOW);
const int RETARDO_PARPADEO_VERDE = digitalWrite(rojo_semaforo2,HIGH);
500;
digitalWrite(amarillo_semaforo2,LOW);
const int RETARDO_AMARILLO = 2000;
digitalWrite(verde_semaforo3,LOW);
digitalWrite(rojo_semaforo3,HIGH);
// Conexiones
digitalWrite(amarillo_semaforo3,LOW);
int verde_semaforo1 = 2;
digitalWrite(verde_semaforo4,LOW);
int amarillo_semaforo1 = 3;
digitalWrite(rojo_semaforo4,HIGH);
int rojo_semaforo1 = 4;
digitalWrite(amarillo_semaforo4,LOW);
int verde_semaforo2 = 5;
int amarillo_semaforo2 = 6;
pinMode(verde_semaforo1,OUTPUT);
int rojo_semaforo2 = 7;
pinMode(amarillo_semaforo1,OUTPUT);
int verde_semaforo3 = 8;
pinMode(rojo_semaforo1,OUTPUT);
int amarillo_semaforo3 = 9;
pinMode(verde_semaforo2,OUTPUT);
int rojo_semaforo3 = 10;
pinMode(amarillo_semaforo2,OUTPUT);
int verde_semaforo4 = 11;
pinMode(rojo_semaforo2,OUTPUT);
int amarillo_semaforo4 = 12;
pinMode(verde_semaforo3,OUTPUT);
int rojo_semaforo4 = 13;
pinMode(amarillo_semaforo3,OUTPUT);
pinMode(rojo_semaforo3,OUTPUT);
void setup() {
pinMode(verde_semaforo4,OUTPUT);
// Inicializacin
pinMode(amarillo_semaforo4,OUTPUT);
digitalWrite(verde_semaforo1,LOW);
pinMode(rojo_semaforo4,OUTPUT);
digitalWrite(rojo_semaforo1,HIGH);
}

4
PROF. GALILEO VELAZQUEZ CANSECO
PRACTICAS DE DISEO AVANZADO 3er. PARCIAL

digitalWrite(amarillo_semaforo2,LOW);
void loop() { digitalWrite(rojo_semaforo2,LOW);
// Secuencia para semaforo 1 delay(RETARDO_VERDE);
digitalWrite(verde_semaforo1,HIGH); digitalWrite(verde_semaforo2,LOW);
digitalWrite(amarillo_semaforo1,LOW); delay(RETARDO_PARPADEO_VERDE);
digitalWrite(rojo_semaforo1,LOW); digitalWrite(verde_semaforo2,HIGH);
delay(RETARDO_VERDE); delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo1,LOW); digitalWrite(verde_semaforo2,LOW);
delay(RETARDO_PARPADEO_VERDE); delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo1,HIGH); digitalWrite(verde_semaforo2,HIGH);
delay(RETARDO_PARPADEO_VERDE); delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo1,LOW); digitalWrite(verde_semaforo2,LOW);
delay(RETARDO_PARPADEO_VERDE); delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo1,HIGH); digitalWrite(verde_semaforo2,HIGH);
delay(RETARDO_PARPADEO_VERDE); delay(RETARDO_PARPADEO_VERDE);
digitalWrite(verde_semaforo1,LOW); digitalWrite(verde_semaforo2,LOW);
delay(RETARDO_PARPADEO_VERDE); digitalWrite(amarillo_semaforo2,HIGH);
digitalWrite(verde_semaforo1,HIGH); delay(RETARDO_AMARILLO);
delay(RETARDO_PARPADEO_VERDE); digitalWrite(amarillo_semaforo2,LOW);
digitalWrite(verde_semaforo1,LOW); digitalWrite(rojo_semaforo2,HIGH);
digitalWrite(amarillo_semaforo1,HIGH);
delay(RETARDO_AMARILLO);
digitalWrite(amarillo_semaforo1,LOW); // Secuencia semaforo 3
digitalWrite(rojo_semaforo1,HIGH); digitalWrite(verde_semaforo3,HIGH);
digitalWrite(amarillo_semaforo3,LOW);
// Secuencia semaforo 2 digitalWrite(rojo_semaforo3,LOW);
digitalWrite(verde_semaforo2,HIGH); delay(RETARDO_VERDE);

5
PROF. GALILEO VELAZQUEZ CANSECO
PRACTICAS DE DISEO AVANZADO 3er. PARCIAL

digitalWrite(verde_semaforo3,LOW); delay(RETARDO_PARPADEO_VERDE);
delay(RETARDO_PARPADEO_VERDE); digitalWrite(verde_semaforo4,LOW);
digitalWrite(verde_semaforo3,HIGH); delay(RETARDO_PARPADEO_VERDE);
delay(RETARDO_PARPADEO_VERDE); digitalWrite(verde_semaforo4,HIGH);
digitalWrite(verde_semaforo3,LOW); delay(RETARDO_PARPADEO_VERDE);
delay(RETARDO_PARPADEO_VERDE); digitalWrite(verde_semaforo4,LOW);
digitalWrite(verde_semaforo3,HIGH); delay(RETARDO_PARPADEO_VERDE);
delay(RETARDO_PARPADEO_VERDE); digitalWrite(verde_semaforo4,HIGH);
digitalWrite(verde_semaforo3,LOW); delay(RETARDO_PARPADEO_VERDE);
delay(RETARDO_PARPADEO_VERDE); digitalWrite(verde_semaforo4,LOW);
digitalWrite(verde_semaforo3,HIGH); digitalWrite(amarillo_semaforo4,HIGH);
delay(RETARDO_PARPADEO_VERDE); delay(RETARDO_AMARILLO);
digitalWrite(verde_semaforo3,LOW); digitalWrite(amarillo_semaforo4,LOW);
digitalWrite(amarillo_semaforo3,HIGH); digitalWrite(rojo_semaforo4,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);

6
PROF. GALILEO VELAZQUEZ CANSECO

You might also like