// Incluir las librerías necesarias
#include <Arduino.h>
// Definir pines para los semáforos
const int semaforoNorteVerde = 32;
const int semaforoNorteAmarillo = 25;
const int semaforoNorteRojo = 26;
const int semaforoSurVerde = 13;
const int semaforoSurAmarillo = 12;
const int semaforoSurRojo = 14;
const int semaforoEsteVerde = 23;
const int semaforoEsteAmarillo = 18;
const int semaforoEsteRojo = 21;
const int semaforoOesteVerde = 15;
const int semaforoOesteAmarillo = 5;
const int semaforoOesteRojo = 4;
void setup() {
// Inicializar pines de semáforos como salidas
pinMode(semaforoNorteVerde, OUTPUT);
pinMode(semaforoNorteAmarillo, OUTPUT);
pinMode(semaforoNorteRojo, OUTPUT);
pinMode(semaforoSurVerde, OUTPUT);
pinMode(semaforoSurAmarillo, OUTPUT);
pinMode(semaforoSurRojo, OUTPUT);
pinMode(semaforoEsteVerde, OUTPUT);
pinMode(semaforoEsteAmarillo, OUTPUT);
pinMode(semaforoEsteRojo, OUTPUT);
pinMode(semaforoOesteVerde, OUTPUT);
pinMode(semaforoOesteAmarillo, OUTPUT);
pinMode(semaforoOesteRojo, OUTPUT);
}
void loop() {
// Ciclo de semáforos: Cambiar los semáforos en un ciclo predefinido
// Fase 1
digitalWrite(semaforoNorteVerde, LOW);
digitalWrite(semaforoNorteAmarillo, LOW);
digitalWrite(semaforoNorteRojo, HIGH);
digitalWrite(semaforoSurVerde, LOW);
digitalWrite(semaforoSurAmarillo, LOW);
digitalWrite(semaforoSurRojo, HIGH);
digitalWrite(semaforoEsteVerde, LOW);
digitalWrite(semaforoEsteAmarillo, LOW);
digitalWrite(semaforoEsteRojo, HIGH);
digitalWrite(semaforoOesteVerde, LOW);
digitalWrite(semaforoOesteAmarillo, LOW);
digitalWrite(semaforoOesteRojo, HIGH);
delay(2000); // Mantener esta fase por 2 segundos
// Fase 2
digitalWrite(semaforoNorteVerde, LOW);
digitalWrite(semaforoNorteAmarillo, HIGH);
digitalWrite(semaforoNorteRojo, HIGH);
digitalWrite(semaforoSurVerde, LOW);
digitalWrite(semaforoSurAmarillo, HIGH);
digitalWrite(semaforoSurRojo, HIGH);
digitalWrite(semaforoEsteVerde, LOW);
digitalWrite(semaforoEsteAmarillo, LOW);
digitalWrite(semaforoEsteRojo, HIGH);
digitalWrite(semaforoOesteVerde, LOW);
digitalWrite(semaforoOesteAmarillo, LOW);
digitalWrite(semaforoOesteRojo, HIGH);
delay(2000); // Mantener esta fase por 2 segundos
// Fase 3
digitalWrite(semaforoNorteVerde, HIGH);
digitalWrite(semaforoNorteAmarillo, LOW);
digitalWrite(semaforoNorteRojo, LOW);
digitalWrite(semaforoSurVerde, HIGH);
digitalWrite(semaforoSurAmarillo, LOW);
digitalWrite(semaforoSurRojo, LOW);
digitalWrite(semaforoEsteVerde, LOW);
digitalWrite(semaforoEsteAmarillo, LOW);
digitalWrite(semaforoEsteRojo, HIGH);
digitalWrite(semaforoOesteVerde, LOW);
digitalWrite(semaforoOesteAmarillo, LOW);
digitalWrite(semaforoOesteRojo, HIGH);
delay(2000); // Mantener esta fase por 5 segundos
// Fase 4
digitalWrite(semaforoNorteVerde, HIGH);
digitalWrite(semaforoNorteAmarillo, HIGH);
digitalWrite(semaforoNorteRojo, LOW);
digitalWrite(semaforoSurVerde, HIGH);
digitalWrite(semaforoSurAmarillo, HIGH);
digitalWrite(semaforoSurRojo, LOW);
digitalWrite(semaforoEsteVerde, LOW);
digitalWrite(semaforoEsteAmarillo, LOW);
digitalWrite(semaforoEsteRojo, HIGH);
digitalWrite(semaforoOesteVerde, LOW);
digitalWrite(semaforoOesteAmarillo, LOW);
digitalWrite(semaforoOesteRojo, HIGH);
delay(2000); // Mantener esta fase por 2 segundos
// Fase 5
digitalWrite(semaforoNorteVerde, LOW);
digitalWrite(semaforoNorteAmarillo, LOW);
digitalWrite(semaforoNorteRojo, HIGH);
digitalWrite(semaforoSurVerde, LOW);
digitalWrite(semaforoSurAmarillo, LOW);
digitalWrite(semaforoSurRojo, HIGH);
digitalWrite(semaforoEsteVerde, LOW);
digitalWrite(semaforoEsteAmarillo, LOW);
digitalWrite(semaforoEsteRojo, HIGH);
digitalWrite(semaforoOesteVerde, LOW);
digitalWrite(semaforoOesteAmarillo, LOW);
digitalWrite(semaforoOesteRojo, HIGH);
delay(2000); // Mantener esta fase por 2 segundos
// Fase 6
digitalWrite(semaforoNorteVerde, LOW);
digitalWrite(semaforoNorteAmarillo, LOW);
digitalWrite(semaforoNorteRojo, HIGH);
digitalWrite(semaforoSurVerde, LOW);
digitalWrite(semaforoSurAmarillo, LOW);
digitalWrite(semaforoSurRojo, HIGH);
digitalWrite(semaforoEsteVerde, LOW);
digitalWrite(semaforoEsteAmarillo, HIGH);
digitalWrite(semaforoEsteRojo, HIGH);
digitalWrite(semaforoOesteVerde, LOW);
digitalWrite(semaforoOesteAmarillo, HIGH);
digitalWrite(semaforoOesteRojo, HIGH);
delay(2000); // Mantener esta fase por 2 segundos
// Fase 7
digitalWrite(semaforoNorteVerde, LOW);
digitalWrite(semaforoNorteAmarillo, LOW);
digitalWrite(semaforoNorteRojo, HIGH);
digitalWrite(semaforoSurVerde, LOW);
digitalWrite(semaforoSurAmarillo, LOW);
digitalWrite(semaforoSurRojo, HIGH);
digitalWrite(semaforoEsteVerde, HIGH);
digitalWrite(semaforoEsteAmarillo, LOW);
digitalWrite(semaforoEsteRojo, LOW);
digitalWrite(semaforoOesteVerde, HIGH);
digitalWrite(semaforoOesteAmarillo, LOW);
digitalWrite(semaforoOesteRojo, LOW);
delay(2000); // Mantener esta fase por 2 segundos
// Fase 8
digitalWrite(semaforoNorteVerde, LOW);
digitalWrite(semaforoNorteAmarillo, LOW);
digitalWrite(semaforoNorteRojo, HIGH);
digitalWrite(semaforoSurVerde, LOW);
digitalWrite(semaforoSurAmarillo, LOW);
digitalWrite(semaforoSurRojo, HIGH);
digitalWrite(semaforoEsteVerde, HIGH);
digitalWrite(semaforoEsteAmarillo, LOW);
digitalWrite(semaforoEsteRojo, LOW);
digitalWrite(semaforoOesteVerde, HIGH);
digitalWrite(semaforoOesteAmarillo, LOW);
digitalWrite(semaforoOesteRojo, LOW);
delay(2000); // Mantener esta fase por 2 segundos
// Fase 9
digitalWrite(semaforoNorteVerde, LOW);
digitalWrite(semaforoNorteAmarillo, LOW);
digitalWrite(semaforoNorteRojo, HIGH);
digitalWrite(semaforoSurVerde, LOW);
digitalWrite(semaforoSurAmarillo, LOW);
digitalWrite(semaforoSurRojo, HIGH);
digitalWrite(semaforoEsteVerde, HIGH);
digitalWrite(semaforoEsteAmarillo, HIGH);
digitalWrite(semaforoEsteRojo, LOW);
digitalWrite(semaforoOesteVerde, HIGH);
digitalWrite(semaforoOesteAmarillo, HIGH);
digitalWrite(semaforoOesteRojo, LOW);
delay(2000); // Mantener esta fase por 2 segundos
}