int LEDS[]={15,2,4, 16,17,5, 18,19,21};
// 0,1,2 3,4,5 6,7,8
// V,A,R R,A,V V,A,R
byte u=0;
int Peat = 22;
const byte PinInterrupcion = T4;
int tiempo = 10000; //Tiempo antes de que el amarillo empiece a parpadear jeje
const int sensibilidad=30;
byte A = 0;
byte B=0;
void setup(){
Serial.begin(115200);
pinMode(Peat, OUTPUT);
for (byte i=0; i<9; i++){
pinMode(LEDS[i], OUTPUT);
digitalWrite(LEDS[i], LOW);
}
pinMode(PinInterrupcion, INPUT_PULLUP);
touchAttachInterrupt(PinInterrupcion, Falla, sensibilidad);
}
void loop(){
switch(A){
case 0:
// INICIA CON B
Serial.println(A);
digitalWrite(Peat, LOW);
digitalWrite(LEDS[0], LOW); // Verde del C
digitalWrite(LEDS[1], LOW); // Amarillo del C
digitalWrite(LEDS[2], HIGH); // Rojo del C
Serial.println("ROJO DEL C");
digitalWrite(LEDS[3], LOW); // Rojo del B
digitalWrite(LEDS[4], LOW); // Amarillo del B
digitalWrite(LEDS[5], HIGH); // Verde del B
Serial.println("VERDE DEL B");
digitalWrite(LEDS[6], LOW); // Verde del A
digitalWrite(LEDS[7], LOW); // Amarillo del A
digitalWrite(LEDS[8], HIGH); // Rojo del A
Serial.println("ROJO DEL A");
delay(tiempo);
// PARPADEO DEL AMARILLO
digitalWrite(LEDS[4], HIGH); // Amarillo del B
Serial.println("AMARILLO DEL B");
delay(500);
digitalWrite(LEDS[4], LOW); // Amarillo del B
delay(500);
digitalWrite(LEDS[4], HIGH); // Amarillo del B
Serial.println("AMARILLO DEL B");
delay(500);
digitalWrite(LEDS[4], LOW); // Amarillo del B
delay(500);
digitalWrite(LEDS[4], HIGH); // Amarillo del B
Serial.println("AMARILLO DEL B");
delay(500);
//CAMBIO
digitalWrite(LEDS[5], LOW); // Verde del B
digitalWrite(LEDS[4], LOW); // Amarillo del B
digitalWrite(LEDS[3], HIGH); // Rojo del B
A++;
B++;
break;
case 1:
// LUEGO SIGUE A
Serial.println(A);
digitalWrite(LEDS[0], LOW); // Verde del C
digitalWrite(LEDS[1], LOW); // Amarillo del C
digitalWrite(LEDS[2], HIGH); // Rojo del C
Serial.println("ROJO DEL C");
digitalWrite(LEDS[3], HIGH); // Rojo del B
digitalWrite(LEDS[4], LOW); // Amarillo del B
digitalWrite(LEDS[5], LOW); // Verde del B
Serial.println("ROJO DEL B");
digitalWrite(LEDS[6], HIGH); // Verde del A
digitalWrite(LEDS[7], LOW); // Amarillo del A
digitalWrite(LEDS[8], LOW); // Rojo del A
Serial.println("VERDE DEL A");
delay(tiempo);
// PARPADEO DEL AMARILLO
digitalWrite(LEDS[7], HIGH); // Amarillo del A
Serial.println("AMARILLO DEL A");
delay(500);
digitalWrite(LEDS[7], LOW); // Amarillo del A
delay(500);
digitalWrite(LEDS[7], HIGH); // Amarillo del A
Serial.println("AMARILLO DEL A");
delay(500);
digitalWrite(LEDS[7], LOW); // Amarillo del A
delay(500);
digitalWrite(LEDS[7], HIGH); // Amarillo del A
Serial.println("AMARILLO DEL A");
delay(500);
digitalWrite(LEDS[7], LOW); // Amarillo del A
//CAMBIO
digitalWrite(LEDS[6], LOW); // Verde del A
digitalWrite(LEDS[7], LOW); // Amarillo del A
digitalWrite(LEDS[8], HIGH); // Rojo del A
A++;
B++;
break;
case 2:
// AL final C
Serial.println(A);
digitalWrite(LEDS[0], HIGH); // Verde del C
digitalWrite(LEDS[1], LOW); // Amarillo del C
digitalWrite(LEDS[2], LOW); // Rojo del C
Serial.println("VERDE DEL C");
digitalWrite(LEDS[3], HIGH); // Rojo del B
digitalWrite(LEDS[4], LOW); // Amarillo del B
digitalWrite(LEDS[5], LOW); // Verde del B
Serial.println("ROJO DEL B");
digitalWrite(LEDS[6], LOW); // Verde del A
digitalWrite(LEDS[7], LOW); // Amarillo del A
digitalWrite(LEDS[8], HIGH); // Rojo del A
Serial.println("ROJO DEL A");
delay(tiempo);
// PARPADEO DEL AMARILLO
digitalWrite(LEDS[1], HIGH); // Amarillo del C
Serial.println("AMARILLO DEL C");
delay(500);
digitalWrite(LEDS[1], LOW); // Amarillo del C
delay(500);
digitalWrite(LEDS[1], HIGH); // Amarillo del C
Serial.println("AMARILLO DEL C");
delay(500);
digitalWrite(LEDS[1], LOW); // Amarillo del C
delay(500);
digitalWrite(LEDS[1], HIGH); // Amarillo del C
Serial.println("AMARILLO DEL C");
delay(500);
//CAMBIO
digitalWrite(LEDS[0], LOW); // Verde del C
digitalWrite(LEDS[1], LOW); // Amarillo del C
digitalWrite(LEDS[2], HIGH); // Rojo del C
A++;
B++;
break;
case 3:
A=0;
B=0;
break;
default:
Serial.println(A);
digitalWrite(Peat, HIGH);
Serial.println("PEATON");
delay(tiempo);
digitalWrite(Peat, LOW);
delay(500);
digitalWrite(Peat, HIGH);
Serial.println("PEATON");
delay(500);
digitalWrite(Peat, LOW);
delay(500);
digitalWrite(Peat, HIGH);
Serial.println("PEATON");
delay(500);
digitalWrite(Peat, LOW);
delay(500);
digitalWrite(Peat, HIGH);
Serial.println("PEATON");
delay(500);
digitalWrite(Peat, LOW);
A=B;
break;
}
}
void Falla(){
A=A+4;
Serial.println(A);
Serial.println("Interrucion!!");
}