//Parpadeo
int LED_BUILTIN = 14, x = 12;
//Contador Decimal
int e =27;
int leds [] = {32,33,25,26};
int i;
// Semaforo 1
#define R1 4 // Pin del LED rojo del semáforo 1
#define Y1 2 // Pin del LED amarillo del semáforo 1
#define G1 15 // Pin del LED verde del semáforo 1
//Semaforo 2
#define R2 19 // Pin del LED rojo del semáforo 2
#define Y2 18 // Pin del LED amarillo del semáforo 2
#define G2 5 // Pin del LED verde del semáforo 2
// BOTONES
void setup(){
pinMode(LED_BUILTIN, OUTPUT);
pinMode(x, OUTPUT);
//Semaforo
pinMode(R1, OUTPUT);
pinMode(Y1, OUTPUT);
pinMode(G1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(Y2, OUTPUT);
pinMode(G2, OUTPUT);
//Dip-Swich
//Contador
pinMode(e, INPUT);
for(i=0 ; i<=4; i++)
{
pinMode(leds [i], OUTPUT);
}
}
void loop(){
///Codgo de Todo
Parpadeo();
delay(2000);
Semaforos();
delay(2000);
ContadorD();
}
void Semaforos(){
digitalWrite(G1, HIGH);
digitalWrite(R2,HIGH);
delay(5000);
Gp();
digitalWrite(Y1, HIGH);
digitalWrite(G1, LOW);
delay(2000);
digitalWrite(Y1, LOW);
digitalWrite(R1, HIGH);
digitalWrite(R2, LOW);
digitalWrite(G2, HIGH);
delay(5000);
Gp2();
digitalWrite(G2, LOW);
digitalWrite(Y2, HIGH);
delay(2000);
digitalWrite(Y2, LOW);
digitalWrite(R1, LOW);
}
void Gp(){
delay(400);
digitalWrite(G1, HIGH);
delay(400);
digitalWrite(G1, LOW);
delay(400);
digitalWrite(G1,HIGH);
delay(400);
digitalWrite(G1, LOW);
delay(400);
digitalWrite(G1, HIGH);
}
void Gp2(){
delay(400);
digitalWrite(G2, HIGH);
delay(400);
digitalWrite(G2, LOW);
delay(400);
digitalWrite(G2,HIGH);
delay(400);
digitalWrite(G2, LOW);
delay(400);
digitalWrite(G2, HIGH);
}
void Parpadeo(){
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(x, LOW);
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
digitalWrite(x, HIGH);
delay(1000);
digitalWrite(x, LOW);
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(x, LOW);
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
digitalWrite(x, HIGH);
delay(1000);
digitalWrite(x, LOW);
}
void ContadorD(){
int contador =0 ;
while (true)
{
if(digitalRead(e)== LOW)
{
delay(20);
if(digitalRead(e)== HIGH)
{
digitalWrite(leds[contador], HIGH);
delay(500);
contador ++;
if(contador==5)
{
contador = 0;
for(i=4;i>=0;i--)
{
digitalWrite(leds[i], LOW);
}
}
}
}
}
}