Arduino max7219 display 7 segmentos


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

oscar Escrito por oscar 28 August 2020 12087 2

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.

Display 7 segmentos cátodo común
Display 7 segmentos cátodo común
Arreglo de leds
Arreglo de leds

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.

max7219 pines
max7219 pines

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.

Modulo max7219 display 7 segmentos
Modulo max7219 display 7 segmentos

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.

Arduino max7219
Arduino max7219

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:

Arduino max7219 esquema
Arduino max7219 esquema

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
Arduino max7219 breadboard
Arduino max7219 breadboard
Arduino max7219 foto
Arduino max7219 foto

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);
  }
}
  1. Incluimos la librería LedControl que debemos descargar previamente, link en sección conocimiento previo.
  2. Inicializamos el objeto LedControl donde le indicamos cueles son los pines usados en la comunicación al max7219.
  3. 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; con setIntensity indicamos el brillo del modulo, le podemos pasar un valor numérico de 0 a 10, siendo 10 el máximo brillo y por ultimo clearDisplay limpiamos el display para que no muestre ningún numero.
  4. Creamos la función displayNumber que se encargara de descomponer el valor numérico que queremos visualizar para poder enviarlo a la función setDigit, 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.
  5. Por ultimo llamamos la función displayNumber y con random 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

Debe aceptar antes de enviar
fermincol
fermincol

20 April 2021 18:45

Cordial saludo Perfecta explicación gracias por compartir de esta forma sus conocimientos una inquietud como realizar un reloj tiempo real con este display y el 7219 gracias

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