

El Display de 7-segmentos
También escrito como ” display de siete segmentos”, consiste en 7 LEDs dispuestos en un patron con forma de 8. Cada LED es referido a un segmento, porque cuando se ilumina, este forma parte de un digito. Un octavo LED es usado algunas veces para indicar un punto decimal.
Distribución de pines del display de 7 segmentos
Ahora, revisemos la configuración de los segmentos para identificar qué pin corresponde a cada uno. La distribución de pines de un display de 7 segmentos es la siguiente:
Cátodo Común (CC) vs Ánodo Común (CA)
Existen dos tipos de display de siete segmentos: cátodo común (CC) y ánodo común (CA).
La estructura interna de ambos tipos es casi idéntica. La diferencia radica en la polaridad de los LEDs y el terminal común. Como su nombre lo indica, en los display de cátodo común, todos los cátodos (o terminales negativos) de los LEDs de los segmentos están conectados entre sí, mientras que en los display de ánodo común, todos los ánodos (o terminales positivos) de los LEDs de los segmentos están conectados entre sí.
En un display de cátodo común, el pin común (com) está conectado a GND, y se aplica un voltaje positivo a cada segmento (a-g) para iluminarlo.

Cátodo común de 7-Segmentos funcionando
En un display de ánodo común, el pin común (com) está conectado a VCC, y cada segmento (a-g) se conecta individualmente a tierra para iluminarlo.

Anodo comun de 7-Segmentos funcionando
Las pantallas de siete segmentos de ánodo común son más ampliamente utilizadas en general porque los circuitos de hundimiento de corriente tienen muchas ventajas sobre los circuitos de suministro de corriente.
Display de 7-Segmentos Funcionando
Dependiendo del carácter que desees mostrar, debes iluminar los segmentos de LED apropiados. Para mostrar el número 4, por ejemplo, deben iluminarse cuatro segmentos LED: b, c, f y g. De manera similar, se pueden mostrar varios dígitos del 0 al 9 y caracteres de la A a la F en un display de 7 segmentos, como se muestra a continuación.

Seleccionando una Resistencia Limitadora de Corriente
Un display de 7 segmentos puede parecer un solo display, pero en realidad está compuesto por siete LEDs independientes alojados en un solo paquete, cada uno de los cuales requiere su propia resistencia limitadora de corriente para evitar daños a los segmentos LED.
Normalmente, para un display de 7 segmentos rojo estándar, cada segmento LED requiere aproximadamente 15 mA para iluminarse correctamente; por lo tanto, en un circuito de lógica digital de 5 voltios, el valor de la resistencia limitadora de corriente sería aproximadamente 200Ω (5v – 2v)/15mA, o 220Ω al valor preferido más cercano.
Con una resistencia de 220Ω, el brillo del display se reducirá ligeramente. Esto está bien, porque estos displays son bastante brillantes, por lo que alimentarlos un poco por debajo generalmente hace que se vean mejor. Sin embargo, si planeas usarlos al aire libre, querrás usar una resistencia de 150Ω para obtener el máximo brillo.
Conectando un display de 7-segmentos a un Arduino
Ahora que entendemos cómo funciona el display de 7 segmentos, ¡podemos conectarlo al Arduino!
Comienza montando el display de 7 segmentos en tu protoboard, asegurándote de que cada lado del display esté en un lado diferente de la protoboard. Con el punto decimal hacia abajo, los pines son del 1 al 5 en el lado inferior de izquierda a derecha y del 10 al 6 en el lado superior de izquierda a derecha.
Conecta uno de los pines COM al pin 5V del Arduino (si estás usando un display de 7 segmentos de ánodo común) o al pin GND del Arduino (si estás usando un display de 7 segmentos de cátodo común).
Los cuatro pines en el lado superior (b, a, f y g) se conectan a los pines digitales 2 a 5 del Arduino, mientras que los cuatro pines restantes en el lado inferior (e, d, c y DP) se conectan a los pines digitales 6 a 9 del Arduino.
Aunque el display podría funcionar sin resistencias limitadoras de corriente, tenerlas en tu circuito siempre es una buena idea para proteger el display de daños causados por sobrecorriente. Por lo tanto, también necesitarás ocho resistencias limitadoras de corriente de 220Ω para cada segmento.
La siguiente tabla muestra las conexiones de los pines:



La Biblioteca SevSeg
Existen muchas bibliotecas disponibles para el display de 7 segmentos, pero una de las más populares es SevSeg. Esta biblioteca ha existido por mucho tiempo. Es fácil de usar para principiantes, pero a la vez ofrece muchas opciones para usuarios avanzados. Usaremos esta biblioteca en nuestros ejemplos.
Para instalar la biblioteca, navega a Esquema > Incluir Biblioteca > Administrar Bibliotecas (Sketch>Include Library>Manage Libraries). Espera a que el Administrador de Bibliotecas descargue el índice de bibliotecas y actualiza la lista de bibliotecas instaladas.


#include "SevSeg.h"
SevSeg sevseg;
void setup()
{
//Set to 1 for single digit display
byte numDigits = 1;
//defines common pins while using multi-digit display. Left empty as we have a single digit display
byte digitPins[] = {};
//Defines arduino pin connections in order: A, B, C, D, E, F, G, DP
byte segmentPins[] = {3, 2, 8, 7, 6, 4, 5, 9};
bool resistorsOnSegments = true;
//Initialize sevseg object. Uncomment second line if you use common cathode 7 segment
sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins, resistorsOnSegments);
//sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins, resistorsOnSegments);
sevseg.setBrightness(90);
}
void loop()
{
//Display numbers one by one with 2 seconds delay
for(int i = 0; i < 10; i++)
{
sevseg.setNumber(i);
sevseg.refreshDisplay();
delay(2000);
}
}// Dropping resistors used
bool resistorsOnSegments = true; // Display type
byte hardwareConfig = COMMON_ANODE; void setup() {
// Start display object
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
// Set brightness
sevseg.setBrightness(90);
}En Loop, se utiliza un bucle for para contar del 0 al 9. En cada iteración, se usan las funciones setNumber() y refreshDisplay() para mostrar un dígito en el display.
Luego, hay una espera de un segundo antes de que i se incremente y se muestre el siguiente número.
for(int i = 0; i < 10; i++)
{
sevseg.setNumber(i);
sevseg.refreshDisplay();
delay(1000);
} Proyecto Arduino – Lanzador de Dados Electrónico
Vamos a crear un proyecto que lance los dados automáticamente para juegos de dados divertidos como Yahtzee y Ludo. Así es como se ve la salida.


Proyecto Arduino – Lanzamiento de Dados: Cableado del Display de 7 Segmentos de Ánodo Común al Arduino UNO
Código Arduino
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup(){
byte numDigits = 1;
byte digitPins[] = {};
byte segmentPins[] = {3, 2, 8, 7, 6, 4, 5, 9};
bool resistorsOnSegments = true;
sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins, resistorsOnSegments);
sevseg.setBrightness(90);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
void loop()
{
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH)
{
sevseg.setNumber(random(1,7));
sevseg.refreshDisplay();
}
} Explicación del Código:
Este sketch es similar al anterior, excepto por algunas diferencias.
Al inicio, declaramos el pin de Arduino al que está conectado el botón. Además, se define una nueva variable buttonState para hacer un seguimiento del estado del botón.
// the number of the pushbutton pin
const int buttonPin = 10;
// variable for reading the pushbutton status
int buttonState = 0;// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
sevseg.setNumber(random(1,7));
sevseg.refreshDisplay();
}
}
Preguntas frecuentes
¿Cuántos LEDs tiene un display de siete segmentos?
Tiene siete LEDs dispuestos en un patrón con forma de 8, etiquetados con las letras de la "a" a la "g". Cada LED se llama segmento porque al iluminarse forma parte de un dígito. A veces se agrega un octavo LED para indicar el punto decimal (DP).
¿Cuál es la diferencia entre cátodo común y ánodo común?
La diferencia está en la polaridad de los LEDs y del terminal común. En cátodo común todos los cátodos están unidos entre sí, el pin común va a GND y se aplica voltaje positivo a cada segmento para iluminarlo. En ánodo común todos los ánodos están unidos, el pin común va a VCC y cada segmento se conecta a tierra para encenderse.
¿Qué resistencia se debe usar con un display de 7 segmentos?
Alrededor de 220Ω por segmento en un circuito de 5 volts. El cálculo es (5V − 2V) / 15 mA ≈ 200Ω, y 220Ω es el valor comercial más cercano. Si el display se usará al aire libre conviene bajar a 150Ω para obtener el máximo brillo.
¿Necesito una resistencia por cada segmento?
Sí. Aunque parezca un solo display, en realidad está compuesto por siete LEDs independientes en un mismo paquete, y cada uno requiere su propia resistencia limitadora de corriente para evitar que el segmento se dañe.
¿Qué segmentos se encienden para mostrar el número 4?
Para mostrar el 4 deben iluminarse cuatro segmentos: b, c, f y g. Una tabla de verdad indica qué segmentos encender para cada dígito del 0 al 9 y para los caracteres de la A a la F. En un display de ánodo común esa tabla es exactamente la opuesta a la de cátodo común.
¿Cómo se conecta el pin COM del display?
Los pines 3 y 8 están conectados internamente para formar el pin común. Dependiendo del tipo de display, ese pin debe conectarse a GND si es de cátodo común, o a 5V si es de ánodo común. Los pines a-g y DP van a los pines digitales del Arduino.
Aprende esto en un curso
Si prefieres verlo en vivo y con alguien que resuelva tus dudas, estos cursos presenciales de MCI Educación cubren el tema de este tutorial:
- Arduino en profundidad: Sensores y actuadores para proyectos reales — nivel intermedio, 12 horas presenciales en Santiago
- Arduino desde Cero: Primeros Pasos en Programación — nivel inicial, 15 horas presenciales en Santiago


