//Semáforo 1
const int LED_VERDE = 2;
const int LED_AMARILLO = 4;
const int LED_ROJO = 0;
//Semáforo 2
const int LED_VERDE1 = 16;
const int LED_AMARILLO1 = 17;
const int LED_ROJO1 = 5;
//Semáforo peatonal 1
const int LEDP_VERDE = 22;
const int LEDP_ROJO = 23;
//Semáforo peatonal 2
const int LEDP_VERDE1 = 19;
const int LEDP_ROJO1 = 18;
//Pulsadores
const int PULSADOR = 21;
const int PULSADOR1 = 15;
int estadoPulsador = 0;
#define RED_DURATION 3000 // Duración en milisegundos del semáforo en rojo
#define YELLOW_DURATION 1000 // Duración en milisegundos del semáforo en amarillo
#define GREEN_DURATION 3000 // Duración en milisegundos del semáforo en verde
void setup() {
pinMode(LED_ROJO, OUTPUT);
pinMode(LED_AMARILLO, OUTPUT);
pinMode(LED_VERDE, OUTPUT);
pinMode(LED_ROJO1, OUTPUT);
pinMode(LED_AMARILLO1, OUTPUT);
pinMode(LED_VERDE1, OUTPUT);
pinMode(LEDP_VERDE, OUTPUT);
pinMode(LEDP_ROJO, OUTPUT);
pinMode(LEDP_VERDE1, OUTPUT);
pinMode(LEDP_ROJO1, OUTPUT);
pinMode(PULSADOR, INPUT);
pinMode(PULSADOR1, INPUT);
}
void loop() {
digitalWrite(LED_VERDE, HIGH);
digitalWrite(LED_ROJO, LOW);
digitalWrite(LED_AMARILLO, LOW);
digitalWrite(LED_ROJO1, HIGH);
digitalWrite(LED_VERDE1, LOW);
digitalWrite(LED_AMARILLO1, LOW);
digitalWrite(LEDP_VERDE, LOW);
digitalWrite(LEDP_ROJO, HIGH);
digitalWrite(LEDP_VERDE1, LOW);
digitalWrite(LEDP_ROJO1, HIGH);
delay(GREEN_DURATION);
// Semáforo 1: Amarillo
digitalWrite(LED_VERDE, LOW);
digitalWrite(LED_AMARILLO, HIGH);
digitalWrite(LEDP_VERDE, LOW);
digitalWrite(LEDP_ROJO, HIGH);
digitalWrite(LEDP_VERDE1, LOW);
digitalWrite(LEDP_ROJO1, HIGH);
delay(YELLOW_DURATION);
// Semáforo 1: Rojo, Semáforo 2: Verde
digitalWrite(LED_AMARILLO, LOW);
digitalWrite(LED_ROJO, HIGH);
digitalWrite(LED_VERDE1, HIGH);
digitalWrite(LED_ROJO1, LOW);
digitalWrite(LED_AMARILLO1, LOW);
digitalWrite(LEDP_VERDE, LOW);
digitalWrite(LEDP_ROJO, HIGH);
digitalWrite(LEDP_VERDE1, LOW);
digitalWrite(LEDP_ROJO1, HIGH);
delay(RED_DURATION);
// Semáforo 2: Amarillo
digitalWrite(LED_VERDE1, LOW);
digitalWrite(LED_AMARILLO1, HIGH);
digitalWrite(LEDP_VERDE, LOW);
digitalWrite(LEDP_ROJO, HIGH);
digitalWrite(LEDP_VERDE1, LOW);
digitalWrite(LEDP_ROJO1, HIGH);
delay(YELLOW_DURATION);
if (digitalRead(PULSADOR) == HIGH) {
digitalWrite(LED_VERDE, LOW);
digitalWrite(LED_AMARILLO, LOW);
digitalWrite(LED_ROJO, LOW);
digitalWrite(LEDP_VERDE, LOW);
digitalWrite(LEDP_ROJO, LOW);
delay(YELLOW_DURATION);
digitalWrite(LED_VERDE, HIGH);
digitalWrite(LED_ROJO, LOW);
digitalWrite(LED_AMARILLO, LOW);
digitalWrite(LEDP_VERDE, LOW);
digitalWrite(LEDP_ROJO, HIGH);
delay(GREEN_DURATION);
digitalWrite(LED_VERDE, LOW);
digitalWrite(LED_AMARILLO, HIGH);
delay(YELLOW_DURATION);
digitalWrite(LED_AMARILLO, LOW);
digitalWrite(LED_ROJO, HIGH);
digitalWrite(LEDP_VERDE, HIGH);
digitalWrite(LEDP_ROJO, LOW);
delay(5000);
}
if (digitalRead(PULSADOR1) == HIGH) {
digitalWrite(LED_VERDE1, LOW);
digitalWrite(LED_AMARILLO1, LOW);
digitalWrite(LED_ROJO1, LOW);
digitalWrite(LEDP_VERDE1, LOW);
digitalWrite(LEDP_ROJO1, LOW);
delay(YELLOW_DURATION);
digitalWrite(LED_VERDE1, HIGH);
digitalWrite(LED_ROJO1, LOW);
digitalWrite(LED_AMARILLO1, LOW);
digitalWrite(LEDP_VERDE1, LOW);
digitalWrite(LEDP_ROJO1, HIGH);
delay(GREEN_DURATION);
digitalWrite(LED_VERDE1, LOW);
digitalWrite(LED_AMARILLO1, HIGH);
delay(YELLOW_DURATION);
digitalWrite(LED_AMARILLO1, LOW);
digitalWrite(LED_ROJO1, HIGH);
digitalWrite(LEDP_VERDE1, HIGH);
digitalWrite(LEDP_ROJO1, LOW);
delay(5000);
}
}