Seleccionar página
< Todos los temas
Imprimir

Display de 7 segmentos 3 dígitos

Este display es una muy opción para mostrar números y ciertas letras con buena visibilidad y con un toque retro. Se compone de 8 leds por dígito con 7 segmentos y un punto.

La conexión es ciertamente intrincada pero es posible si disponemos de 9 pines digitales de salida:

  • A, B, C, D, E, F, G y DP van a los pines de la placa con una resistencia mínima de 220 ohm en cada una.
  • GND para cada dígito usando un transistor NPN.

En cada transistor 2N3904 debe haber una resistencia de 1K en la pata central de señal y conectar las patas extremas a GND y al pin del dígito.

Precauciones

  • No conectar este display sin usar resitencias y transistores o la placa se quemará.
  • Mínimo 220 ohm por LED.

Código para detección de blanco y negro:

Código:

Definimos todos los pines del display y variable conteo:

const int segs[7] = {41, 43, 45, 47, 49, 51, 53};
byte conteo = 0;

Creamos un array bidimensional con los números para mostrar según la posición de cada segmento:

const byte digits[11][7] = {
// A B C D E F G
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1

Ponemos como salida todos los pines incluido los dos dígitos a utilizar:

for (int i = 0; i < 7; i++) {
pinMode(segs[i], OUTPUT);
}
pinMode(37, OUTPUT);
pinMode(39, OUTPUT);

Simplemente leemos por serial un número de uno o dos dígitos y lo actualizamos en conteo:

if (ms.length() <= 2 && isDigit(ms[0])) {
conteo = ms.toInt();
}

En el void muestraNum actualizamos constatemente los números:

void muestraNum() {
if (conteo < 10) {
digitalWrite(39, LOW);
digitalWrite(37, LOW);
for (int x = 0; x < 7; x++) {
digitalWrite(segs[x], digits[conteo][x]);
}
digitalWrite(39, HIGH);
} else if (conteo > 9) {
digitalWrite(39, LOW);
digitalWrite(37, HIGH);

La técnica para que se muestren los dígitos es curiosa ya que se hace de forma multiplexada, o sea, se le aplica un retraso entre actualización (delay(5) en este caso) y encendemos o apagamos el anterior o siguiente para que no se queden segmentos erróneos. El ojo humano no lo llega a apreciar si se le aplica el tiempo correcto. Ejemplo:

Notas

  • No requiere de librerías.
  • El punto DP es opcional.
  • Si algún segmento no se ilumina puede ser que esté fundido o tenga mala conexión.
Tabla de contenidos