int vv=1,av=2,rv=3,vp=4,rp=5;
int a=6,b=7,c=8,d=9, e=10, f=11, g=12;
int tiempo=1300;
int tiempo2=1000;
void setup() {
//Para monitorear en consola
//si el botón esta activado o no
Serial.begin(9600);
//Inicializar pin del botón
//Este botón servirá para encender el semáforo peatonal
pinMode(13, INPUT);
//Inicializar focos del semáforo vehícular
pinMode(vv, OUTPUT);
pinMode(av, OUTPUT);
pinMode(rv, OUTPUT);
//Inicializar focos del semáforo peatonal
pinMode(vp, OUTPUT);
pinMode(rp, OUTPUT);
//Inicializar display del temporizador semáforo peatón
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
}
void loop() {
//El siguiente código es porque siempre siempre
//Semáforo Vehículo=verde
//Semáforo peatón=rojo
//Semáforo del vehículo en verde
digitalWrite(vv, HIGH);
digitalWrite(av, LOW);
digitalWrite(rv, LOW);
//Semáforo del peatón en rojo
digitalWrite(vp,LOW);
digitalWrite(rp,HIGH);
//Si el peatón presiona el botón del semáforo peatón
//Deben cambiar los semáforos
//Para que el peatón pueda pasar
if(digitalRead(13)==HIGH)
{
// Para ver en consola si está activandose el botón
Serial.println(digitalRead(13));
//Semáforo del vehículo parpadea el verde
digitalWrite(vv, LOW);
digitalWrite(av, LOW);
digitalWrite(rv, LOW);
delay (500);
digitalWrite(vv, HIGH);
digitalWrite(av, LOW);
digitalWrite(rv, LOW);
delay (500);
digitalWrite(vv, LOW);
digitalWrite(av, LOW);
digitalWrite(rv, LOW);
delay (500);
digitalWrite(vv, HIGH);
digitalWrite(av, LOW);
digitalWrite(rv, LOW);
delay (500);
digitalWrite(vv, LOW);
digitalWrite(av, LOW);
digitalWrite(rv, LOW);
delay (500);
digitalWrite(vv, HIGH);
digitalWrite(av, LOW);
digitalWrite(rv, LOW);
delay (500);
digitalWrite(vv, LOW);
digitalWrite(av, LOW);
digitalWrite(rv, LOW);
delay (500);
digitalWrite(vv, HIGH);
digitalWrite(av, LOW);
digitalWrite(rv, LOW);
delay (500);
//Semáforo del vehículo el verde se apaga
digitalWrite(vv, LOW);
digitalWrite(av, LOW);
digitalWrite(rv, LOW);
delay (500);
digitalWrite(vv, HIGH);
digitalWrite(av, LOW);
digitalWrite(rv, LOW);
delay (500);
//Semáforo del vehículo el verde se apaga
digitalWrite(vv, LOW);
digitalWrite(av, LOW);
digitalWrite(rv, LOW);
delay (500);
//Semáforo del vehículo el ambar se enciende
digitalWrite(vv, LOW);
digitalWrite(av, HIGH);
digitalWrite(rv, LOW);
delay (3000);
//Carros se detienen y el peatón tiene 9 segundos para pasar
//Semáforo del vehículo en rojo
digitalWrite(vv, LOW);
digitalWrite(av, LOW);
digitalWrite(rv, HIGH);
//Semáforo del peatón en verde
digitalWrite(vp,HIGH);
digitalWrite(rp,LOW);
delay(500);
//Se activa el display del segundero
//Con el tiempo del peatón para cruzar
//El conteo es del 9 al cero... hacia atrás
//NUEVE
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
delay(tiempo); // Tiempo de pausa entre cada número asignado como variable al inicio
//OCHO
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
delay(tiempo); // Tiempo de pausa entre cada número asignado como variable al inicio
//SIETE
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
delay(tiempo); // Tiempo de pausa entre cada número asignado como variable al inicio
//SEIS
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
delay(tiempo); // Tiempo de pausa entre cada número asignado como variable al inicio
//CINCO
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
delay(tiempo); // Tiempo de pausa entre cada número asignado como variable al inicio
//CUATRO
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
delay(tiempo2); // Tiempo de pausa entre cada número asignado como variable al inicio
//TRES
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
delay(tiempo2); // Tiempo de pausa entre cada número asignado como variable al inicio
//DOS
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
delay(tiempo2); // Tiempo de pausa entre cada número asignado como variable al inicio
//UNO
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
delay(tiempo2); // Tiempo de pausa entre cada número asignado como variable al inicio
//CERO
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
delay(tiempo2); // Tiempo de pausa entre cada número asignado como variable al inicio
//APAGADO
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
delay(tiempo2); // Tiempo de pausa entre cada número asignado como variable al inicio
} //Se cierra el if que se activo cuando
//el peatón pulso botón para poder cruzar
} //Se cierra el bucle principal, que se está repitiendo