int rojo1=2;
int amarillo1=3;
int verde1=4;
int rojo2=5;
int amarillo2=6;
int verde2=7;
int boton=8;
int botonPausa=9;
bool pausa=false;
unsigned long tiempo=0;
void setup() {
pinMode(rojo1,OUTPUT);
pinMode(amarillo1,OUTPUT);
pinMode(verde1,OUTPUT);
pinMode(rojo2,OUTPUT);
pinMode(amarillo2,OUTPUT);
pinMode(verde2,OUTPUT);
pinMode(boton, INPUT);
pinMode(botonPausa, INPUT);
}
void loop() {
semaforo(1,0,0,0,0,1,5000);
semaforo(1,0,0,0,1,0,1000);
semaforo(0,0,1,1,0,0,5000);
semaforo(0,1,0,1,0,0,1000);
}
void semaforo(int r1, int a1, int v1,int r2,int a2,int v2,int retardo){
tiempo=millis();
while((millis() < tiempo+retardo)|| pausa){
digitalWrite(rojo1,r1);
digitalWrite(amarillo1,a1);
digitalWrite(verde1,v1);
digitalWrite(rojo2,r2);
digitalWrite(amarillo2,a2);
digitalWrite(verde2,v2);
if (digitalRead(boton)){
retardo=0;
delay(300);
break;
delay(300);
}
if (digitalRead(botonPausa)){
if (pausa){
pausa=false;
} else{
pausa=true;
}
digitalWrite(10,pausa);
delay(300);
}
}
}