// Declaramos el pin al que estará conectado cada led
const int pinrojo=27;
const int pinamarillo=14;
const int pinverde=12;
const int pulsadorblanco=26;
// Declaramos el pin al que estará conectado al pulsador
const int pulsador=15;
// Declaramos el pin al que estará conectado el potenciometro
const int AnalogIntput=36;
//Declaramos los pines de salida,
const int a = 22;
const int b = 23;
const int c = 18;
const int d = 19;
const int e = 21;
const int f = 4;
const int g = 5;
//Declaramos el area de definicion de cada funcion
void Parpadeo (int repeticiones, int retardo)
{
for(int i = 0; i<=repeticiones; i++)
{
digitalWrite(pinverde, HIGH);
delay(retardo);
digitalWrite(pinverde, LOW);
delay(retardo);
}
}
void Amarillo_ON(void)
{
digitalWrite(pinverde, HIGH);
digitalWrite(pinamarillo, LOW);
digitalWrite(pinrojo, HIGH);
delay(700);
}
void escribirEnElDisplay(int va, int vb, int vc, int vd, int ve, int vf, int vg)
{
digitalWrite(a,va);
digitalWrite(b,vb);
digitalWrite(c,vc);
digitalWrite(d,vd);
digitalWrite(e,ve);
digitalWrite(f,vf);
digitalWrite(g,vg);
}//Escribir display
void desplegador_7seg(int cuenta)
{
switch(cuenta)
{
case 0:
escribirEnElDisplay(0,0,0,0,0,0,1);
break;
case 1:
escribirEnElDisplay(1,0,0,1,1,1,1);
break;
case 2:
escribirEnElDisplay(0,0,1,0,0,1,0);
break;
case 3:
escribirEnElDisplay(0,0,0,0,1,1,0);
break;
case 4:
escribirEnElDisplay(1,0,0,1,1,0,0);
break;
case 5:
escribirEnElDisplay(0,1,0,0,1,0,0);
break;
case 6:
escribirEnElDisplay(0,1,0,0,0,0,0);
break;
case 7:
escribirEnElDisplay(0,0,0,1,1,1,1);
break;
case 8:
escribirEnElDisplay(0,0,0,0,0,0,0);
break;
case 9:
escribirEnElDisplay(0,0,0,0,1,0,0);
break;
default:
break;
}
///Fin del Switch
}
//Fin de desplegador
void Conteo()
{
for (int k=9; k>=0;k--)
{
Serial.println(k);
desplegador_7seg(k);
int Aval = analogRead(AnalogIntput);
delay( Aval);
}
//Fin de for
}
//Fin del conteo
void led_ON (int Color, int retardo)
{
digitalWrite(pinverde, HIGH);
digitalWrite(pinamarillo, HIGH);
digitalWrite(pinrojo, HIGH);
switch(Color)
{
case pinverde:
digitalWrite(pinverde, LOW);
delay(retardo);
break;
case pinamarillo:
digitalWrite(pinamarillo, LOW);
delay(retardo);
break;
case pinrojo:
digitalWrite(pinrojo, LOW);
Conteo();
//delay(retardo);
break;
default:
break;
}
}
//Iniciamos los pines del ESP32
void setup()
{
Serial.begin(115200);
Serial.println("Hola ingenieros!");
pinMode(pinverde, OUTPUT);
pinMode(pinamarillo, OUTPUT);
pinMode(pinrojo, OUTPUT);
pinMode(pulsador, INPUT);
pinMode(pulsadorblanco, OUTPUT);
//Pines de 7seg
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
}
//Proceso que se repetira indefinidamente
void loop()
{
led_ON(pinverde,250);
int val = digitalRead(pulsador);
digitalWrite(pulsadorblanco, val);
if(val == LOW)
{
Parpadeo(5, 350);
led_ON(pinamarillo,1000);
led_ON(pinrojo,2000);
}
}