/*-------------------------------------------------------------------
Tema: Semáforo de una intersección
Autor: Emilio Eduardo Montaleza Encalada
Grupo: PS1
Ejercicio:Realizar la simulación y armar el circuito para el desarrollo
de un semáforo de una intersección con paso peatonal, en donde se activa
por medio de un pulsante la intermitencia del un semáforo del amarillo
y del otro semáforo la intermitencia del rojo.
-------------------------------------------------------------------*/
//--------------------DECLARACIÓN DE VARIABLES--------------------
int pines[6]={23,22,21,19,18,17};
int vd1=23, am1=22, r1=21, r2=19, am2=18, vd2=17;
int p1=5;
//-------------------CONFIGURACIÓN DE PARÁMETROS-------------------
void setup() {
for(int i=0; i<=5; i++){
pinMode(pines[i], OUTPUT);
}
Serial.begin(9600);
Serial.println("Semáforo inicializado");
for(int i=0; i<=5; i++){
digitalWrite(pines[i],0);
}
pinMode(p1, INPUT_PULLUP);
}
//-------------------ESTRUCTURACIÓN DEL PROGRAMA-------------------
void loop() {
if(digitalRead(p1)==0){
digitalWrite(vd1, LOW);
digitalWrite(am1, HIGH);
digitalWrite(r1, LOW);
digitalWrite(vd2, LOW);
digitalWrite(am2, HIGH);
digitalWrite(r2, LOW);
delay(500);
digitalWrite(am1, LOW);
digitalWrite(r1, HIGH);
digitalWrite(am2, LOW);
digitalWrite(r2, HIGH);
delay(500);
digitalWrite(r1, LOW);
digitalWrite(vd1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(vd2, HIGH);
delay(900);
digitalWrite(vd1, LOW);
digitalWrite(am1, HIGH);
digitalWrite(vd2, LOW);
digitalWrite(am2, HIGH);
delay(500);
digitalWrite(am1, LOW);
digitalWrite(r1, HIGH);
digitalWrite(am2, LOW);
digitalWrite(r2, HIGH);
delay(500);
}else{
digitalWrite(r1,1), digitalWrite(vd2,1);
delay(900);
digitalWrite(vd2,0), digitalWrite(am2,1);
delay(500);
digitalWrite(r1,0), digitalWrite(am2,0);
digitalWrite(r2,1), digitalWrite(vd1,1);
delay(900);
digitalWrite(vd1,0),digitalWrite(am1,1);
delay(500);
digitalWrite(r2,0), digitalWrite(am1,0);
digitalWrite(r1,1), digitalWrite(vd2,1);
}
}