const int rojo1 = 14;
const int amarillo1 = 13;
const int verde1 = 12;
const int rojo2 = 21;
const int amarillo2 = 19;
const int verde2 = 18;
const int boton = 4;
const int ledpeatonal = 2;
const int tiempo_led_peatonal = 5000; // tiempo en milisegundos que el LED peatonal estará encendido
void setup() {
pinMode(rojo1, OUTPUT);
pinMode(amarillo1, OUTPUT);
pinMode(verde1, OUTPUT);
pinMode(rojo2, OUTPUT);
pinMode(amarillo2, OUTPUT);
pinMode(verde2, OUTPUT);
pinMode(boton, INPUT);
pinMode(ledpeatonal, OUTPUT);
}
void loop() {
digitalWrite(rojo1, HIGH); // Semáforo 1 en rojo
digitalWrite(rojo2, LOW); // Semáforo 2 en rojo
if (digitalRead(boton) == LOW) {
// Si el botón no está presionado, cambiar los semáforos normalmente
digitalWrite(rojo1, HIGH);
digitalWrite(verde2, HIGH);
delay(5000);
digitalWrite(verde2, LOW);
digitalWrite(amarillo2, HIGH);
delay(3000);
digitalWrite(amarillo2, LOW);
digitalWrite(rojo1, LOW);
digitalWrite(rojo2, HIGH);
digitalWrite(verde1, HIGH);
delay(5000);
digitalWrite(verde1, LOW);
digitalWrite(amarillo1, HIGH);
delay(3000);
digitalWrite(amarillo1, LOW);
digitalWrite(rojo2, LOW);
}
else {
// Si el botón está presionado, cambiar los semáforos y encender el LED peatonal
digitalWrite(rojo1, HIGH);
digitalWrite(rojo2, HIGH);
digitalWrite(ledpeatonal, HIGH);
delay(tiempo_led_peatonal);
digitalWrite(ledpeatonal, LOW);
digitalWrite(rojo2, LOW);
digitalWrite(verde2, HIGH);
delay(5000);
digitalWrite(rojo1, HIGH);
digitalWrite(verde2, LOW);
digitalWrite(amarillo2, HIGH);
delay(3000);
digitalWrite(amarillo2, LOW);
digitalWrite(rojo2, HIGH);
digitalWrite(rojo1, LOW);
digitalWrite(verde1, HIGH);
delay(5000);
digitalWrite(verde1, LOW);
digitalWrite(amarillo1, HIGH);
delay(3000);
digitalWrite(amarillo1, LOW);
digitalWrite(rojo1, HIGH);
digitalWrite(rojo2, HIGH);
}
}