//Programa para el funcionamiento de un display de 7 segmentos
//Declaramos la variable para los pines de salida:
const int display[7] = {0, 4, 16, 17, 5, 18, 19};
//Formamos los números de acuerdo a los segmentos
const bool digitos[10][7] = {
{0, 0, 0, 0, 0, 0, 1}, // 0
{1, 0, 0, 1, 1, 1, 1}, // 1
{0, 0, 1, 0, 0, 1, 0}, // 2
{0, 0, 0, 0, 1, 1, 0}, // 3
{1, 0, 0, 1, 1, 0, 0}, // 4
{0, 1, 0, 0, 1, 0, 0}, // 5
{0, 1, 0, 0, 0, 0, 0}, // 6
{0, 0, 0, 1, 1, 1, 1}, // 7
{0, 0, 0, 0, 0, 0, 0}, // 8
{0, 0, 0, 0, 1, 0, 0} // 9
};
//Configuramos la secuencia a mostrar
const int secuencia[] = {1, 0, 1, 5, 1, 8, 7, 5}; //Secuencia correspondiente a JORGE
const int arraySecuencia = sizeof(secuencia) / sizeof(secuencia[0]);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(0, OUTPUT); //Segmento a
pinMode(4, OUTPUT); //Segmento b
pinMode(16, OUTPUT); //Segmento c
pinMode(17, OUTPUT); //Segmento d
pinMode(5, OUTPUT); //Segmento e
pinMode(18, OUTPUT); //Segmento f
pinMode(19, OUTPUT); //Segmento g
for(int i=0; i<7; i++)
{
digitalWrite(display[i], HIGH);
}
}
void loop()
{
//Debemos mostrar los números: 1,0,1,5,1,8,7,5
for (int i=0; i < arraySecuencia; i++)
{
displayDigit(secuencia[i]);
delay(1000);
}
}
void displayDigit(int number)
{
for(int i=0; i<7; i++)
{
digitalWrite(display[i], HIGH);
}
delay(100);
for(int i=0; i < 7; i++)
{
digitalWrite(display[i], digitos[number][i]);
}
}