//ENTRADAS
int R1 = 12;
int AM1 = 13;
int V1 = 14;
int R2 = 2;
int AM2 = 4;
int V2 = 5;
int PEA = 27;
const int BOTONS = 15;
const int BOTONP = 16;
const int BOTONPEA = 17;
int A = 0;
int B = 0;
//INICIALIZAR SALIDAS DE LAS VARIABLES
void setup() {
pinMode(R1,OUTPUT);
pinMode(AM1,OUTPUT);
pinMode(V1,OUTPUT);
pinMode(R2,OUTPUT);
pinMode(AM2,OUTPUT);
pinMode(V2,OUTPUT);
pinMode(PEA,OUTPUT);
pinMode(BOTONS, INPUT);
pinMode(BOTONP, INPUT_PULLUP);
pinMode(BOTONPEA, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(BOTONP), PARO, RISING);
attachInterrupt(digitalPinToInterrupt(BOTONPEA), PASO, RISING);
}
void loop() {
//COLOCAR LOS VALORES INICIALES DE LOS SEMAFOROS
digitalWrite(R1,LOW);
digitalWrite(AM1,LOW);
digitalWrite(V1,LOW);
digitalWrite(R2,LOW);
digitalWrite(AM2,LOW);
digitalWrite(V2,LOW);
while (digitalRead(BOTONS) == HIGH) { //MIENTRAS NO SE PRESIONE EL BOTON SE MANTENDRAN LOS VALORES ANTERIORES
if(A == 0 && B == 0) {
//PRIMER SEMAFORO
digitalWrite(R1,HIGH);
digitalWrite(AM1,LOW);
digitalWrite(V1,LOW);
digitalWrite(R2,LOW);
digitalWrite(AM2,LOW);
digitalWrite(V2,HIGH);
digitalWrite(PEA,LOW);
delay(3000);
//PARPADEO VERDE
for(int j=0;j<=3;j++)
{
delay(500);
digitalWrite(V2,LOW);
delay(500);
digitalWrite(V2,HIGH);
}
//CAMBIO ENTRE EL PRIMER Y SEGUNDO SEMAFORO
digitalWrite(AM2,HIGH);
digitalWrite(V2,LOW);
delay(1000);
//SEGUNDO SEMAFORO
digitalWrite(R1,LOW);
digitalWrite(AM1,LOW);
digitalWrite(V1,HIGH);
digitalWrite(R2,HIGH);
digitalWrite(AM2,LOW);
digitalWrite(V2,LOW);
delay(3000);
//PARPADEO VERDE
for(int j=0;j<=3;j++)
{
delay(500);
digitalWrite(V1,LOW);
delay(500);
digitalWrite(V1,HIGH);
}
//CAMBIO ENTRE PRIMER Y SEGUNDO SEMAFORO
digitalWrite(AM1,HIGH);
digitalWrite(V1,LOW);
delay(1000);
}
else if (A == 1) {
digitalWrite(R1,LOW);
digitalWrite(AM1,HIGH);
digitalWrite(V1,LOW);
digitalWrite(R2,LOW);
digitalWrite(AM2,HIGH);
digitalWrite(V2,LOW);
//PARPADEO AMARILLO
for(int j=0;j<=10;j++)
{
delay(500);
digitalWrite(AM1,LOW);
digitalWrite(AM2,LOW);
delay(500);
digitalWrite(AM1,HIGH);
digitalWrite(AM2,HIGH);
}
A = 0;
B = 0;
digitalWrite(BOTONS,HIGH);
}
if (B == 1) {
digitalWrite(PEA,HIGH);
digitalWrite(R1,HIGH);
digitalWrite(AM1,LOW);
digitalWrite(V1,LOW);
digitalWrite(R2,HIGH);
digitalWrite(AM2,LOW);
digitalWrite(V2,LOW);
delay(5000);
//PARPADEO PEATON
for(int j=0;j<=3;j++)
{
delay(500);
digitalWrite(PEA,LOW);
delay(500);
digitalWrite(PEA,HIGH);
}
A = 0;
B = 0;
digitalWrite(BOTONS,HIGH);
}
}
}
void PARO () {
A = 1;
}
void PASO () {
B = 1;
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4