#define OUT_P1 2
#define IN_P1 3
#define GREEN_LED 13
#define OUT_P2 5
#define IN_P2 6
#define AMBAR_LED 7
#define RED_LED 8 // Definir el pin para RED_LED
int estadoP1, estadoP1Ant = 0;
int estadoP2, estadoP2Ant = 0;
void setup() {
Serial.begin(9600);
// configuracion INICIAL de los pines
pinMode(OUT_P1, OUTPUT); // Configura el pin 2 como salida
pinMode(OUT_P2, OUTPUT); // Configura el pin 5 como salida
digitalWrite(OUT_P1, HIGH); // Envía señal HIGH por el pin 2
digitalWrite(OUT_P2, HIGH); // Envía señal HIGH por el pin 5
pinMode(IN_P1, INPUT); // Configura el pin 3 como entrada con resistencia pull-down
pinMode(IN_P2, INPUT); // Configuracion el pin 6 como entrada con resistencia pull-down
pinMode(GREEN_LED, OUTPUT); // Configura el pin 4 como salida
pinMode(AMBAR_LED, OUTPUT); // Configura el pin 7 como salida
pinMode(RED_LED, OUTPUT); // Configura el pin 8 como salida
Serial.println("OUT_P1 (2) and OUT_P2 (5) set to HIGH at startup"); // Mensaje para indicar el estado inicial
}
void loop() {
estadoP1 = digitalRead(IN_P1);
estadoP2 = digitalRead(IN_P2);
if (estadoP1 != estadoP1Ant ) {
Serial.println(estadoP1?"P1 ON ":"P1 OFF");
estadoP1Ant = estadoP1;
}
if (estadoP2 != estadoP2Ant ) {
Serial.println(estadoP2?"P2 ON ":"P2 OFF");
estadoP2Ant = estadoP2;
}
/*
P1 P2 V A R
1 1 1 0 0
1 0 1 1 1
0 1 0 1 0
0 0 0 0 1
*/
if (estadoP1 && estadoP2) {
digitalWrite(GREEN_LED, HIGH); // Enciende el LED verde
digitalWrite(AMBAR_LED, LOW);
digitalWrite(RED_LED, LOW);
} else if (estadoP1 && !estadoP2) {
digitalWrite(GREEN_LED, HIGH); // Enciende el LED verde
digitalWrite(AMBAR_LED, HIGH);
digitalWrite(RED_LED, HIGH);
} else if (!estadoP1 && estadoP2) {
digitalWrite(GREEN_LED, LOW); // Enciende el LED verde
digitalWrite(AMBAR_LED, HIGH);
digitalWrite(RED_LED, LOW);
} else if (!estadoP1 && !estadoP2) {
digitalWrite(GREEN_LED, LOW); // Enciende el LED verde
digitalWrite(AMBAR_LED, LOW);
digitalWrite(RED_LED, HIGH);
}
}