Prácticas Módulo 7-segmentos

Título de la práctica: | Contador de vidas |
Objetivo: | El alumno codificará un programa en Arduino que visualice un contador en un display de 7 segmentos controlado por 2 botones pulsadores. |
Tiempo estimado: | 50 minutos |
Nivel de dificultad: | Intermedio |
Materiales





Programas
Arduino IDE. Disponible en: https://www.arduino.cc/en/software
Introducción
Los videojuegos utilizan una barra de vida o contador de energía para mostrar cuántas vidas llevas. Si ganas puntos aumenta una vida, si te pegan o te lastiman, pierdes una vida. Te has preguntado, ¿cómo es que la barra de vida aumenta o disminuye? Para que las barras de vida funcionen utilizan un contador, que es una variable que lleva la cuenta del número de veces que se ha cumplido una condición.
De acuerdo al número de vidas es el tamaño de la barra de vidas, la cual puede aumentar su tamaño o disminuir de acuerdo al valor de la variable contador. Esta variable puede incrementar o disminuir. En esta práctica, programarás un display de 7 segmentos que muestre el aumento o disminución de una variable contador de acuerdo a una condición.
Desarrollo
Primero, vamos a analizar cómo funciona la variable contador con el uso del Módulo de 7 segmentos. Al inicio, el display mostrará el número 0 que es el valor de inicio de la variable contador. Cada vez que presionas el botón B2 del Módulo de 7 segmentos, la variable contador aumentará su valor en 1 y lo mostrará en el display. Cuando presiones el botón B1, el valor de la variable disminuirá en 1 y el display volverá a desplegar el valor actual. Cuando el valor de la variable llegué al valor máximo que es el número 9, el contador reiniciará en 0. Si el contador disminuye hasta llegar a el valor 0, se mantendrá en ese valor.

Si no cuentas con el Módulo de 7 segmentos, puedes realizar el circuito que se muestra a continuación que corresponde a la práctica del contador:

Declaración del arreglo PINES
Para el desarrollo de esta práctica primero se van a definir las constantes que se van a utilizar. Utilizaremos un arreglo unidimensional que corresponde a los pines del Arduino que están enlazados a cada segmento del display (6, 7, 8, 9, 10, 11, 12, 13). Es un arreglo de enteros de 8 elementos llamado PINES.
Responde las siguientes preguntas que te ayudarán a declarar el arreglo PINES. Puedes ayudarte con la Figura 2 del circuito electrónico.
Ejercicio 1. Declaración del arreglo PINES
Declaración del arreglo DIGITOS
Para la visualización de los números del contador, se utilizará un arreglo bidimensional llamado DIGITOS de tipo byte con una longitud de [10] [8] que contendrá los dígitos que encienden cada segmento del display de 7 segmentos y que formarán cada uno de los números del 0 al 9. Te puedes apoyar con la Figura 3 que muestra la tabla de valores por segmento para el display. Si no estás familiarizado con el manejo de arreglos, te sugerimos realizar primero la práctica Arreglos bidimensionales del Manual de Programación con Arduino.
Ejercicio 2. Declaración del arreglo DIGITOS
Responde las las siguientes preguntas que te ayudarán a identificar los elementos necesarios para declarar el arreglo:

Ya declarados los arreglos PINES y DIGITOS, vamos a declarar las variables que se van a utilizar en el desarrollo de la práctica, revisa la siguiente tabla que te muestra las variables a utilizar:
Variable | Tipo de dato | Comentarios |
col | entero | // Permite llevar el índice de las columnas de los arreglos PINES y DIGITOS |
valBtn1 | entero | // Guardamos el estado del botón B1 |
valBtn2 | entero | // Guardamos el estado del botón B2 |
vContador | entero | // Almacenar el valor que se despliega en el display |
Tabla 1. variables. dela práctica contador de vidas
Ejercicio 3. Declaración de las variables
Configuración de los pines de conexión
Ahora vamos a configurar los pines que se van a utilizar, primero configuramos los pines del arreglo PINES. Recuerda las instrucciones que se utilizan para configurar resolviendo el siguiente ejercicio:
Ejercicio 4. Configuración de los pines de conexión del display de 7 segmentos
Ya tenemos configurados como salida (OUTPUT) los pines del display 7 segmentos, procedamos a realizar la identificación y configuración de los pines que utilizan los botones pulsadores.
Configuración de los pines de conexión de los botones pulsadores
El Módulo 7 segmentos cuenta con 4 botones pulsadores (B0, B1, B2, B3). Funcionan como un sensor digital y pueden enviar a la tarjeta Arduino el valor HIGH (1) si está presionado y el valor LOW (0) si no está presionado. Para utilizar un botón debemos configurar el pin al que está conectado en modo entrada.
Revisa en la Figura 2 los pines de la tarjeta Arduino a los que están conectados los botones B1 y B2 que se utilizan en la práctica y resuelve el siguiente ejercicio:
Nota: Aunque no aparece en el circuito, el Botón B0 está conectado al pin 1 y el botón B3 al pin 4
Ejercicio 5. Identificación y conexión de los pines de conexión de los botones pulsadores
La última configuración corresponde al pin del transistor NPN.
El transistor NPN es el componente que permite activar o desactivar el display de 7 segmentos. Vamos a codificar las instrucciones para configurar el pin al cual está conectado el transistor para que se comporte como una salida y posteriormente activar el display. Observa la Figura 2 y responde las siguientes preguntas:
Ejercicio 6. Activación del display de 7 segmentos
Lectura de los valores de un botón pulsador
Una vez configurado el botón pulsador, debemos codificar las instrucciones para leer nuestra entrada digital del botón. El resultado de la lectura se almacenará en una variable (valBtn) que permitirá después validar el estado del botón. Si el botón pulsador es presionado su valor cambia a el estado HIGH (pulsado, 1), si el pulsador no es presionado está en LOW (0).
Ejercicio 7. Lectura del valor de un botón pulsador
Ya que obtuvimos el valor del botón, vamos a verificar cuál se presionó para determinar si nuestro contador aumenta o disminuye, para hacerlo requerimos realizar una comparación con una estructura selectiva donde la comparación consiste en verificar si la variable valBtn# tienen el valor HIGH.
Ejercicio 8. Validación del valor del botón pulsador
Recuerda que en esta práctica, usamos de los botones B2 que aumentará el contador y B1 que lo disminuirá.
Generación de la variable contador
Ya identificado el botón que fué presionado (B1 o B2), ahora se debe programar que la variable contador aumente o disminuye su valor. Lo primero que hacemos es declarar la variable. La variable contador generalmente inicializa en el valor 0 y puede incrementar de 1 en 1 o de acuerdo a tus necesidades es el incremento que va a tener.
La sintaxis de una variable contador para incrementar es la siguiente:
varContador=varContador+constante;
Parámetros
varContador – variable que incrementa o disminuye su valor de acuerdo a una condición de tipo entero.
constante – cantidad que siempre se le suma o resta
La instrucción para generar la variable contador sería:
vContador=vContador+1;
y para disminuir su valor la instrucción es la siguiente:
vContador=vContador-1;
Uso del operador compuesto
Otra forma de incrementar una variable en Arduino es con el uso del los operadores compuestos. Son aquellos que combinan una operación aritmética con una variable especifica asignada. De esta forma se puede realizar una operación matemática asignada a una variable o constante. Algunos operadores compuestos son:
Operador | Operación | Ejemplo |
++ | incremento | variable++ |
— | decremento | variable– |
+= | suma compuesta | variable+= |
-= | resta compuesta | variable-= |
varContador
Parámetros
varContador – variable que incrementa o disminuye de tipo entero. Devuelve el valor original o recién incrementado de la variable
operador – operador compuesto que incrementa en uno la variable
La instrucción para generar la variable contador que incrementa usando operador compuesto sería:
vContador++;
y la instrucción para generar el decremento de la variable contador es la siguiente:
vContador--;
Validación del valor de la variable contador
Es importante considerar que el display de 7 segmentos visualizará el número 9 como máximo y el 0 como valor mínimo por lo que es importante validar el valor de la variable vContador dependiendo de las siguientes condiciones que se pueden presentar al presionar los botones pulsadores:
- Si el valor de la variable vContador es 9 y se continúa presionando el botón de aumento (B02), que la variable vContador reinicie a 0.
- Si el valor de la variable vContador es 0 y se continúa presionando el botón de disminución (B01), que la variable vContador conserve el 0.
Ejercicio. 9 Validación e inicialización del contador
Realiza el siguiente ejercicio para codificar las instrucciones que permitan validar e inicializar la variable contador a 0.
Visualización del contador en el display de 7 segmentos
Cada vez que se presiona el botón B1, el valor de la variable vContador aumenta y se despliega el valor en el display de 7 segmentos, de igual forma, si se presiona el botón B2, el valor de la variable disminuye y despliega el valor en el display de 7 segmentos.
La variable vContador aumenta o disminuye en un rango de 0 a 9, y los números que se pueden visualizar en el Display también van del 0 al 9, observa la figura 4 y responde lo siguiente:

Ejercicio 10. Observaciones importantes
Muy bien, estos detalles son importantes para codificar las instrucciones que permitan visualizar el valor de la variable contador en el display. Resuelve el siguiente ejercicio que te ayudará a construir parte del código para realizar un recorrido entre las columnas del arreglo DIGITOS.
Ejercicio 11. Recorrido de fila arreglo DIGITOS
Ya que codificamos la estructura for, ahora comenzamos con la instrucción que se repetirá y que consiste en indicar los segmentos del display que deben encender para visualizar el número de la variable contador. Retomemos la imagen 4 y observa los siguientes detalles:
Ejercicio 12. Encendido de los segmentos display
Muy bien, ahora ya podemos codificar todo el programa.
Codificación del programa de Arduino
Muy bien, ahora ya podemos codificar todo el programa y escribir en la función setup. las instrucciones de configuración de los pines de la tarjeta Arduino, la inicialización o activación de los dispositivos y en la función loop el código que se ejecutará de manera repetitiva mientras la tarjeta Arduino permanezca encendida.
Con los elementos de los ejercicios, vamos a codificar el programa de Arduino que encienda el segmento A del display. Para ello, sustituye en el siguiente programa el texto <<bloque de instrucciones Ejercicio n>> con las instrucciones que corresponda.
/* Práctica contador de vidas
* Programa que visualiza un dígito en el display de 7 segmentos
* de acuerdo a un aumento o disminución
*/
// Declaración de los arreglos PINES y DIGITOS como constantes
<<bloque de instrucciones ejercicio 1>>
<<bloque de instrucciones ejercicio 2>>
// declaración de las variables
<<bloque de instrucciones ejercicio 3>>
void setup() {
// Configuración de los pines del arreglo PINES como salida
<<bloque de instrucciones ejercicio 4>>
// Configuración de los botones pulsadores
<<bloque de instrucciones ejercicio 5>>
// Configuración del pin de conexión del transistor NPN de salida y activación del display
<<bloque de instrucciones ejercicio 6>>
}
void loop() {
// Lectura del valor de los botones pulsadores
<<bloque de instrucciones ejercicio 7>>
// Validación del botón B1
<<bloque de instrucciones ejercicio 8>>
vContador ++; //Variable contador aumentando
// Validación e inicialización de la variable contador
<<bloque de instrucciones ejercicio 9>>
// Validación del botón B2
<<bloque de instrucciones ejercicio 8>>
vContador --; //Variable contador aumentando
// Validación e inicialización de la variable contador
<<bloque de instrucciones ejercicio 9>>
// Ciclo para recorrer las columnas del arreglo DIGITOS[][]
<<bloque de instrucciones ejercicio 10>>
// Encendido de del segmento del display con valores[contador][columna]
<<bloque de instrucciones ejercicio 11>>
}
Captura, compila y ejecuta tu programa por medio de siguientes acciones:
- Abre el IDE de Arduino.
- Crea un nuevo sketch.
- Captura las instrucciones del programa.
- Guarda tu programa.
- Compila tu programa. En caso necesario, depúralo hasta que no tenga ningún error.
- Conecta la tarjeta Arduino a tu computadora.
- Selecciona el puerto serial (COM) de la computadora asociado a la tarjeta.
- Sube el programa a la memoria de la tarjeta Arduino UNO.
- Ejecuta tu programa.
Probando el contador.
Realiza pruebas a tu programa y responde las preguntas
- Presiona el Botón B2 hasta llegar al límite
- ¿Cuál fue el número máximo desplegado en el display?
- ¿Qué número se despliega después del alcanzar el valor máximo?
- Presiona el Botón B1 hasta llegar al límite
- ¿Cuál fue el número mínimo desplegado en el display?
- ¿Qué pasa si presionas el B1 después del valor mínimo?
- ¿Qué número se despliega después del alcanzar el valor mínimo?
Resultados
Ahora ya puedes programar la visualización de un contador de vidas en el display de 7 segmentos. Prueba tus nuevas habilidades:
- Presiona el B2 para aumentar el contador y el botón B1
- ¿Funciona correctamente el programa?
Conclusiones
Una contador es una variable de tipo entero que aumenta o disminuye su valor de forma progresiva durante la ejecución de un programa. Se utilizan principalmente para llevar el conteo de una acción. En el caso de los juegos, se utiliza un contador para llevar la cuenta de las vidas que se ganan o se pierden.
Finalmente, te invitamos a que respondas las siguientes preguntas:
- ¿Por qué crees que es útil conocer cómo se programa una variable contador?
- Identifica al menos 5 dispositivos que utilices en tu vida diaria que tengan integrado un contador.
- ¿En qué proyectos puedes aplicar el uso de un contador con el display de 7 Segmentos?
Retos Arduino
- Escribe un programa en Arduino que muestre un contador en en el display de 7 segmentos donde cada incremento o decremento sea diferente a 1.
- Escribe un programa en Arduino que muestre un contador de números pares o de números impares en el display de 7 segmentos.
Referencias
Arduino. (2021). Language Reference. https://www.arduino.cc/reference/en/
Bañuelos, M., Pacheco, M. y Villegas, R. (2021). Módulo 7-segmentos. Manual de Usuario.
Bañuelos, M., Pacheco, M. y Villegas, R. (2021). Arduino. Manual de programación con Arduino.