Display de siete segmentos con componentes reciclados

Hola Amigos, aprovechando el tiempo que tengo libre, decidí construir un Display de siete segmentos con componentes reciclados, yo se que esto no es novedad para muchos pero quizá le pueda servir algún estudiante que está iniciándose en el mundo de la electrónica, lo comparto porque me quedo muy bonito y creo que es una manera muy didáctica de aprender electrónica aplicando conceptos de la ley de ohm, practicando soldadura, y programando con Arduino.

Al display no lo llamaré gigante, aunque es mucho mas grande de lo convencional, pero este concepto se aplicaría para construir Displays mucho mas grandes como los que se ven en los marcadores deportivos,

Lo primero que hice fue reciclar los LED de un letrero que ya no servia:

1599388101435.png


luego conseguí un pedazo de madera MDF (yo se que no está muy bonita pero era la única que tenia a la mano )

1599388135973.png


luego con un bolígrafo marqué los puntos donde irían los LED:

1599388178913.png


una vez perforada la madera la lijé y coloqué los LED en paralelo haciendo grupos de cuatro en los segmentos horizontales a, d y g grupos de tres en los verticales b,c,e y f

1599388217037.png

Luego calculé la resistencia que protegería a los LED, teniendo en cuenta que el Display debe a soportar 5V, que el voltaje de forward de los LED es 2V y que la corriente recomendada por el fabricante es 20 mA

1599388278513.png

y es así como me quedó ya armado:

1599388338372.png

Esta es la vista frontal

1599388370574.png

Asegurándome que todos los LED encienden

1599388417971.png

Para test, programé un sketch en arduino:

C:
void setup() {
for (int i=2; i<9; i++)pinMode(i,OUTPUT);
digitalWrite(4,HIGH);//a
digitalWrite(7,HIGH);//b
digitalWrite(2,HIGH);//c

digitalWrite(8,HIGH);//d
digitalWrite(6,HIGH);//e
digitalWrite(3,HIGH);//f
digitalWrite(5,HIGH);//g
}

void displayNum(byte numero){
  for (int i=2; i<9; i++)digitalWrite(i,LOW);
  switch(numero){
    case 0:
    digitalWrite(4,HIGH);//a
    digitalWrite(7,HIGH);//b
    digitalWrite(2,HIGH);//c
    digitalWrite(8,HIGH);//d
    digitalWrite(6,HIGH);//e
    digitalWrite(3,HIGH);//f
    break;
    case 1:
    digitalWrite(7,HIGH);//b
    digitalWrite(2,HIGH);//c
    break;
    case 2:
    digitalWrite(4,HIGH);//a
    digitalWrite(7,HIGH);//b
    digitalWrite(8,HIGH);//d
    digitalWrite(6,HIGH);//e
    digitalWrite(5,HIGH);//g
    break;
    case 3:
    digitalWrite(4,HIGH);//a
    digitalWrite(7,HIGH);//b
    digitalWrite(2,HIGH);//c
    digitalWrite(8,HIGH);//d
    digitalWrite(5,HIGH);//g
    break;
    case 4:
    digitalWrite(7,HIGH);//b
    digitalWrite(2,HIGH);//c
    digitalWrite(3,HIGH);//f
    digitalWrite(5,HIGH);//g
    break;
    case 5:
    digitalWrite(4,HIGH);//a
    digitalWrite(2,HIGH);//c
    digitalWrite(8,HIGH);//d
    digitalWrite(3,HIGH);//f
    digitalWrite(5,HIGH);//g
    break;
    case 6:
    digitalWrite(2,HIGH);//c
    digitalWrite(8,HIGH);//d
    digitalWrite(6,HIGH);//e
    digitalWrite(3,HIGH);//f
    digitalWrite(5,HIGH);//g
    break;
    case 7:
    digitalWrite(4,HIGH);//a
    digitalWrite(7,HIGH);//b
    digitalWrite(2,HIGH);//c
    break;
    case 8:
    digitalWrite(4,HIGH);//a
    digitalWrite(7,HIGH);//b
    digitalWrite(2,HIGH);//c
    digitalWrite(8,HIGH);//d
    digitalWrite(6,HIGH);//e
    digitalWrite(3,HIGH);//f
    digitalWrite(5,HIGH);//g
    break;
    case 9:
    digitalWrite(4,HIGH);//a
    digitalWrite(7,HIGH);//b
    digitalWrite(2,HIGH);//c
    digitalWrite(3,HIGH);//f
    digitalWrite(5,HIGH);//g
    }
}



void loop() {
for(byte i=0; i<10;i++){
  displayNum(i);
  delay(500);
  }
}

finalmente comparto el vídeo de como quedó:

 
Última edición:
Arriba