// Iniciando con NOde-MCU
// Contador con display de 7segmentos
// DHL-14/02/2024
int e = 23;
int leds[] = {19, 18, 5, 17, 16, 4, 0};
int i;
int contador = 0;
void encender(int a, int b, int c, int d, int e, int f, int g)
{
//Función que permite mostrar los números del 0 al 9
//Asigna un segmento del display a cada pin
digitalWrite(19, a); //Asigna el segmento 'a' al pin 19
digitalWrite(18, b); //Asigna el segmento 'b' al pin 18
digitalWrite(5, c); //Asigna el segmento 'c' al pin 5
digitalWrite(17, d); //Asigna el segmento 'd' al pin 17
digitalWrite(16, e); //Asigna el segmento 'e' al pin 16
digitalWrite(4, f); //Asigna el segmento 'f' al pin 4
digitalWrite(0, g); //Asigna el segmento 'g' al pin 0
}
void setup() {
pinMode(e, INPUT);
for(i=0; i<=6; i++)
{
pinMode(leds[i], OUTPUT);
}
}
//Lógica de funcionamiemto del sistema
void loop() {
if(digitalRead(e) == LOW)
{
delay(20);
if(digitalRead(e) == HIGH)
{
contador++;
delay(200);
if(contador > 9)
contador = 0;
}
}
switch (contador)
{
//Dependiendo del contador, se muestra el número indicado
//Envia estados (1 y 0) al display dependiendo del número a mostrar
case 0:
encender (1, 1, 1, 1, 1, 1, 0); //Muestra el número 0
break;
case 1:
encender (0, 1, 1, 0, 0, 0, 0); //Muestra el número 1
break;
case 2:
encender (1, 1, 0, 1, 1, 0, 1); //Muestra el número 2
break;
case 3:
encender (1, 1, 1, 1, 0, 0, 1); //Muestra el número 3
break;
case 4:
encender (0, 1, 1, 0, 0, 1, 1); //Muestra el número 4
break;
case 5:
encender (1, 0, 1, 1, 0, 1, 1); //Muestra el número 5
break;
case 6:
encender (1, 0, 1, 1, 1, 1, 1); //Muestra el número 6
break;
case 7:
encender (1, 1, 1, 0, 0, 0, 0); //Muestra el número 7
break;
case 8:
encender (1, 1, 1, 1, 1, 1, 1); //Muestra el número 8
break;
case 9:
encender (1, 1, 1, 0, 0, 1, 1); //Muestra el número 9
break;
}
}