Vídeo
A continuación, encontrara el vídeo en donde se explica el funcionamiento del circuito.
Acerca del proyecto
En este post vamos a aprender a conectar un display de 7 segmentos de 4 dígitos al arduino utilizando el controlador de pantalla MAX7219, este circuito nos permite visualizar valores numéricos en las pantallas LCD de 7 segmentos con la facilidad de desacoplar la lógica qué necesita para visualizar en el display de nuestro código principal, es decir ya no necesitamos hacer la multiplexación, ni eventos relacionados para poder visualizar un número, ya que lo único que necesitamos hacer es enviarle el número que necesitamos visualizar al controlador y éste se encargará de mostrarlo en la pantalla.[1]
Vamos a ver el paso a paso de lo que necesitamos hacer para poder visualizar los números, vamos a ver los materiales, y las conexiones necesarias para poder utilizar este display; en este caso vamos a trabajar con cuatro dígitos pero este tipo de circuitos puede soportar hasta 8 dígitos o más dependiendo la configuración que realicemos en el MAX7219.
Conocimiento previo
Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.
Proyecto | Descripción |
---|---|
MAX7219 datasheet | Tenemos la hoja de datos del circuito integrado de damos su descripción principal, los valores que puede soportar en corriente y voltaje, y la descripción de cada uno de los pines. |
Descargar librería LedControl | Este es el repositorio principal donde podrá descargar la librería del ledcontrol. |
Descripción LedControl | Esta es la librería que vamos a utilizar para poder comunicarnos con el circuito integrado MAX7219, aquí explicamos Cuáles son las funciones que tienen y damos un breve ejemplo de cómo podemos utilizar la |
Display 7 segmentos cátodo común
El display es básicamente un arreglo de diodos leds organizados de tal forma que nos puedan mostrar el dígito. En la siguiente imagen tenemos la forma de cómo se vería por dentro el display donde todos los cátodos están conectados hacia negativo y la salida de cada uno de los pines que se va a encargar de encender el correspondiente segmento.
A continuación, tenemos varios proyectos que se han realizado con arduino y el display de 7 segmentos:
Arduino display 7 segmentos ánodo común | En este post mostramos la conexión de un display 7 segmentos ánodo común al arduino y damos el paso a paso en el código para poder visualizar los dígitos. |
Arduino display 7 segmentos cátodo común | En este post mostramos la conexión de un display 7 segmentos cátodo común al arduino y damos el paso a paso en el código para poder visualizar los dígitos. |
Conectar display 7 segmentos cátodo común | En este post se explica la conexión básica del display de 7 segmentos. |
MAX7219 Descripción general
Los MAX7219 / MAX7221 son controladores de pantalla de cátodo común compactos de entrada y salida en serie que interconectan microprocesadores (µPs) con pantallas LED numéricas de 7 segmentos de hasta 8 dígitos, pantallas de gráficos de barras o 4 LED individuales. En el chip se incluye un decodificador de código B BCD, circuitos de exploración multiplex, controladores de segmento y dígitos, y una RAM estática de 8x8 que almacena cada dígito.
Modulo MAX7219 display 7 segmentos
Para trabajar este circuito ya tenemos la opción del módulo dónde viene conectado dos displays de cuatro dígitos que en total nos van a dar ocho dígitos, este módulo ya está listo para trabajar lo único que hay que hacer es conectarlo con los pines correspondientes hacia el arduino y realizar la programación.
A continuación tenemos la tabla donde explicamos a que pin del módulo tiene que ir conectado al arduino.
Modulo max7219 | Arduino |
---|---|
din | 11 |
cs | 10 |
clk | 13 |
Con esto ya podemos ir al código si están trabajan do con este modulo.
MAX7219 display 7 segmentos
Para realizar la conexión desde cero del del circuito si no desean trabajar con el módulo, vamos a realizar los siguientes pasos para poder hacer la conexión del display con el circuito integrado y luego con el arduino, no se necesitan tantos materiales y lo único complejo es realizar la conexión de esos dos componentes.
La imagen anterior estamos identificando cada uno de los pines, para saber cuales son los segmentos del display y cuales son los dígitos, en este caso solo trabajaremos con 4 dígitos es decir un modulo display 7 segmentos.
Materiales
Material | Cantidad | Descripción |
---|---|---|
Arduino | 1 | Controlador del proyecto, en este caso usaremos el arduino uno. |
Display 7 segmentos 4 digitos | 1 | Display para visualizar los numeros del 0 al 9 |
MAX7219 | 1 | Controlador del display de 7 segmentos |
Resistencia | 33k | Resistencia para iset |
Capacitor | 10uf | Capacitor de protección del circuito, conectado al iset |
Circuito
Una vez que tengamos identificados los pines y listos los materiales vamos a proceder con la conexión, observamos la siguiente imagen del esquemático donde indicamos como se tienen que conectar cada uno de los pines de los segmentos y de los dígitos, adicionalmente tenemos que conectar el circuito MAX7219 a negativo con sus dos pines y a positivo con el pin correspondiente (la alimentación es a 3.3v), por último tenemos que colocar la resistencia en el pin iset con el condensador como no sugieren la imagen:
Los dígitos del display están organizados de izquierda a derecha, es decir (D0, D1, D2, D3), pero la forma en que el max7219 realiza la visualización de los dígitos es de derecha a izquierda (D3, D2, D1, D0), así que al momento de realizar esta conexiona de los dígitos debemos hacerla cruzada como se muestra en la anterior imagen, esto se hace para que podamos ver los números apareces desde la derecha a la izquierda y no nos compliquemos cuando estemos desarrollado el código.
Ahora en la siguiente tabla identificamos el número del pin del circuito integrado con el número del pin del display para poder realizar la conexión.
MAX7219 | Display 7 segmentos |
---|---|
2 | 6 |
6 | 9 |
7 | 12 |
11 | 8 |
14 | 11 |
15 | 10 |
16 | 7 |
17 | 5 |
20 | 4 |
21 | 1 |
22 | 3 |
23 | 2 |
4 GND | N/A |
9 GND | N/A |
18 ISET | N/A |
19 V+ (3.3v) | N/A |
Por ultimo tenemos la conexión del max7219 al arduino, observemos la siguiente tabla en donde relacionamos los pines:
MAX7219 | arduino |
---|---|
1 | 11 |
12 | 10 |
13 | 13 |
Código
El proyecto se encuentra en el repositorio como arduino max7219 display 7 segmentos.
// Paso 1
#include "LedControl.h"
// Paso 2
//din clk cs
LedControl lc = LedControl(11, 13, 10, 1);
// Paso 3
void setup() {
lc.shutdown(0, false);
lc.setIntensity(0, 8);
lc.clearDisplay(0);
}
// Paso 5
void loop() {
displayNumber(random(0, 9999));
delay(1000);
}
// Paso 4
void displayNumber( long number) {
long result;
int pos = 0 ;
lc.clearDisplay(0);
while ( number > 0 ) {
result = number % 10 ;
number = number / 10 ;
lc.setDigit(0,pos++,result,false);
}
}
- Incluimos la librería LedControl que debemos descargar previamente, link en sección conocimiento previo.
- Inicializamos el objeto LedControl donde le indicamos cueles son los pines usados en la comunicación al max7219.
- Ahora vamos a inicializar el display con
shutdown
donde le indicamos en el primer argumento el modulo max7219 que vamos a trabajar que en este caso solo es uno y false para prenderlo; consetIntensity
indicamos el brillo del modulo, le podemos pasar un valor numérico de 0 a 10, siendo 10 el máximo brillo y por ultimoclearDisplay
limpiamos el display para que no muestre ningún numero. - Creamos la función
displayNumber
que se encargara de descomponer el valor numérico que queremos visualizar para poder enviarlo a la funciónsetDigit
, lo que hacemos es obtener es el numero que queremos visualizar y comenzar a obtener cada dígito para mostrarlo en su posición correspondiente. - Por ultimo llamamos la función
displayNumber
y conrandom
generamos números aleatorios de 0 a 9999 para probar el display.
Referencias
[1] arduinolearning http://arduinolearning.com/code/arduino-max7219-7-segment-display-module-example.php, Consultado Agosto 2020
Comentario
fermincol
20 April 2021 18:45
25 March 2023 16:32
Hola saludos está súper excelente el proyecto
Hay alguna forma para el display cátodo común se le agradecería gracias